Skip to content

Commit 4a2a9c9

Browse files
committed
Add overloads for rename and named
1 parent 9c86630 commit 4a2a9c9

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ public inline fun <reified T> ColumnReference<T>.withValues(vararg values: T): V
1111
public inline fun <reified T> ColumnReference<T>.withValues(values: Iterable<T>): ValueColumn<T> =
1212
DataColumn.createValueColumn(name(), values.asList(), typeOf<T>())
1313

14-
public infix fun <T, C : ColumnReference<T>> C.named(name: String): C = rename(name) as C
15-
1614
public infix fun <C : Comparable<C>> ColumnReference<C>.gt(value: C): ColumnReference<Boolean> = map { it > value }
1715
public infix fun <C : Comparable<C>> ColumnReference<C>.lt(value: C): ColumnReference<Boolean> = map { it < value }
1816
public infix fun <C> ColumnReference<C>.eq(value: C): ColumnReference<Boolean> = map { it == value }

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,8 @@ public interface ColumnsSelectionDsl<out T> : ColumnSelectionDsl<T>, SingleColum
288288
public infix fun String.into(column: KProperty<*>): ColumnReference<Any?> = toColumnAccessor().into(column.columnName)
289289

290290
public infix fun <C> ColumnReference<C>.named(newName: String): ColumnReference<C> = renamedReference(newName)
291+
public infix fun <C> ColumnReference<C>.named(name: KProperty<*>): ColumnReference<C> = named(name.columnName)
292+
291293
public infix fun String.named(newName: String): ColumnReference<Any?> = toColumnAccessor().named(newName)
292294

293295
public infix fun String.and(other: String): ColumnSet<Any?> = toColumnAccessor() and other.toColumnAccessor()

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,19 @@ package org.jetbrains.kotlinx.dataframe.api
33
import org.jetbrains.kotlinx.dataframe.AnyFrame
44
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
55
import org.jetbrains.kotlinx.dataframe.DataFrame
6+
import org.jetbrains.kotlinx.dataframe.columns.ColumnAccessor
67
import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
78
import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath
89
import org.jetbrains.kotlinx.dataframe.impl.DELIMITED_STRING_REGEX
910
import org.jetbrains.kotlinx.dataframe.impl.DELIMITERS_REGEX
11+
import org.jetbrains.kotlinx.dataframe.impl.columnName
1012
import org.jetbrains.kotlinx.dataframe.impl.columns.toColumnSet
1113
import org.jetbrains.kotlinx.dataframe.impl.columns.toColumns
1214
import org.jetbrains.kotlinx.dataframe.impl.toCamelCaseByDelimiters
1315
import kotlin.reflect.KProperty
1416

17+
// region DataFrame
18+
1519
public fun <T> DataFrame<T>.rename(vararg mappings: Pair<String, String>): DataFrame<T> =
1620
rename { mappings.map { it.first.toColumnAccessor() }.toColumnSet() }
1721
.into(*mappings.map { it.second }.toTypedArray())
@@ -54,3 +58,20 @@ public fun <T, C> RenameClause<T, C>.into(transform: (ColumnWithPath<C>) -> Stri
5458

5559
public fun <T, C> RenameClause<T, C>.toCamelCase(): DataFrame<T> =
5660
into { it.name().toCamelCaseByDelimiters(DELIMITERS_REGEX) }
61+
62+
// endregion
63+
64+
// region DataColumn
65+
66+
public fun <T, C : ColumnReference<T>> C.rename(column: KProperty<T>): C = rename(column.columnName) as C
67+
public fun <T, C : ColumnReference<T>> C.rename(column: ColumnAccessor<T>): C = rename(column.name()) as C
68+
69+
// endregion
70+
71+
// region named
72+
73+
public infix fun <T, C : ColumnReference<T>> C.named(name: String): C = rename(name) as C
74+
public infix fun <T, C : ColumnReference<T>> C.named(name: KProperty<*>): C = rename(name)
75+
public infix fun <T, C : ColumnReference<T>> C.named(name: ColumnAccessor<*>): C = rename(name)
76+
77+
// endregion

0 commit comments

Comments
 (0)