Skip to content

Commit 9c86630

Browse files
committed
Add type argument for ColumnGroupAccessor
1 parent 75790e8 commit 9c86630

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

src/main/kotlin/org/jetbrains/kotlinx/dataframe/aliases.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ public typealias RowValueFilter<T, C> = RowValueExpression<T, C, Boolean>
4343
public typealias Column = ColumnReference<*>
4444

4545
public typealias ColumnGroupReference = ColumnReference<AnyRow>
46-
public typealias ColumnGroupAccessor = ColumnAccessor<AnyRow>
46+
public typealias ColumnGroupAccessor<T> = ColumnAccessor<DataRow<T>>
47+
public typealias AnyColumnGroupAccessor = ColumnGroupAccessor<*>
4748

4849
public typealias DoubleCol = DataColumn<Double?>
4950
public typealias BooleanCol = DataColumn<Boolean?>

src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/TypeConversions.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,11 @@ public inline fun <reified T> Iterable<T>.toColumn(property: KProperty<T>): Data
190190

191191
public fun Iterable<String>.toPath(): ColumnPath = ColumnPath(asList())
192192

193+
public fun Iterable<AnyBaseColumn>.toColumnGroup(name: String): ColumnGroup<*> = dataFrameOf(this).asColumnGroup(name)
194+
public fun <T> Iterable<AnyBaseColumn>.toColumnGroup(column: ColumnGroupAccessor<T>): ColumnGroup<T> = dataFrameOf(this).cast<T>().asColumnGroup(column)
195+
196+
public fun <T> Iterable<AnyBaseColumn>.toColumnGroupOf(name: String): ColumnGroup<T> = toColumnGroup(name).cast()
197+
193198
// endregion
194199

195200
// region DataFrame
@@ -201,7 +206,7 @@ public fun <T> DataFrame<T>.asColumnGroup(name: String = ""): ColumnGroup<T> = w
201206
else -> DataColumn.createColumnGroup(name, this)
202207
}
203208

204-
public fun <T> DataFrame<T>.asColumnGroup(column: ColumnGroupAccessor): ColumnGroup<*> = asColumnGroup(column.name)
209+
public fun <T> DataFrame<T>.asColumnGroup(column: ColumnGroupAccessor<T>): ColumnGroup<T> = asColumnGroup(column.name)
205210

206211
// region as GroupedDataFrame
207212

src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/group.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.jetbrains.kotlinx.dataframe.api
22

3+
import org.jetbrains.kotlinx.dataframe.AnyColumnGroupAccessor
34
import org.jetbrains.kotlinx.dataframe.Column
4-
import org.jetbrains.kotlinx.dataframe.ColumnGroupAccessor
55
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
66
import org.jetbrains.kotlinx.dataframe.DataFrame
77
import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath
@@ -27,7 +27,7 @@ public infix fun <T, C> GroupClause<T, C>.into(column: ColumnsSelectionDsl<T>.(C
2727
@JvmName("intoColumn")
2828
public infix fun <T, C> GroupClause<T, C>.into(column: ColumnsSelectionDsl<T>.(ColumnWithPath<C>) -> Column): DataFrame<T> = df.move(columns).under(column)
2929
public infix fun <T, C> GroupClause<T, C>.into(column: String): DataFrame<T> = into(columnGroup().named(column))
30-
public infix fun <T, C> GroupClause<T, C>.into(column: ColumnGroupAccessor): DataFrame<T> = df.move(columns).under(column)
30+
public infix fun <T, C> GroupClause<T, C>.into(column: AnyColumnGroupAccessor): DataFrame<T> = df.move(columns).under(column)
3131
public infix fun <T, C> GroupClause<T, C>.into(column: KProperty<*>): DataFrame<T> = into(column.columnName)
3232

3333
// endregion

src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/move.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.jetbrains.kotlinx.dataframe.api
22

3+
import org.jetbrains.kotlinx.dataframe.AnyColumnGroupAccessor
34
import org.jetbrains.kotlinx.dataframe.Column
4-
import org.jetbrains.kotlinx.dataframe.ColumnGroupAccessor
55
import org.jetbrains.kotlinx.dataframe.ColumnSelector
66
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
77
import org.jetbrains.kotlinx.dataframe.DataFrame
@@ -51,7 +51,7 @@ public fun <T, C> MoveClause<T, C>.intoIndexed(
5151
}
5252

5353
public fun <T, C> MoveClause<T, C>.under(column: String): DataFrame<T> = pathOf(column).let { path -> under { path } }
54-
public fun <T, C> MoveClause<T, C>.under(column: ColumnGroupAccessor): DataFrame<T> = column.path().let { path -> under { path } }
54+
public fun <T, C> MoveClause<T, C>.under(column: AnyColumnGroupAccessor): DataFrame<T> = column.path().let { path -> under { path } }
5555
public fun <T, C> MoveClause<T, C>.under(column: ColumnsSelectionDsl<T>.(ColumnWithPath<C>) -> Column): DataFrame<T> = moveImpl(
5656
under = true,
5757
column

0 commit comments

Comments
 (0)