diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 95f37b118..6476d7357 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ dataframe = "0.13.1" serialization = "1.6.3" datetime = "0.5.0" html = "0.11.0" -statistics = "0.3.0-dev-20" +statistics = "0.3.0-dev-21" letsPlot = "4.6.0" letsPlotImage = "4.2.0" mockk = "1.13.10" diff --git a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/accessors.kt b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/accessors.kt index 1937b37dd..197732123 100644 --- a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/accessors.kt +++ b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/accessors.kt @@ -7,42 +7,42 @@ import org.jetbrains.kotlinx.kandy.ir.feature.PlotFeature @PublishedApi internal val LayerBuilder.datasetBuilder: DatasetBuilder get() = when (this) { - is LayerBuilderImpl -> datasetBuilder - is SingleLayerPlotBuilder -> datasetBuilder + is LayerBuilderImpl -> this.datasetBuilder + is SingleLayerPlotBuilder -> this.datasetBuilder } @PublishedApi internal val LayerBuilder.layerFeatures: MutableMap get() = when (this) { - is LayerBuilderImpl -> layerFeatures - is SingleLayerPlotBuilder -> layerFeatures + is LayerBuilderImpl -> this.layerFeatures + is SingleLayerPlotBuilder -> this.layerFeatures } @PublishedApi internal val LayerBuilder.bindingHandler: BindingHandler get() = when (this) { - is LayerBuilderImpl -> bindingHandler - is SingleLayerPlotBuilder -> bindingHandler + is LayerBuilderImpl -> this.bindingHandler + is SingleLayerPlotBuilder -> this.bindingHandler } @PublishedApi internal val PlotBuilder.datasetBuilder: DatasetBuilder get() = when (this) { - is MultiLayerPlotBuilder -> datasetBuilder - is CustomPlotBuilder -> datasetBuilder + is MultiLayerPlotBuilder -> this.datasetBuilder + is CustomPlotBuilder -> this.datasetBuilder } @PublishedApi internal val PlotBuilder.plotFeatures: MutableMap get() = when (this) { - is MultiLayerPlotBuilder -> plotFeatures - is CustomPlotBuilder -> plotFeatures + is MultiLayerPlotBuilder -> this.plotFeatures + is CustomPlotBuilder -> this.plotFeatures } @PublishedApi internal val PlotBuilder.bindingHandler: BindingHandler get() = when (this) { - is MultiLayerPlotBuilder -> bindingHandler - is CustomPlotBuilder -> bindingHandler + is MultiLayerPlotBuilder -> this.bindingHandler + is CustomPlotBuilder -> this.bindingHandler } diff --git a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DataFramePlotBuilder.kt b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DataFramePlotBuilder.kt index 8b56b2cc2..6486bed98 100644 --- a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DataFramePlotBuilder.kt +++ b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DataFramePlotBuilder.kt @@ -91,7 +91,7 @@ public class DataFramePlotBuilder @PublishedApi internal constructor( @PublishedApi internal fun addDataset(groupBy: GroupBy<*, *>): Int { - datasetBuilders.add(DatasetBuilderImpl.fromData(groupBy, datasetBuilder as DatasetBuilderImpl)) + datasetBuilders.add(DatasetBuilderImpl(groupBy, datasetBuilder as DatasetBuilderImpl)) return datasetBuilders.lastIndex } } diff --git a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DataFrameSingleLayerPlotBuilder.kt b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DataFrameSingleLayerPlotBuilder.kt index 3f055699d..93b3723bb 100644 --- a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DataFrameSingleLayerPlotBuilder.kt +++ b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DataFrameSingleLayerPlotBuilder.kt @@ -5,5 +5,5 @@ import org.jetbrains.kotlinx.kandy.ir.data.TableData public abstract class DataFrameSingleLayerPlotBuilder @PublishedApi internal constructor(data: TableData) : SingleLayerPlotBuilder() { - override val datasetBuilder = DatasetBuilderImpl.fromData(data) + override val datasetBuilder = DatasetBuilderImpl(data) } diff --git a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DatasetBuilderImpl.kt b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DatasetBuilderImpl.kt index fa161bd6b..d6ad53977 100644 --- a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DatasetBuilderImpl.kt +++ b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/DatasetBuilderImpl.kt @@ -50,7 +50,7 @@ internal abstract class DatasetBuilderImpl( return when(column) { is ColumnAccessor<*> -> takeColumn(column) is DataColumn<*> -> addColumn(column) - else -> TODO() + else -> error("Unexpected column reference type: ${column::class}") } } @@ -72,20 +72,20 @@ internal abstract class DatasetBuilderImpl( referredColumns[name] = columnId return columnId } +} - internal companion object { - fun fromData(dataFrame: DataFrame<*>, initialBuilder: DatasetBuilderImpl? = null): NamedDataBuilder { - return NamedDataBuilder(dataFrame, initialBuilder) - } - fun fromData(groupBy: GroupBy<*, *>, initialBuilder: DatasetBuilderImpl? = null): GroupedDataBuilder { - return GroupedDataBuilder(groupBy, initialBuilder) - } - fun fromData(dataset: TableData, initialBuilder: DatasetBuilderImpl? = null): DatasetBuilderImpl { - return when (dataset) { - is NamedData -> NamedDataBuilder(dataset, initialBuilder) - is GroupedData ->GroupedDataBuilder(dataset, initialBuilder) - else -> error("Unexpected dataset type: ${dataset::class}") - } - } +internal fun DatasetBuilderImpl(dataFrame: DataFrame<*>, initialBuilder: DatasetBuilderImpl? = null): NamedDataBuilder { + return NamedDataBuilder(dataFrame, initialBuilder) +} + +internal fun DatasetBuilderImpl(groupBy: GroupBy<*, *>, initialBuilder: DatasetBuilderImpl? = null): GroupedDataBuilder { + return GroupedDataBuilder(groupBy, initialBuilder) +} + +internal fun DatasetBuilderImpl(dataset: TableData, initialBuilder: DatasetBuilderImpl? = null): DatasetBuilderImpl { + return when (dataset) { + is NamedData -> NamedDataBuilder(dataset, initialBuilder) + is GroupedData ->GroupedDataBuilder(dataset, initialBuilder) + else -> error("Unexpected dataset type: ${dataset::class}") } } diff --git a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/GroupByPlotBuilder.kt b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/GroupByPlotBuilder.kt index 14f007357..ba8dee649 100644 --- a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/GroupByPlotBuilder.kt +++ b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/GroupByPlotBuilder.kt @@ -24,7 +24,7 @@ public class GroupByPlotBuilder @PublishedApi internal constructor( internal val groupBy: GroupBy, internal val dataframe: DataFrame = groupBy.concatFixed() ) : MultiLayerPlotBuilderImpl(), ColumnsContainer by dataframe, GroupedDataScope { - override val datasetBuilders: MutableList = mutableListOf(DatasetBuilderImpl.fromData(groupBy)) + override val datasetBuilders: MutableList = mutableListOf(DatasetBuilderImpl(groupBy)) @Suppress("UNCHECKED_CAST") public override val key: ColumnGroup = diff --git a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/MultiLayerPlotBuilderImpl.kt b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/MultiLayerPlotBuilderImpl.kt index 17eda9540..1259798da 100644 --- a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/MultiLayerPlotBuilderImpl.kt +++ b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/MultiLayerPlotBuilderImpl.kt @@ -7,7 +7,7 @@ import org.jetbrains.kotlinx.kandy.dsl.internal.MultiLayerPlotBuilder public abstract class MultiLayerPlotBuilderImpl: MultiLayerPlotBuilder() { override fun addDataset(dataset: TableData, initialBuilder: DatasetBuilder?): Int { - datasetBuilders.add(DatasetBuilderImpl.fromData(dataset, initialBuilder as DatasetBuilderImpl?)) + datasetBuilders.add(DatasetBuilderImpl(dataset, initialBuilder as DatasetBuilderImpl?)) return datasetBuilders.lastIndex } diff --git a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/accessors.kt b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/accessors.kt index f1ea898f6..16e2796b2 100644 --- a/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/accessors.kt +++ b/kandy-api/src/main/kotlin/org/jetbrains/kotlinx/kandy/dsl/internal/dataframe/accessors.kt @@ -3,6 +3,6 @@ package org.jetbrains.kotlinx.kandy.dsl.internal.dataframe @PublishedApi internal val GroupedDataScope<*, *>.datasetBuilder: DatasetBuilderImpl get() = when (this) { - is GroupByScope -> datasetBuilder as DatasetBuilderImpl - is GroupByPlotBuilder -> datasetBuilder as DatasetBuilderImpl + is GroupByScope -> this.datasetBuilder as DatasetBuilderImpl + is GroupByPlotBuilder -> this.datasetBuilder as DatasetBuilderImpl } diff --git a/kandy-api/src/test/kotlin/org/jetbrains/kotlinx/kandy/builders/dataframe/datasetHandler.kt b/kandy-api/src/test/kotlin/org/jetbrains/kotlinx/kandy/builders/dataframe/datasetHandler.kt index d32f0474d..0cd293037 100644 --- a/kandy-api/src/test/kotlin/org/jetbrains/kotlinx/kandy/builders/dataframe/datasetHandler.kt +++ b/kandy-api/src/test/kotlin/org/jetbrains/kotlinx/kandy/builders/dataframe/datasetHandler.kt @@ -31,19 +31,19 @@ class DatasetBuilderTest { @BeforeTest fun setup() { - handler = DatasetBuilderImpl.fromData(NamedData(dataFrame)) + handler = DatasetBuilderImpl(NamedData(dataFrame)) val groupedData = GroupedData(groupedDf) internalNumbers = groupedData.dataFrame["numbers"] internalType = groupedData.dataFrame["TYPE"] internalCond = groupedData.dataFrame["cond"] - handlerWithGrouped = DatasetBuilderImpl.fromData(groupedData) + handlerWithGrouped = DatasetBuilderImpl(groupedData) } @Test fun `test initial NamedData`() { val initialDataset = NamedData(emptyDataFrame()) - val handler = DatasetBuilderImpl.fromData(initialDataset) + val handler = DatasetBuilderImpl(initialDataset) assertEquals(initialDataset.dataFrame, handler.baseDataFrame) } @@ -61,7 +61,7 @@ class DatasetBuilderTest { ) ), listOf("column1") ) - val handler = DatasetBuilderImpl.fromData(initialDataset) + val handler = DatasetBuilderImpl(initialDataset) assertEquals(initialDataset.dataFrame, handler.baseDataFrame) } @@ -69,7 +69,7 @@ class DatasetBuilderTest { @Test fun `test add column with list values`() { val initialDataset = NamedData(emptyDataFrame()) - val handler = DatasetBuilderImpl.fromData(initialDataset) + val handler = DatasetBuilderImpl(initialDataset) val values = listOf(1, 2, 3) val name = "new_column" diff --git a/kandy-lets-plot/build.gradle.kts b/kandy-lets-plot/build.gradle.kts index 14bf3d277..4c6b3aa5a 100644 --- a/kandy-lets-plot/build.gradle.kts +++ b/kandy-lets-plot/build.gradle.kts @@ -11,7 +11,6 @@ plugins { repositories { maven("https://packages.jetbrains.team/maven/p/kds/kotlin-ds-maven") - //mavenLocal() } dependencies {