Merge remote-tracking branch 'origin/dev' into feature/fit-analysis

# Conflicts:
#	numass-data-proto/src/gen/kotlin/ru/inr/mass/data/proto/Point.kt
#	numass-workspace/src/main/kotlin/ru/inr/mass/scripts/fit.kt
This commit is contained in:
chernov 2023-10-09 14:55:39 +03:00
commit 7659bc41a0
19 changed files with 170 additions and 209 deletions

View File

@ -13,12 +13,12 @@ allprojects {
}
group = "ru.inr.mass"
version = "0.1.4-dev-1"
version = "0.1.4-dev-2"
}
val dataforgeVersion by extra("0.6.0-dev-15")
val dataforgeVersion by extra("0.6.2")
val tablesVersion: String by extra("0.2.0-dev-3")
val kmathVersion by extra("0.3.1-dev-9")
val kmathVersion by extra("0.3.1")
val visionForgeVersion: String by rootProject.extra("0.3.0-dev-6")

View File

@ -5,12 +5,11 @@
kotlin.code.style=official
kotlin.mpp.stability.nowarn=true
kotlin.jupyter.add.scanner=false
kotlin.js.compiler=ir
org.gradle.configureondemand=true
org.gradle.parallel=true
org.gradle.jvmargs=-XX:MaxMetaspaceSize=1G
toolsVersion=0.13.3-kotlin-1.7.20
compose.version=1.2.2
toolsVersion=0.14.10-kotlin-1.9.0
compose.version=1.5.1

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@ -8,7 +8,9 @@ val dataforgeVersion: String by rootProject.extra
val kmathVersion: String by rootProject.extra
val tablesVersion: String by rootProject.extra
kotlin.sourceSets {
kscience {
jvm()
js()
commonMain {
dependencies {
api(projects.numass.numassDataModel)

View File

@ -6,7 +6,11 @@ plugins {
val dataforgeVersion: String by rootProject.extra
kotlin.sourceSets {
kscience{
jvm()
js()
useSerialization()
commonMain {
dependencies {
api("space.kscience:dataforge-context:$dataforgeVersion")
@ -14,15 +18,14 @@ kotlin.sourceSets {
api("org.jetbrains.kotlinx:kotlinx-datetime:${space.kscience.gradle.KScienceVersions.dateTimeVersion}")
}
}
jvmMain{
}
kotlin.sourceSets{
getByName("jvmMain"){
dependencies{
api("ch.qos.logback:logback-classic:1.2.3")
}
}
}
kscience{
useSerialization()
}

View File

@ -1,6 +1,6 @@
plugins {
id("space.kscience.gradle.jvm")
id("com.squareup.wire") version "4.4.1"
id("com.squareup.wire") version "4.9.1"
`maven-publish`
}

View File

@ -2,29 +2,11 @@
// Source: ru.inr.mass.data.proto.Point in numass-proto.proto
package ru.inr.mass.`data`.proto
import com.squareup.wire.FieldEncoding
import com.squareup.wire.Message
import com.squareup.wire.ProtoAdapter
import com.squareup.wire.ProtoReader
import com.squareup.wire.ProtoWriter
import com.squareup.wire.ReverseProtoWriter
import com.squareup.wire.Syntax
import com.squareup.wire.*
import com.squareup.wire.Syntax.PROTO_3
import com.squareup.wire.WireField
import com.squareup.wire.`internal`.immutableCopyOf
import com.squareup.wire.`internal`.redactElements
import kotlin.Any
import kotlin.AssertionError
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.DeprecationLevel
import kotlin.Int
import kotlin.Long
import kotlin.Nothing
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmField
import com.squareup.wire.internal.JvmField
import com.squareup.wire.internal.immutableCopyOf
import com.squareup.wire.internal.redactElements
import okio.ByteString
public class Point(
@ -38,6 +20,7 @@ public class Point(
tag = 1,
adapter = "ru.inr.mass.data.proto.Point${'$'}Channel#ADAPTER",
label = WireField.Label.REPEATED,
schemaIndex = 0,
)
public val channels: List<Channel> = immutableCopyOf("channels", channels)
@ -45,10 +28,10 @@ public class Point(
message = "Shouldn't be used in Kotlin",
level = DeprecationLevel.HIDDEN,
)
public override fun newBuilder(): Nothing = throw
override fun newBuilder(): Nothing = throw
AssertionError("Builders are deprecated and only available in a javaInterop build; see https://square.github.io/wire/wire_compiler/#kotlin")
public override fun equals(other: Any?): Boolean {
override fun equals(other: Any?): Boolean {
if (other === this) return true
if (other !is Point) return false
if (unknownFields != other.unknownFields) return false
@ -56,7 +39,7 @@ public class Point(
return true
}
public override fun hashCode(): Int {
override fun hashCode(): Int {
var result = super.hashCode
if (result == 0) {
result = unknownFields.hashCode()
@ -66,7 +49,7 @@ public class Point(
return result
}
public override fun toString(): String {
override fun toString(): String {
val result = mutableListOf<String>()
if (channels.isNotEmpty()) result += """channels=$channels"""
return result.joinToString(prefix = "Point{", separator = ", ", postfix = "}")
@ -85,23 +68,23 @@ public class Point(
null,
"numass-proto.proto"
) {
public override fun encodedSize(`value`: Point): Int {
override fun encodedSize(`value`: Point): Int {
var size = value.unknownFields.size
size += Channel.ADAPTER.asRepeated().encodedSizeWithTag(1, value.channels)
return size
}
public override fun encode(writer: ProtoWriter, `value`: Point): Unit {
override fun encode(writer: ProtoWriter, `value`: Point) {
Channel.ADAPTER.asRepeated().encodeWithTag(writer, 1, value.channels)
writer.writeBytes(value.unknownFields)
}
public override fun encode(writer: ReverseProtoWriter, `value`: Point): Unit {
override fun encode(writer: ReverseProtoWriter, `value`: Point) {
writer.writeBytes(value.unknownFields)
Channel.ADAPTER.asRepeated().encodeWithTag(writer, 1, value.channels)
}
public override fun decode(reader: ProtoReader): Point {
override fun decode(reader: ProtoReader): Point {
val channels = mutableListOf<Channel>()
val unknownFields = reader.forEachTag { tag ->
when (tag) {
@ -115,7 +98,7 @@ public class Point(
)
}
public override fun redact(`value`: Point): Point = value.copy(
override fun redact(`value`: Point): Point = value.copy(
channels = value.channels.redactElements(Channel.ADAPTER),
unknownFields = ByteString.EMPTY
)
@ -135,6 +118,7 @@ public class Point(
tag = 1,
adapter = "com.squareup.wire.ProtoAdapter#UINT64",
label = WireField.Label.OMIT_IDENTITY,
schemaIndex = 0,
)
public val id: Long = 0L,
blocks: List<Block> = emptyList(),
@ -147,6 +131,7 @@ public class Point(
tag = 2,
adapter = "ru.inr.mass.data.proto.Point${'$'}Channel${'$'}Block#ADAPTER",
label = WireField.Label.REPEATED,
schemaIndex = 1,
)
public val blocks: List<Block> = immutableCopyOf("blocks", blocks)
@ -154,10 +139,10 @@ public class Point(
message = "Shouldn't be used in Kotlin",
level = DeprecationLevel.HIDDEN,
)
public override fun newBuilder(): Nothing = throw
override fun newBuilder(): Nothing = throw
AssertionError("Builders are deprecated and only available in a javaInterop build; see https://square.github.io/wire/wire_compiler/#kotlin")
public override fun equals(other: Any?): Boolean {
override fun equals(other: Any?): Boolean {
if (other === this) return true
if (other !is Channel) return false
if (unknownFields != other.unknownFields) return false
@ -166,7 +151,7 @@ public class Point(
return true
}
public override fun hashCode(): Int {
override fun hashCode(): Int {
var result = super.hashCode
if (result == 0) {
result = unknownFields.hashCode()
@ -177,7 +162,7 @@ public class Point(
return result
}
public override fun toString(): String {
override fun toString(): String {
val result = mutableListOf<String>()
result += """id=$id"""
if (blocks.isNotEmpty()) result += """blocks=$blocks"""
@ -200,26 +185,26 @@ public class Point(
null,
"numass-proto.proto"
) {
public override fun encodedSize(`value`: Channel): Int {
override fun encodedSize(`value`: Channel): Int {
var size = value.unknownFields.size
if (value.id != 0L) size += ProtoAdapter.UINT64.encodedSizeWithTag(1, value.id)
size += Block.ADAPTER.asRepeated().encodedSizeWithTag(2, value.blocks)
return size
}
public override fun encode(writer: ProtoWriter, `value`: Channel): Unit {
override fun encode(writer: ProtoWriter, `value`: Channel) {
if (value.id != 0L) ProtoAdapter.UINT64.encodeWithTag(writer, 1, value.id)
Block.ADAPTER.asRepeated().encodeWithTag(writer, 2, value.blocks)
writer.writeBytes(value.unknownFields)
}
public override fun encode(writer: ReverseProtoWriter, `value`: Channel): Unit {
override fun encode(writer: ReverseProtoWriter, `value`: Channel) {
writer.writeBytes(value.unknownFields)
Block.ADAPTER.asRepeated().encodeWithTag(writer, 2, value.blocks)
if (value.id != 0L) ProtoAdapter.UINT64.encodeWithTag(writer, 1, value.id)
}
public override fun decode(reader: ProtoReader): Channel {
override fun decode(reader: ProtoReader): Channel {
var id: Long = 0L
val blocks = mutableListOf<Block>()
val unknownFields = reader.forEachTag { tag ->
@ -236,7 +221,7 @@ public class Point(
)
}
public override fun redact(`value`: Channel): Channel = value.copy(
override fun redact(`value`: Channel): Channel = value.copy(
blocks = value.blocks.redactElements(Block.ADAPTER),
unknownFields = ByteString.EMPTY
)
@ -256,6 +241,7 @@ public class Point(
tag = 1,
adapter = "com.squareup.wire.ProtoAdapter#UINT64",
label = WireField.Label.OMIT_IDENTITY,
schemaIndex = 0,
)
public val time: Long = 0L,
frames: List<Frame> = emptyList(),
@ -266,6 +252,7 @@ public class Point(
tag = 3,
adapter = "ru.inr.mass.data.proto.Point${'$'}Channel${'$'}Block${'$'}Events#ADAPTER",
label = WireField.Label.OMIT_IDENTITY,
schemaIndex = 2,
)
public val events: Events? = null,
/**
@ -275,6 +262,7 @@ public class Point(
tag = 4,
adapter = "com.squareup.wire.ProtoAdapter#UINT64",
label = WireField.Label.OMIT_IDENTITY,
schemaIndex = 3,
)
public val length: Long = 0L,
/**
@ -285,6 +273,7 @@ public class Point(
adapter = "com.squareup.wire.ProtoAdapter#UINT64",
label = WireField.Label.OMIT_IDENTITY,
jsonName = "binSize",
schemaIndex = 4,
)
public val bin_size: Long = 0L,
unknownFields: ByteString = ByteString.EMPTY,
@ -296,6 +285,7 @@ public class Point(
tag = 2,
adapter = "ru.inr.mass.data.proto.Point${'$'}Channel${'$'}Block${'$'}Frame#ADAPTER",
label = WireField.Label.REPEATED,
schemaIndex = 1,
)
public val frames: List<Frame> = immutableCopyOf("frames", frames)
@ -303,10 +293,10 @@ public class Point(
message = "Shouldn't be used in Kotlin",
level = DeprecationLevel.HIDDEN,
)
public override fun newBuilder(): Nothing = throw
override fun newBuilder(): Nothing = throw
AssertionError("Builders are deprecated and only available in a javaInterop build; see https://square.github.io/wire/wire_compiler/#kotlin")
public override fun equals(other: Any?): Boolean {
override fun equals(other: Any?): Boolean {
if (other === this) return true
if (other !is Block) return false
if (unknownFields != other.unknownFields) return false
@ -318,7 +308,7 @@ public class Point(
return true
}
public override fun hashCode(): Int {
override fun hashCode(): Int {
var result = super.hashCode
if (result == 0) {
result = unknownFields.hashCode()
@ -332,7 +322,7 @@ public class Point(
return result
}
public override fun toString(): String {
override fun toString(): String {
val result = mutableListOf<String>()
result += """time=$time"""
if (frames.isNotEmpty()) result += """frames=$frames"""
@ -361,7 +351,7 @@ public class Point(
null,
"numass-proto.proto"
) {
public override fun encodedSize(`value`: Block): Int {
override fun encodedSize(`value`: Block): Int {
var size = value.unknownFields.size
if (value.time != 0L) size += ProtoAdapter.UINT64.encodedSizeWithTag(1, value.time)
size += Frame.ADAPTER.asRepeated().encodedSizeWithTag(2, value.frames)
@ -372,7 +362,7 @@ public class Point(
return size
}
public override fun encode(writer: ProtoWriter, `value`: Block): Unit {
override fun encode(writer: ProtoWriter, `value`: Block) {
if (value.time != 0L) ProtoAdapter.UINT64.encodeWithTag(writer, 1, value.time)
Frame.ADAPTER.asRepeated().encodeWithTag(writer, 2, value.frames)
if (value.events != null) Events.ADAPTER.encodeWithTag(writer, 3, value.events)
@ -381,7 +371,7 @@ public class Point(
writer.writeBytes(value.unknownFields)
}
public override fun encode(writer: ReverseProtoWriter, `value`: Block): Unit {
override fun encode(writer: ReverseProtoWriter, `value`: Block) {
writer.writeBytes(value.unknownFields)
if (value.bin_size != 0L) ProtoAdapter.UINT64.encodeWithTag(writer, 5, value.bin_size)
if (value.length != 0L) ProtoAdapter.UINT64.encodeWithTag(writer, 4, value.length)
@ -390,7 +380,7 @@ public class Point(
if (value.time != 0L) ProtoAdapter.UINT64.encodeWithTag(writer, 1, value.time)
}
public override fun decode(reader: ProtoReader): Block {
override fun decode(reader: ProtoReader): Block {
var time: Long = 0L
val frames = mutableListOf<Frame>()
var events: Events? = null
@ -416,7 +406,7 @@ public class Point(
)
}
public override fun redact(`value`: Block): Block = value.copy(
override fun redact(`value`: Block): Block = value.copy(
frames = value.frames.redactElements(Frame.ADAPTER),
events = value.events?.let(Events.ADAPTER::redact),
unknownFields = ByteString.EMPTY
@ -437,6 +427,7 @@ public class Point(
tag = 1,
adapter = "com.squareup.wire.ProtoAdapter#UINT64",
label = WireField.Label.OMIT_IDENTITY,
schemaIndex = 0,
)
public val time: Long = 0L,
/**
@ -447,6 +438,7 @@ public class Point(
adapter = "com.squareup.wire.ProtoAdapter#BYTES",
label = WireField.Label.OMIT_IDENTITY,
declaredName = "data",
schemaIndex = 1,
)
public val data_: ByteString = ByteString.EMPTY,
unknownFields: ByteString = ByteString.EMPTY,
@ -455,10 +447,10 @@ public class Point(
message = "Shouldn't be used in Kotlin",
level = DeprecationLevel.HIDDEN,
)
public override fun newBuilder(): Nothing = throw
override fun newBuilder(): Nothing = throw
AssertionError("Builders are deprecated and only available in a javaInterop build; see https://square.github.io/wire/wire_compiler/#kotlin")
public override fun equals(other: Any?): Boolean {
override fun equals(other: Any?): Boolean {
if (other === this) return true
if (other !is Frame) return false
if (unknownFields != other.unknownFields) return false
@ -467,7 +459,7 @@ public class Point(
return true
}
public override fun hashCode(): Int {
override fun hashCode(): Int {
var result = super.hashCode
if (result == 0) {
result = unknownFields.hashCode()
@ -478,7 +470,7 @@ public class Point(
return result
}
public override fun toString(): String {
override fun toString(): String {
val result = mutableListOf<String>()
result += """time=$time"""
result += """data_=$data_"""
@ -501,7 +493,7 @@ public class Point(
null,
"numass-proto.proto"
) {
public override fun encodedSize(`value`: Frame): Int {
override fun encodedSize(`value`: Frame): Int {
var size = value.unknownFields.size
if (value.time != 0L) size += ProtoAdapter.UINT64.encodedSizeWithTag(1, value.time)
if (value.data_ != ByteString.EMPTY) size += ProtoAdapter.BYTES.encodedSizeWithTag(2,
@ -509,21 +501,21 @@ public class Point(
return size
}
public override fun encode(writer: ProtoWriter, `value`: Frame): Unit {
override fun encode(writer: ProtoWriter, `value`: Frame) {
if (value.time != 0L) ProtoAdapter.UINT64.encodeWithTag(writer, 1, value.time)
if (value.data_ != ByteString.EMPTY) ProtoAdapter.BYTES.encodeWithTag(writer, 2,
value.data_)
writer.writeBytes(value.unknownFields)
}
public override fun encode(writer: ReverseProtoWriter, `value`: Frame): Unit {
override fun encode(writer: ReverseProtoWriter, `value`: Frame) {
writer.writeBytes(value.unknownFields)
if (value.data_ != ByteString.EMPTY) ProtoAdapter.BYTES.encodeWithTag(writer, 2,
value.data_)
if (value.time != 0L) ProtoAdapter.UINT64.encodeWithTag(writer, 1, value.time)
}
public override fun decode(reader: ProtoReader): Frame {
override fun decode(reader: ProtoReader): Frame {
var time: Long = 0L
var data_: ByteString = ByteString.EMPTY
val unknownFields = reader.forEachTag { tag ->
@ -540,7 +532,7 @@ public class Point(
)
}
public override fun redact(`value`: Frame): Frame = value.copy(
override fun redact(`value`: Frame): Frame = value.copy(
unknownFields = ByteString.EMPTY
)
}
@ -566,6 +558,7 @@ public class Point(
tag = 1,
adapter = "com.squareup.wire.ProtoAdapter#UINT64",
label = WireField.Label.PACKED,
schemaIndex = 0,
)
public val times: List<Long> = immutableCopyOf("times", times)
@ -576,6 +569,7 @@ public class Point(
tag = 2,
adapter = "com.squareup.wire.ProtoAdapter#UINT64",
label = WireField.Label.PACKED,
schemaIndex = 1,
)
public val amplitudes: List<Long> = immutableCopyOf("amplitudes", amplitudes)
@ -583,10 +577,10 @@ public class Point(
message = "Shouldn't be used in Kotlin",
level = DeprecationLevel.HIDDEN,
)
public override fun newBuilder(): Nothing = throw
override fun newBuilder(): Nothing = throw
AssertionError("Builders are deprecated and only available in a javaInterop build; see https://square.github.io/wire/wire_compiler/#kotlin")
public override fun equals(other: Any?): Boolean {
override fun equals(other: Any?): Boolean {
if (other === this) return true
if (other !is Events) return false
if (unknownFields != other.unknownFields) return false
@ -595,7 +589,7 @@ public class Point(
return true
}
public override fun hashCode(): Int {
override fun hashCode(): Int {
var result = super.hashCode
if (result == 0) {
result = unknownFields.hashCode()
@ -606,7 +600,7 @@ public class Point(
return result
}
public override fun toString(): String {
override fun toString(): String {
val result = mutableListOf<String>()
if (times.isNotEmpty()) result += """times=$times"""
if (amplitudes.isNotEmpty()) result += """amplitudes=$amplitudes"""
@ -629,43 +623,61 @@ public class Point(
null,
"numass-proto.proto"
) {
public override fun encodedSize(`value`: Events): Int {
override fun encodedSize(`value`: Events): Int {
var size = value.unknownFields.size
size += ProtoAdapter.UINT64.asPacked().encodedSizeWithTag(1, value.times)
size += ProtoAdapter.UINT64.asPacked().encodedSizeWithTag(2, value.amplitudes)
return size
}
public override fun encode(writer: ProtoWriter, `value`: Events): Unit {
override fun encode(writer: ProtoWriter, `value`: Events) {
ProtoAdapter.UINT64.asPacked().encodeWithTag(writer, 1, value.times)
ProtoAdapter.UINT64.asPacked().encodeWithTag(writer, 2, value.amplitudes)
writer.writeBytes(value.unknownFields)
}
public override fun encode(writer: ReverseProtoWriter, `value`: Events): Unit {
override fun encode(writer: ReverseProtoWriter, `value`: Events) {
writer.writeBytes(value.unknownFields)
ProtoAdapter.UINT64.asPacked().encodeWithTag(writer, 2, value.amplitudes)
ProtoAdapter.UINT64.asPacked().encodeWithTag(writer, 1, value.times)
}
public override fun decode(reader: ProtoReader): Events {
val times = mutableListOf<Long>()
val amplitudes = mutableListOf<Long>()
override fun decode(reader: ProtoReader): Events {
var times: MutableList<Long>? = null
var amplitudes: MutableList<Long>? = null
val unknownFields = reader.forEachTag { tag ->
when (tag) {
1 -> times.add(ProtoAdapter.UINT64.decode(reader))
2 -> amplitudes.add(ProtoAdapter.UINT64.decode(reader))
1 -> {
if (times == null) {
val minimumByteSize = 1
val initialCapacity = (reader.nextFieldMinLengthInBytes() / minimumByteSize)
.coerceAtMost(Int.MAX_VALUE.toLong())
.toInt()
times = ArrayList(initialCapacity)
}
times!!.add(ProtoAdapter.UINT64.decode(reader))
}
2 -> {
if (amplitudes == null) {
val minimumByteSize = 1
val initialCapacity = (reader.nextFieldMinLengthInBytes() / minimumByteSize)
.coerceAtMost(Int.MAX_VALUE.toLong())
.toInt()
amplitudes = ArrayList(initialCapacity)
}
amplitudes!!.add(ProtoAdapter.UINT64.decode(reader))
}
else -> reader.readUnknownField(tag)
}
}
return Events(
times = times,
amplitudes = amplitudes,
times = times ?: listOf(),
amplitudes = amplitudes ?: listOf(),
unknownFields = unknownFields
)
}
public override fun redact(`value`: Events): Events = value.copy(
override fun redact(`value`: Events): Events = value.copy(
unknownFields = ByteString.EMPTY
)
}

View File

@ -20,7 +20,6 @@ import java.nio.file.Path
import kotlin.io.path.exists
import kotlin.io.path.isDirectory
import kotlin.io.path.relativeTo
import kotlin.reflect.KClass
public class NumassProtoPlugin : AbstractPlugin() {
public val io: IOPlugin by require(IOPlugin)
@ -35,7 +34,6 @@ public class NumassProtoPlugin : AbstractPlugin() {
public companion object : PluginFactory<NumassProtoPlugin> {
override fun build(context: Context, meta: Meta): NumassProtoPlugin = NumassProtoPlugin()
override val tag: PluginTag = PluginTag("numass-proto", group = "ru.inr.mass")
override val type: KClass<out NumassProtoPlugin> = NumassProtoPlugin::class
}
}

View File

@ -39,24 +39,8 @@ public class TaggedNumassEnvelopeFormat(private val io: IOPlugin) : EnvelopeForm
writeRawString(END_SEQUENCE)
}
override fun writeEnvelope(
output: Output,
envelope: Envelope,
metaFormatFactory: MetaFormatFactory,
formatMeta: Meta,
) {
override fun writeObject(output: Output, obj: Envelope) {
error("Don't write legacy formats")
// val metaFormat = metaFormatFactory.invoke(formatMeta, io.context)
// val metaBytes = metaFormat.toBinary(envelope.meta)
// val actualSize: ULong = (envelope.data?.size ?: 0).toULong()
// val tag = Tag(metaFormatFactory.key, metaBytes.size.toUInt() + 2u, actualSize)
// output.writeBinary(tag.toBinary())
// output.writeBinary(metaBytes)
// output.writeRawString("\r\n")
// envelope.data?.let {
// output.writeBinary(it)
// }
// output.flush()
}
/**
@ -68,31 +52,30 @@ public class TaggedNumassEnvelopeFormat(private val io: IOPlugin) : EnvelopeForm
override fun readObject(input: Input): Envelope {
val tag = input.readTag()
val metaFormat = io.resolveMetaFormat(tag.metaFormatKey)
?: error("Meta format with key ${tag.metaFormatKey} not found")
val metaFormat = io.resolveMetaFormat(tag.metaFormatKey) ?: JsonMetaFormat
val meta: Meta = metaFormat.readObjectFrom(input.readBinary(tag.metaSize.toInt()))
val data = input.readBinary(tag.dataSize.toInt())
return SimpleEnvelope(meta, data)
}
override fun readPartial(input: Input): PartialEnvelope {
val tag = input.readTag()
val metaFormat = if (tag.metaFormatKey == 1.toShort()) {
JsonMetaFormat
} else {
io.resolveMetaFormat(tag.metaFormatKey)
?: error("Meta format with key ${tag.metaFormatKey} not found")
}
val meta: Meta = metaFormat.readObjectFrom(input.readBinary(tag.metaSize.toInt()))
return PartialEnvelope(meta, 30 + tag.metaSize.toInt(), tag.dataSize)
return Envelope(meta, data)
}
//
// override fun readPartial(input: Input): PartialEnvelope {
// val tag = input.readTag()
//
// val metaFormat = if (tag.metaFormatKey == 1.toShort()) {
// JsonMetaFormat
// } else {
// io.resolveMetaFormat(tag.metaFormatKey)
// ?: error("Meta format with key ${tag.metaFormatKey} not found")
// }
//
// val meta: Meta = metaFormat.readObjectFrom(input.readBinary(tag.metaSize.toInt()))
//
//
// return PartialEnvelope(meta, 30 + tag.metaSize.toInt(), tag.dataSize)
// }
private data class Tag(
val metaFormatKey: Short,
@ -149,23 +132,11 @@ public class TaggedNumassEnvelopeFormat(private val io: IOPlugin) : EnvelopeForm
private val default by lazy { invoke() }
override fun readPartial(input: Input): PartialEnvelope =
default.run { readPartial(input) }
override fun writeEnvelope(
output: Output,
envelope: Envelope,
metaFormatFactory: MetaFormatFactory,
formatMeta: Meta,
): Unit = default.run {
writeEnvelope(
output,
envelope,
metaFormatFactory,
formatMeta
)
override fun writeObject(output: Output, obj: Envelope) {
error("Don't write legacy formats")
}
override fun readObject(input: Input): Envelope = default.readObject(input)
}
}

View File

@ -8,62 +8,41 @@ val visionForgeVersion: String by rootProject.extra
val production: Boolean by rootProject.extra(true)
kotlin {
js(IR) {
browser {
webpackTask {
this.outputFileName = "js/numass-web.js"
}
}
binaries.executable()
kscience {
fullStack("js/numass-web.js")
useSerialization {
json()
}
sourceSets {
useContextReceivers()
useKtor()
commonMain {
dependencies {
implementation(project(":numass-data-model"))
implementation("space.kscience:visionforge-core:$visionForgeVersion")
implementation("space.kscience:visionforge-plotly:$visionForgeVersion")
implementation(compose.runtime)
}
}
jvmMain {
}
kotlin{
sourceSets{
getByName("jvmMain"){
dependencies{
implementation(compose.runtime)
implementation(project(":numass-data-proto"))
implementation("io.ktor:ktor-server-cio:2.1.3")
implementation("io.ktor:ktor-server-html-builder-jvm:2.1.3")
implementation("io.ktor:ktor-server-cio")
implementation("io.ktor:ktor-server-html-builder")
implementation("space.kscience:visionforge-plotly:$visionForgeVersion")
}
}
jsMain{
getByName("jsMain"){
dependencies{
implementation(compose.web.core)
}
}
}
}
afterEvaluate {
val distributionTask = if (production) {
tasks.getByName("jsBrowserDistribution")
} else {
tasks.getByName("jsBrowserDevelopmentExecutableDistribution")
}
tasks.getByName<ProcessResources>("jvmProcessResources") {
dependsOn(distributionTask)
from(distributionTask)
include("**/*.js")
if (production) {
include("**/*.map")
implementation(compose.html.core)
}
}
}
kscience {
useSerialization {
json()
}
withContextReceivers()
}

View File

@ -9,7 +9,6 @@ import space.kscience.dataforge.context.PluginTag
import space.kscience.dataforge.meta.Meta
import space.kscience.visionforge.Vision
import space.kscience.visionforge.VisionPlugin
import kotlin.reflect.KClass
public class NumassCommonPlugin(meta: Meta = Meta.EMPTY) : VisionPlugin(meta) {
override val tag: PluginTag get() = Companion.tag
@ -18,7 +17,6 @@ public class NumassCommonPlugin(meta: Meta = Meta.EMPTY) : VisionPlugin(meta) {
public companion object : PluginFactory<NumassCommonPlugin> {
override val tag: PluginTag = PluginTag("numass.common", "ru.inr.mass")
override val type: KClass<NumassCommonPlugin> = NumassCommonPlugin::class
override fun build(context: Context, meta: Meta): NumassCommonPlugin = NumassCommonPlugin()

View File

@ -18,7 +18,6 @@ import space.kscience.visionforge.ElementVisionRenderer
import space.kscience.visionforge.Vision
import space.kscience.visionforge.VisionClient
import space.kscience.visionforge.plotly.PlotlyPlugin
import kotlin.reflect.KClass
public class NumassJsPlugin : AbstractPlugin(), ElementVisionRenderer {
public val client: VisionClient by require(VisionClient)
@ -83,8 +82,6 @@ public class NumassJsPlugin : AbstractPlugin(), ElementVisionRenderer {
public companion object : PluginFactory<NumassJsPlugin> {
override val tag: PluginTag = PluginTag("numass.js", "ru.inr.mass")
override val type: KClass<NumassJsPlugin> = NumassJsPlugin::class
override fun build(context: Context, meta: Meta): NumassJsPlugin = NumassJsPlugin()
}

View File

@ -7,7 +7,9 @@ plugins {
val dataforgeVersion: String by rootProject.extra
val kmathVersion: String by rootProject.extra
kotlin.sourceSets {
kscience{
jvm()
js()
commonMain {
dependencies {
api("space.kscience:dataforge-context:$dataforgeVersion")
@ -15,7 +17,10 @@ kotlin.sourceSets {
api("space.kscience:kmath-functions:$kmathVersion")
}
}
jvmMain {
}
kotlin.sourceSets{
getByName("jvmMain"){
dependencies {
api("space.kscience:kmath-commons:$kmathVersion")
api("ch.qos.logback:logback-classic:1.2.3")

View File

@ -15,10 +15,10 @@
*/
package ru.inr.mass.models
import space.kscience.kmath.UnstableKMathAPI
import space.kscience.kmath.data.ColumnarData
import space.kscience.kmath.expressions.Symbol
import space.kscience.kmath.expressions.symbol
import space.kscience.kmath.misc.UnstableKMathAPI
import space.kscience.kmath.structures.Buffer

View File

@ -33,7 +33,7 @@ public class NBkgSpectrum(public val source: Spectrum) : DifferentiableSpectrum
symbols.isEmpty() -> this
symbols.size == 1 -> when (symbols.first()) {
norm -> Spectrum { x, arguments -> source(x, arguments) }
bkg -> Spectrum { x, _ -> 1.0 }
bkg -> Spectrum { _, _ -> 1.0 }
else -> (source as? DifferentiableSpectrum)?.derivativeOrNull(symbols)?.let { NBkgSpectrum(it) }
}
else -> null

View File

@ -18,7 +18,6 @@ import space.kscience.dataforge.workspace.WorkspacePlugin
import space.kscience.dataforge.workspace.pipeFrom
import space.kscience.dataforge.workspace.task
import space.kscience.tables.Table
import kotlin.reflect.KClass
class NumassWorkspacePlugin : WorkspacePlugin() {
override val tag: PluginTag get() = Companion.tag
@ -128,7 +127,6 @@ class NumassWorkspacePlugin : WorkspacePlugin() {
companion object : PluginFactory<NumassWorkspacePlugin> {
override val tag: PluginTag = PluginTag("numass", "ru.mipt.npm")
override val type: KClass<out NumassWorkspacePlugin> = NumassWorkspacePlugin::class
override fun build(context: Context, meta: Meta): NumassWorkspacePlugin = NumassWorkspacePlugin()
}
}

View File

@ -3,13 +3,13 @@
package ru.inr.mass.workspace
import ru.inr.mass.models.Spectrum
import space.kscience.kmath.UnstableKMathAPI
import space.kscience.kmath.data.XYColumnarData
import space.kscience.kmath.data.XYErrorColumnarData
import space.kscience.kmath.expressions.DifferentiableExpression
import space.kscience.kmath.expressions.Symbol
import space.kscience.kmath.misc.FeatureSet
import space.kscience.kmath.misc.Loggable
import space.kscience.kmath.misc.UnstableKMathAPI
import space.kscience.kmath.optimization.*
import space.kscience.kmath.random.RandomGenerator
import space.kscience.kmath.samplers.PoissonSampler

View File

@ -12,9 +12,9 @@ import ru.inr.mass.data.proto.HVData
import ru.inr.mass.data.proto.NumassDirectorySet
import space.kscience.dataforge.meta.asValue
import space.kscience.dataforge.meta.double
import space.kscience.kmath.UnstableKMathAPI
import space.kscience.kmath.domains.center
import space.kscience.kmath.histogram.Histogram1D
import space.kscience.kmath.misc.UnstableKMathAPI
import space.kscience.kmath.operations.asIterable
import space.kscience.kmath.structures.Buffer
import space.kscience.kmath.structures.DoubleBuffer

View File

@ -1,7 +1,6 @@
rootProject.name = "numass"
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
enableFeaturePreview("VERSION_CATALOGS")
pluginManagement {