Skip to content

Commit

Permalink
Merge branch 'refs/heads/dataset_handler_rework' into echarts_update
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreiKingsley committed Jul 15, 2024
2 parents 61d2e1a + 1acb69b commit 48415c1
Show file tree
Hide file tree
Showing 10 changed files with 39 additions and 40 deletions.
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<FeatureName, LayerFeature>
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<FeatureName, PlotFeature>
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
}

Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public class DataFramePlotBuilder<T> @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
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Original file line number Diff line number Diff line change
Expand Up @@ -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}")
}
}

Expand All @@ -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}")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class GroupByPlotBuilder<T, G> @PublishedApi internal constructor(
internal val groupBy: GroupBy<T, G>,
internal val dataframe: DataFrame<G> = groupBy.concatFixed()
) : MultiLayerPlotBuilderImpl(), ColumnsContainer<G> by dataframe, GroupedDataScope<T, G> {
override val datasetBuilders: MutableList<DatasetBuilder> = mutableListOf(DatasetBuilderImpl.fromData(groupBy))
override val datasetBuilders: MutableList<DatasetBuilder> = mutableListOf(DatasetBuilderImpl(groupBy))

@Suppress("UNCHECKED_CAST")
public override val key: ColumnGroup<T> =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<Any>())
val handler = DatasetBuilderImpl.fromData(initialDataset)
val handler = DatasetBuilderImpl(initialDataset)

assertEquals(initialDataset.dataFrame, handler.baseDataFrame)
}
Expand All @@ -61,15 +61,15 @@ class DatasetBuilderTest {
)
), listOf("column1")
)
val handler = DatasetBuilderImpl.fromData(initialDataset)
val handler = DatasetBuilderImpl(initialDataset)

assertEquals(initialDataset.dataFrame, handler.baseDataFrame)
}

@Test
fun `test add column with list values`() {
val initialDataset = NamedData(emptyDataFrame<Any>())
val handler = DatasetBuilderImpl.fromData(initialDataset)
val handler = DatasetBuilderImpl(initialDataset)
val values = listOf(1, 2, 3)
val name = "new_column"

Expand Down
1 change: 0 additions & 1 deletion kandy-lets-plot/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ plugins {

repositories {
maven("https://packages.jetbrains.team/maven/p/kds/kotlin-ds-maven")
//mavenLocal()
}

dependencies {
Expand Down

0 comments on commit 48415c1

Please sign in to comment.