Skip to content

Commit a668901

Browse files
committed
Add the missing renderers for the bunch of intermediate objects
Add renderers for intermediate results of some Multiplex operations such as Move, Rename, Replace, Group, Insert, and Format. Fixes KTNB-366
1 parent 5c20a0d commit a668901

File tree

2 files changed

+40
-0
lines changed
  • core
    • generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/jupyter
    • src/main/kotlin/org/jetbrains/kotlinx/dataframe/jupyter

2 files changed

+40
-0
lines changed

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/jupyter/Integration.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,27 @@ import org.jetbrains.kotlinx.dataframe.DataFrame
1010
import org.jetbrains.kotlinx.dataframe.DataRow
1111
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
1212
import org.jetbrains.kotlinx.dataframe.api.Convert
13+
import org.jetbrains.kotlinx.dataframe.api.FormatClause
1314
import org.jetbrains.kotlinx.dataframe.api.FormattedFrame
1415
import org.jetbrains.kotlinx.dataframe.api.Gather
1516
import org.jetbrains.kotlinx.dataframe.api.GroupBy
17+
import org.jetbrains.kotlinx.dataframe.api.GroupClause
18+
import org.jetbrains.kotlinx.dataframe.api.InsertClause
1619
import org.jetbrains.kotlinx.dataframe.api.Merge
20+
import org.jetbrains.kotlinx.dataframe.api.MoveClause
1721
import org.jetbrains.kotlinx.dataframe.api.Pivot
1822
import org.jetbrains.kotlinx.dataframe.api.PivotGroupBy
1923
import org.jetbrains.kotlinx.dataframe.api.ReducedGroupBy
2024
import org.jetbrains.kotlinx.dataframe.api.ReducedPivot
2125
import org.jetbrains.kotlinx.dataframe.api.ReducedPivotGroupBy
26+
import org.jetbrains.kotlinx.dataframe.api.RenameClause
27+
import org.jetbrains.kotlinx.dataframe.api.ReplaceClause
2228
import org.jetbrains.kotlinx.dataframe.api.Split
2329
import org.jetbrains.kotlinx.dataframe.api.SplitWithTransform
2430
import org.jetbrains.kotlinx.dataframe.api.Update
2531
import org.jetbrains.kotlinx.dataframe.api.asColumnGroup
2632
import org.jetbrains.kotlinx.dataframe.api.asDataFrame
33+
import org.jetbrains.kotlinx.dataframe.api.at
2734
import org.jetbrains.kotlinx.dataframe.api.columnsCount
2835
import org.jetbrains.kotlinx.dataframe.api.dataFrameOf
2936
import org.jetbrains.kotlinx.dataframe.api.frames
@@ -215,6 +222,13 @@ internal class Integration(
215222
applyRowsLimit = false
216223
)
217224

225+
render<GroupClause<*, *>>({ "Group" })
226+
render<MoveClause<*, *>>({ "Move" })
227+
render<RenameClause<*, *>>({ "Rename" })
228+
render<ReplaceClause<*, *>>({ "Replace" })
229+
render<InsertClause<*>>({ "Insert" })
230+
render<FormatClause<*, *>>({ "Format" })
231+
218232
render<DataFrameHtmlData> {
219233
// Our integration declares script and css definition. But in Kotlin Notebook outputs are isolated in IFrames
220234
// That's why we include them directly in the output
@@ -350,5 +364,11 @@ internal fun convertToDataFrame(dataframeLike: Any): AnyFrame =
350364
is GroupBy<*, *> -> dataframeLike.toDataFrame()
351365
is AnyFrame -> dataframeLike
352366
is DisableRowsLimitWrapper -> dataframeLike.value
367+
is MoveClause<*, *> -> dataframeLike.df
368+
is RenameClause<*, *> -> dataframeLike.df
369+
is ReplaceClause<*, *> -> dataframeLike.df
370+
is GroupClause<*, *> -> dataframeLike.into("untitled")
371+
is InsertClause<*> -> dataframeLike.at(0)
372+
is FormatClause<*, *> -> dataframeLike.df
353373
else -> throw IllegalArgumentException("Unsupported type: ${dataframeLike::class}")
354374
}

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/jupyter/Integration.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,27 @@ import org.jetbrains.kotlinx.dataframe.DataFrame
1010
import org.jetbrains.kotlinx.dataframe.DataRow
1111
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
1212
import org.jetbrains.kotlinx.dataframe.api.Convert
13+
import org.jetbrains.kotlinx.dataframe.api.FormatClause
1314
import org.jetbrains.kotlinx.dataframe.api.FormattedFrame
1415
import org.jetbrains.kotlinx.dataframe.api.Gather
1516
import org.jetbrains.kotlinx.dataframe.api.GroupBy
17+
import org.jetbrains.kotlinx.dataframe.api.GroupClause
18+
import org.jetbrains.kotlinx.dataframe.api.InsertClause
1619
import org.jetbrains.kotlinx.dataframe.api.Merge
20+
import org.jetbrains.kotlinx.dataframe.api.MoveClause
1721
import org.jetbrains.kotlinx.dataframe.api.Pivot
1822
import org.jetbrains.kotlinx.dataframe.api.PivotGroupBy
1923
import org.jetbrains.kotlinx.dataframe.api.ReducedGroupBy
2024
import org.jetbrains.kotlinx.dataframe.api.ReducedPivot
2125
import org.jetbrains.kotlinx.dataframe.api.ReducedPivotGroupBy
26+
import org.jetbrains.kotlinx.dataframe.api.RenameClause
27+
import org.jetbrains.kotlinx.dataframe.api.ReplaceClause
2228
import org.jetbrains.kotlinx.dataframe.api.Split
2329
import org.jetbrains.kotlinx.dataframe.api.SplitWithTransform
2430
import org.jetbrains.kotlinx.dataframe.api.Update
2531
import org.jetbrains.kotlinx.dataframe.api.asColumnGroup
2632
import org.jetbrains.kotlinx.dataframe.api.asDataFrame
33+
import org.jetbrains.kotlinx.dataframe.api.at
2734
import org.jetbrains.kotlinx.dataframe.api.columnsCount
2835
import org.jetbrains.kotlinx.dataframe.api.dataFrameOf
2936
import org.jetbrains.kotlinx.dataframe.api.frames
@@ -215,6 +222,13 @@ internal class Integration(
215222
applyRowsLimit = false
216223
)
217224

225+
render<GroupClause<*, *>>({ "Group" })
226+
render<MoveClause<*, *>>({ "Move" })
227+
render<RenameClause<*, *>>({ "Rename" })
228+
render<ReplaceClause<*, *>>({ "Replace" })
229+
render<InsertClause<*>>({ "Insert" })
230+
render<FormatClause<*, *>>({ "Format" })
231+
218232
render<DataFrameHtmlData> {
219233
// Our integration declares script and css definition. But in Kotlin Notebook outputs are isolated in IFrames
220234
// That's why we include them directly in the output
@@ -350,5 +364,11 @@ internal fun convertToDataFrame(dataframeLike: Any): AnyFrame =
350364
is GroupBy<*, *> -> dataframeLike.toDataFrame()
351365
is AnyFrame -> dataframeLike
352366
is DisableRowsLimitWrapper -> dataframeLike.value
367+
is MoveClause<*, *> -> dataframeLike.df
368+
is RenameClause<*, *> -> dataframeLike.df
369+
is ReplaceClause<*, *> -> dataframeLike.df
370+
is GroupClause<*, *> -> dataframeLike.into("untitled")
371+
is InsertClause<*> -> dataframeLike.at(0)
372+
is FormatClause<*, *> -> dataframeLike.df
353373
else -> throw IllegalArgumentException("Unsupported type: ${dataframeLike::class}")
354374
}

0 commit comments

Comments
 (0)