diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/all.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/all.kt index a0ad715f9e..ef30330125 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/all.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/all.kt @@ -347,7 +347,7 @@ public interface AllColumnsSelectionDsl { /** @include [ColumnSetAllAfterDocs] {@set [ColumnSetAllAfterDocs.Arg] \ \{ myColumn `[in][String.contains]` it.`[name][ColumnWithPath.name]` \}} */ @Suppress("UNCHECKED_CAST") - public fun ColumnSet.allAfter(column: ColumnFilter): ColumnSet = + public fun ColumnSet.allAfter(column: (ColumnWithPath) -> Boolean): ColumnSet = allAfterInternal(column as ColumnFilter<*>) as ColumnSet /** @include [ColumnSetAllAfterDocs] {@set [ColumnSetAllAfterDocs.Arg] ("pathTo"["myColumn"])} */ @@ -584,7 +584,7 @@ public interface AllColumnsSelectionDsl { /** @include [ColumnSetAllFromDocs] {@set [ColumnSetAllFromDocs.Arg] \ \{ myColumn `[in][String.contains]` it.`[name][ColumnWithPath.name]` \}} */ @Suppress("UNCHECKED_CAST") - public fun ColumnSet.allFrom(column: ColumnFilter): ColumnSet = + public fun ColumnSet.allFrom(column: (ColumnWithPath) -> Boolean): ColumnSet = allFromInternal(column as ColumnFilter<*>) as ColumnSet /** @include [ColumnSetAllFromDocs] {@set [ColumnSetAllFromDocs.Arg] ("pathTo"["myColumn"])} */ @@ -819,7 +819,7 @@ public interface AllColumnsSelectionDsl { /** @include [ColumnSetAllBeforeDocs] {@set [ColumnSetAllBeforeDocs.Arg] \ \{ myColumn `[in][String.contains]` it.`[name][ColumnWithPath.name]` \}} */ @Suppress("UNCHECKED_CAST") - public fun ColumnSet.allBefore(column: ColumnFilter): ColumnSet = + public fun ColumnSet.allBefore(column: (ColumnWithPath) -> Boolean): ColumnSet = allBeforeInternal(column as ColumnFilter<*>) as ColumnSet /** @include [ColumnSetAllBeforeDocs] {@set [ColumnSetAllBeforeDocs.Arg] ("pathTo"["myColumn"])} */ @@ -1055,7 +1055,7 @@ public interface AllColumnsSelectionDsl { /** @include [ColumnSetAllUpToDocs] {@set [ColumnSetAllUpToDocs.Arg] \ \{ myColumn `[in][String.contains]` it.`[name][ColumnWithPath.name]` \}} */ @Suppress("UNCHECKED_CAST") - public fun ColumnSet.allUpTo(column: ColumnFilter): ColumnSet = + public fun ColumnSet.allUpTo(column: (ColumnWithPath) -> Boolean): ColumnSet = allUpToInternal(column as ColumnFilter<*>) as ColumnSet /** @include [ColumnSetAllUpToDocs] {@set [ColumnSetAllUpToDocs.Arg] ("pathTo"["myColumn"])} */ diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/cols.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/cols.kt index 7ab6f1599e..3fd9733383 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/cols.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/cols.kt @@ -248,14 +248,15 @@ public interface ColsColumnsSelectionDsl { /** @include [ColumnSetColsPredicateDocs] */ @Suppress("UNCHECKED_CAST") - public fun ColumnSet.cols(predicate: ColumnFilter): ColumnSet = + public fun ColumnSet.cols(predicate: (ColumnWithPath) -> Boolean): ColumnSet = colsInternal(predicate as ColumnFilter<*>).cast() @Deprecated(COLS_TO_ALL, ReplaceWith(COLS_TO_ALL_REPLACE), DeprecationLevel.ERROR) public fun ColumnSet.cols(): ColumnSet = cols { true } /** @include [ColumnSetColsPredicateDocs] */ - public operator fun ColumnSet.get(predicate: ColumnFilter = { true }): ColumnSet = cols(predicate) + public operator fun ColumnSet.get(predicate: (ColumnWithPath) -> Boolean = { true }): ColumnSet = + cols(predicate) /** * @include [CommonColsDocs.Predicate] @@ -276,14 +277,14 @@ public interface ColsColumnsSelectionDsl { private typealias ColumnsSelectionDslColsPredicateDocs = Nothing /** @include [ColumnsSelectionDslColsPredicateDocs] */ - public fun ColumnsSelectionDsl<*>.cols(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnsSelectionDsl<*>.cols(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = this.asSingleColumn().colsInternal(predicate) @Deprecated(COLS_TO_ALL, ReplaceWith(COLS_TO_ALL_REPLACE), DeprecationLevel.ERROR) public fun ColumnsSelectionDsl<*>.cols(): ColumnSet<*> = cols { true } /** @include [ColumnsSelectionDslColsPredicateDocs] */ - public operator fun ColumnsSelectionDsl<*>.get(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public operator fun ColumnsSelectionDsl<*>.get(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = cols(predicate) /** @@ -304,7 +305,7 @@ public interface ColsColumnsSelectionDsl { private typealias SingleColumnAnyRowColsPredicateDocs = Nothing /** @include [SingleColumnAnyRowColsPredicateDocs] */ - public fun SingleColumn>.cols(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun SingleColumn>.cols(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = this.ensureIsColumnGroup().colsInternal(predicate) @Deprecated(COLS_TO_ALL_COLS, ReplaceWith(COLS_TO_ALL_COLS_REPLACE), DeprecationLevel.ERROR) @@ -313,8 +314,9 @@ public interface ColsColumnsSelectionDsl { /** * @include [SingleColumnAnyRowColsPredicateDocs] */ - public operator fun SingleColumn>.get(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = - cols(predicate) + public operator fun SingleColumn>.get( + predicate: (ColumnWithPath<*>) -> Boolean = { true }, + ): ColumnSet<*> = cols(predicate) /** * @include [CommonColsDocs.Predicate] @@ -331,13 +333,13 @@ public interface ColsColumnsSelectionDsl { private typealias StringColsPredicateDocs = Nothing /** @include [StringColsPredicateDocs] */ - public fun String.cols(predicate: ColumnFilter<*>): ColumnSet<*> = columnGroup(this).cols(predicate) + public fun String.cols(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).cols(predicate) @Deprecated(COLS_TO_ALL_COLS, ReplaceWith(COLS_TO_ALL_COLS_REPLACE), DeprecationLevel.ERROR) public fun String.cols(): ColumnSet<*> = cols { true } /** @include [StringColsPredicateDocs] */ - public operator fun String.get(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = cols(predicate) + public operator fun String.get(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = cols(predicate) /** * @include [CommonColsDocs.Predicate] @@ -358,13 +360,14 @@ public interface ColsColumnsSelectionDsl { /** @include [KPropertyColsPredicateDocs] */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.cols(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun KProperty<*>.cols(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).cols(predicate) /** @include [KPropertyColsPredicateDocs] */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public operator fun KProperty<*>.get(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = cols(predicate) + public operator fun KProperty<*>.get(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = + cols(predicate) /** * @include [CommonColsDocs.Predicate] @@ -379,13 +382,15 @@ public interface ColsColumnsSelectionDsl { private typealias ColumnPathPredicateDocs = Nothing /** @include [ColumnPathPredicateDocs] */ - public fun ColumnPath.cols(predicate: ColumnFilter<*>): ColumnSet<*> = columnGroup(this).cols(predicate) + public fun ColumnPath.cols(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = + columnGroup(this).cols(predicate) @Deprecated(COLS_TO_ALL_COLS, ReplaceWith(COLS_TO_ALL_COLS_REPLACE), DeprecationLevel.ERROR) public fun ColumnPath.cols(): ColumnSet<*> = cols { true } /** @include [ColumnPathPredicateDocs] */ - public operator fun ColumnPath.get(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = cols(predicate) + public operator fun ColumnPath.get(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = + cols(predicate) // endregion diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsAtAnyDepth.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsAtAnyDepth.kt index 0114be719a..b2256b3059 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsAtAnyDepth.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsAtAnyDepth.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlinx.dataframe.annotations.Interpretable import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup import org.jetbrains.kotlinx.dataframe.columns.ColumnPath import org.jetbrains.kotlinx.dataframe.columns.ColumnSet +import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath import org.jetbrains.kotlinx.dataframe.columns.ColumnsResolver import org.jetbrains.kotlinx.dataframe.columns.SingleColumn import org.jetbrains.kotlinx.dataframe.documentation.DslGrammarTemplateColumnsSelectionDsl.DslGrammarTemplate @@ -127,7 +128,7 @@ public interface ColsAtAnyDepthColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_AT_ANY_DEPTH_REPLACE), level = DeprecationLevel.WARNING, ) - public fun ColumnSet<*>.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun ColumnSet<*>.colsAtAnyDepth(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = colsAtAnyDepthInternal(predicate) /** @@ -153,8 +154,9 @@ public interface ColsAtAnyDepthColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_AT_ANY_DEPTH_REPLACE), level = DeprecationLevel.WARNING, ) - public fun ColumnsSelectionDsl<*>.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = - asSingleColumn().colsAtAnyDepthInternal(predicate) + public fun ColumnsSelectionDsl<*>.colsAtAnyDepth( + predicate: (ColumnWithPath<*>) -> Boolean = { true }, + ): ColumnSet<*> = asSingleColumn().colsAtAnyDepthInternal(predicate) /** * @include [CommonAtAnyDepthDocs] @@ -179,8 +181,9 @@ public interface ColsAtAnyDepthColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_AT_ANY_DEPTH_REPLACE), level = DeprecationLevel.WARNING, ) - public fun SingleColumn>.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = - ensureIsColumnGroup().colsAtAnyDepthInternal(predicate) + public fun SingleColumn>.colsAtAnyDepth( + predicate: (ColumnWithPath<*>) -> Boolean = { true }, + ): ColumnSet<*> = ensureIsColumnGroup().colsAtAnyDepthInternal(predicate) /** * @include [CommonAtAnyDepthDocs] @@ -203,7 +206,7 @@ public interface ColsAtAnyDepthColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_AT_ANY_DEPTH_REPLACE), level = DeprecationLevel.WARNING, ) - public fun String.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun String.colsAtAnyDepth(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsAtAnyDepth(predicate) /** @@ -222,7 +225,7 @@ public interface ColsAtAnyDepthColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun KProperty<*>.colsAtAnyDepth(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsAtAnyDepth(predicate) /** @@ -232,7 +235,7 @@ public interface ColsAtAnyDepthColumnsSelectionDsl { * `df.`[select][DataFrame.select]` { "pathTo"["myGroupCol"].`[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }` */ @Deprecated("", replaceWith = ReplaceWith("colsAtAnyDepth().filter(predicate)")) - public fun ColumnPath.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun ColumnPath.colsAtAnyDepth(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsAtAnyDepth(predicate) /** diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsInGroups.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsInGroups.kt index 9d0582030c..0a40f9f943 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsInGroups.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsInGroups.kt @@ -121,7 +121,7 @@ public interface ColsInGroupsColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_IN_GROUPS_REPLACE), level = DeprecationLevel.WARNING, ) - public fun ColumnSet<*>.colsInGroups(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun ColumnSet<*>.colsInGroups(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = transform { it.flatMap { it.cols().filter { predicate(it) } } } /** @@ -145,7 +145,7 @@ public interface ColsInGroupsColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_IN_GROUPS_REPLACE), level = DeprecationLevel.WARNING, ) - public fun ColumnsSelectionDsl<*>.colsInGroups(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun ColumnsSelectionDsl<*>.colsInGroups(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = asSingleColumn().colsInGroups(predicate) /** @@ -169,8 +169,9 @@ public interface ColsInGroupsColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_IN_GROUPS_REPLACE), level = DeprecationLevel.WARNING, ) - public fun SingleColumn>.colsInGroups(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = - ensureIsColumnGroup().allColumnsInternal().colsInGroups(predicate) + public fun SingleColumn>.colsInGroups( + predicate: (ColumnWithPath<*>) -> Boolean = { true }, + ): ColumnSet<*> = ensureIsColumnGroup().allColumnsInternal().colsInGroups(predicate) /** * @include [ColsInGroupsDocs] @@ -192,7 +193,7 @@ public interface ColsInGroupsColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_IN_GROUPS_REPLACE), level = DeprecationLevel.WARNING, ) - public fun String.colsInGroups(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun String.colsInGroups(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsInGroups(predicate) /** @@ -213,7 +214,7 @@ public interface ColsInGroupsColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.colsInGroups(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun KProperty<*>.colsInGroups(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsInGroups(predicate) /** @@ -227,7 +228,7 @@ public interface ColsInGroupsColumnsSelectionDsl { replaceWith = ReplaceWith(COLS_IN_GROUPS_REPLACE), level = DeprecationLevel.WARNING, ) - public fun ColumnPath.colsInGroups(predicate: ColumnFilter<*> = { true }): ColumnSet<*> = + public fun ColumnPath.colsInGroups(predicate: (ColumnWithPath<*>) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsInGroups(predicate) /** diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOf.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOf.kt index bac3e17765..460bee3c90 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOf.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOf.kt @@ -8,6 +8,7 @@ import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload import org.jetbrains.kotlinx.dataframe.annotations.Interpretable import org.jetbrains.kotlinx.dataframe.columns.ColumnPath import org.jetbrains.kotlinx.dataframe.columns.ColumnSet +import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath import org.jetbrains.kotlinx.dataframe.columns.ColumnsResolver import org.jetbrains.kotlinx.dataframe.columns.SingleColumn import org.jetbrains.kotlinx.dataframe.documentation.DslGrammarTemplateColumnsSelectionDsl.DslGrammarTemplate @@ -145,7 +146,7 @@ public interface ColsOfColumnsSelectionDsl { * @include [CommonColsOfDocs.FilterParam] * @include [CommonColsOfDocs.Return] */ - public fun String.colsOf(type: KType, filter: ColumnFilter = { true }): ColumnSet<*> = + public fun String.colsOf(type: KType, filter: (ColumnWithPath) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsOf(type, filter) /** @@ -160,7 +161,7 @@ public interface ColsOfColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.colsOf(type: KType, filter: ColumnFilter = { true }): ColumnSet<*> = + public fun KProperty<*>.colsOf(type: KType, filter: (ColumnWithPath) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsOf(type, filter) /** @@ -173,7 +174,7 @@ public interface ColsOfColumnsSelectionDsl { * @include [CommonColsOfDocs.FilterParam] * @include [CommonColsOfDocs.Return] */ - public fun ColumnPath.colsOf(type: KType, filter: ColumnFilter = { true }): ColumnSet<*> = + public fun ColumnPath.colsOf(type: KType, filter: (ColumnWithPath) -> Boolean = { true }): ColumnSet<*> = columnGroup(this).colsOf(type, filter) } @@ -187,7 +188,7 @@ public interface ColsOfColumnsSelectionDsl { * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.FilterParam] * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.Return] */ -public fun ColumnSet<*>.colsOf(type: KType, filter: ColumnFilter = { true }): ColumnSet = +public fun ColumnSet<*>.colsOf(type: KType, filter: (ColumnWithPath) -> Boolean = { true }): ColumnSet = colsOfInternal(type, filter) /** @@ -201,8 +202,9 @@ public fun ColumnSet<*>.colsOf(type: KType, filter: ColumnFilter = { true * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.Return] */ @Interpretable("ColsOf1") -public inline fun ColumnSet<*>.colsOf(noinline filter: ColumnFilter = { true }): ColumnSet = - colsOf(typeOf(), filter) +public inline fun ColumnSet<*>.colsOf( + noinline filter: (ColumnWithPath) -> Boolean = { true }, +): ColumnSet = colsOf(typeOf(), filter) /** * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs] @@ -212,8 +214,10 @@ public inline fun ColumnSet<*>.colsOf(noinline filter: ColumnFilter< * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.FilterParam] * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.Return] */ -public fun ColumnsSelectionDsl<*>.colsOf(type: KType, filter: ColumnFilter = { true }): ColumnSet = - asSingleColumn().colsOf(type, filter) +public fun ColumnsSelectionDsl<*>.colsOf( + type: KType, + filter: (ColumnWithPath) -> Boolean = { true }, +): ColumnSet = asSingleColumn().colsOf(type, filter) /** * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs] @@ -225,7 +229,7 @@ public fun ColumnsSelectionDsl<*>.colsOf(type: KType, filter: ColumnFilter ColumnsSelectionDsl<*>.colsOf( - noinline filter: ColumnFilter = { true }, + noinline filter: (ColumnWithPath) -> Boolean = { true }, ): ColumnSet = asSingleColumn().colsOf(typeOf(), filter) /** @@ -238,8 +242,10 @@ public inline fun ColumnsSelectionDsl<*>.colsOf( * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.FilterParam] * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.Return] */ -public fun SingleColumn>.colsOf(type: KType, filter: ColumnFilter = { true }): ColumnSet = - ensureIsColumnGroup().colsOfInternal(type, filter) +public fun SingleColumn>.colsOf( + type: KType, + filter: (ColumnWithPath) -> Boolean = { true }, +): ColumnSet = ensureIsColumnGroup().colsOfInternal(type, filter) /** * @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs] @@ -253,7 +259,7 @@ public fun SingleColumn>.colsOf(type: KType, filter: ColumnFilter */ @Interpretable("ColsOf2") public inline fun SingleColumn>.colsOf( - noinline filter: ColumnFilter = { true }, + noinline filter: (ColumnWithPath) -> Boolean = { true }, ): ColumnSet = colsOf(typeOf(), filter) /** diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOfKind.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOfKind.kt index bfe654f01d..cdce693fc5 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOfKind.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOfKind.kt @@ -8,6 +8,7 @@ import org.jetbrains.kotlinx.dataframe.columns.ColumnKind import org.jetbrains.kotlinx.dataframe.columns.ColumnPath import org.jetbrains.kotlinx.dataframe.columns.ColumnReference import org.jetbrains.kotlinx.dataframe.columns.ColumnSet +import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath import org.jetbrains.kotlinx.dataframe.columns.ColumnsResolver import org.jetbrains.kotlinx.dataframe.columns.SingleColumn import org.jetbrains.kotlinx.dataframe.documentation.AccessApis @@ -117,7 +118,7 @@ public interface ColsOfKindColumnsSelectionDsl { public fun ColumnSet<*>.colsOfKind( kind: ColumnKind, vararg others: ColumnKind, - filter: ColumnFilter<*> = { true }, + filter: (ColumnWithPath<*>) -> Boolean = { true }, ): ColumnSet<*> = columnsOfKindInternal( kinds = headPlusArray(kind, others).toSet(), @@ -133,7 +134,7 @@ public interface ColsOfKindColumnsSelectionDsl { public fun ColumnsSelectionDsl<*>.colsOfKind( kind: ColumnKind, vararg others: ColumnKind, - filter: ColumnFilter<*> = { true }, + filter: (ColumnWithPath<*>) -> Boolean = { true }, ): ColumnSet<*> = asSingleColumn().columnsOfKindInternal( kinds = headPlusArray(kind, others).toSet(), @@ -149,7 +150,7 @@ public interface ColsOfKindColumnsSelectionDsl { public fun SingleColumn>.colsOfKind( kind: ColumnKind, vararg others: ColumnKind, - filter: ColumnFilter<*> = { true }, + filter: (ColumnWithPath<*>) -> Boolean = { true }, ): ColumnSet<*> = this.ensureIsColumnGroup().columnsOfKindInternal( kinds = headPlusArray(kind, others).toSet(), @@ -165,7 +166,7 @@ public interface ColsOfKindColumnsSelectionDsl { public fun String.colsOfKind( kind: ColumnKind, vararg others: ColumnKind, - filter: ColumnFilter<*> = { true }, + filter: (ColumnWithPath<*>) -> Boolean = { true }, ): ColumnSet<*> = columnGroup(this).colsOfKind(kind, *others, filter = filter) /** @@ -179,7 +180,7 @@ public interface ColsOfKindColumnsSelectionDsl { public fun KProperty<*>.colsOfKind( kind: ColumnKind, vararg others: ColumnKind, - filter: ColumnFilter<*> = { true }, + filter: (ColumnWithPath<*>) -> Boolean = { true }, ): ColumnSet<*> = columnGroup(this).colsOfKind(kind, *others, filter = filter) /** @@ -191,7 +192,7 @@ public interface ColsOfKindColumnsSelectionDsl { public fun ColumnPath.colsOfKind( kind: ColumnKind, vararg others: ColumnKind, - filter: ColumnFilter<*> = { true }, + filter: (ColumnWithPath<*>) -> Boolean = { true }, ): ColumnSet<*> = columnGroup(this).colsOfKind(kind, *others, filter = filter) // endregion diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/drop.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/drop.kt index a967e40496..4bf23e4a08 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/drop.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/drop.kt @@ -264,7 +264,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { `[cols][ColumnsSelectionDsl.cols]` { .. }.`[dropWhile][ColumnSet.dropWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun ColumnSet.dropWhile(predicate: ColumnFilter): ColumnSet = + public fun ColumnSet.dropWhile(predicate: (ColumnWithPath) -> Boolean): ColumnSet = transform { it.dropWhile(predicate) } /** @@ -273,7 +273,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { `[dropWhile][ColumnsSelectionDsl.dropWhile]` { it.`[any][ColumnWithPath.any]` { it == "Alice" } } }` */ - public fun ColumnsSelectionDsl<*>.dropWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnsSelectionDsl<*>.dropWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = this.asSingleColumn().dropColsWhile(predicate) /** @@ -282,7 +282,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { myColumnGroup.`[dropColsWhile][SingleColumn.dropColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun SingleColumn>.dropColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun SingleColumn>.dropColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = this.ensureIsColumnGroup().transformSingle { it.cols().dropWhile(predicate) } /** @@ -291,7 +291,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { "myColumnGroup".`[dropColsWhile][String.dropColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun String.dropColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun String.dropColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).dropColsWhile(predicate) /** @@ -302,7 +302,7 @@ public interface DropColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.dropColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun KProperty<*>.dropColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).dropColsWhile(predicate) /** @@ -311,7 +311,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { "pathTo"["myColumnGroup"].`[dropColsWhile][ColumnPath.dropColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun ColumnPath.dropColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnPath.dropColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).dropColsWhile(predicate) // endregion @@ -335,7 +335,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { `[cols][ColumnsSelectionDsl.cols]` { .. }.`[dropLastWhile][ColumnSet.dropLastWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun ColumnSet.dropLastWhile(predicate: ColumnFilter): ColumnSet = + public fun ColumnSet.dropLastWhile(predicate: (ColumnWithPath) -> Boolean): ColumnSet = transform { it.dropLastWhile(predicate) } /** @@ -344,7 +344,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { `[dropLastWhile][ColumnsSelectionDsl.dropLastWhile]` { it.`[any][ColumnWithPath.any]` { it == "Alice" } } }` */ - public fun ColumnsSelectionDsl<*>.dropLastWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnsSelectionDsl<*>.dropLastWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = this.asSingleColumn().dropLastColsWhile(predicate) /** @@ -353,7 +353,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { myColumnGroup.`[dropLastColsWhile][SingleColumn.dropLastColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun SingleColumn>.dropLastColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun SingleColumn>.dropLastColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = this.ensureIsColumnGroup().transformSingle { it.cols().dropLastWhile(predicate) } /** @@ -362,7 +362,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { "myColumnGroup".`[dropLastColsWhile][String.dropLastColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun String.dropLastColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun String.dropLastColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).dropLastColsWhile(predicate) /** @@ -375,7 +375,7 @@ public interface DropColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.dropLastColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun KProperty<*>.dropLastColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).dropLastColsWhile(predicate) /** @@ -384,7 +384,7 @@ public interface DropColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { "pathTo"["myColumnGroup"].`[dropLastColsWhile][ColumnPath.dropLastColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun ColumnPath.dropLastColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnPath.dropLastColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).dropLastColsWhile(predicate) // endregion diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/filter.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/filter.kt index 04f064feeb..90b09dfac8 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/filter.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/filter.kt @@ -157,7 +157,7 @@ public interface FilterColumnsSelectionDsl { * @see [ColumnsSelectionDsl.cols] */ @Suppress("UNCHECKED_CAST") - public fun ColumnSet.filter(predicate: ColumnFilter): ColumnSet = + public fun ColumnSet.filter(predicate: (ColumnWithPath) -> Boolean): ColumnSet = colsInternal(predicate as ColumnFilter<*>).cast() } diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/first.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/first.kt index c3b9572c16..352ace0bb7 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/first.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/first.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup import org.jetbrains.kotlinx.dataframe.columns.ColumnPath import org.jetbrains.kotlinx.dataframe.columns.ColumnReference import org.jetbrains.kotlinx.dataframe.columns.ColumnSet +import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath import org.jetbrains.kotlinx.dataframe.columns.SingleColumn import org.jetbrains.kotlinx.dataframe.columns.asColumnSet import org.jetbrains.kotlinx.dataframe.columns.size @@ -479,7 +480,7 @@ public interface FirstColumnsSelectionDsl { */ @Suppress("UNCHECKED_CAST") @Interpretable("First0") - public fun ColumnSet.first(condition: ColumnFilter = { true }): SingleColumn = + public fun ColumnSet.first(condition: (ColumnWithPath) -> Boolean = { true }): SingleColumn = (allColumnsInternal() as TransformableColumnSet) .transform { listOf(it.first(condition)) } .singleOrNullWithTransformerImpl() @@ -491,7 +492,7 @@ public interface FirstColumnsSelectionDsl { * `df.`[select][DataFrame.select]` { `[first][ColumnsSelectionDsl.first]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }` */ @Interpretable("First1") - public fun ColumnsSelectionDsl<*>.first(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun ColumnsSelectionDsl<*>.first(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = asSingleColumn().firstCol(condition) /** @@ -501,15 +502,16 @@ public interface FirstColumnsSelectionDsl { * `df.`[select][DataFrame.select]` { myColumnGroup.`[firstCol][SingleColumn.firstCol]`() }` */ @Interpretable("First2") - public fun SingleColumn>.firstCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = - this.ensureIsColumnGroup().asColumnSet().first(condition) + public fun SingleColumn>.firstCol( + condition: (ColumnWithPath<*>) -> Boolean = { true }, + ): SingleColumn<*> = this.ensureIsColumnGroup().asColumnSet().first(condition) /** * @include [CommonFirstDocs] * @set [CommonFirstDocs.Examples] * `df.`[select][DataFrame.select]` { "myColumnGroup".`[firstCol][String.firstCol]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }` */ - public fun String.firstCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun String.firstCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).firstCol(condition) /** @@ -521,7 +523,7 @@ public interface FirstColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.firstCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun KProperty<*>.firstCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).firstCol(condition) /** @@ -529,7 +531,7 @@ public interface FirstColumnsSelectionDsl { * @set [CommonFirstDocs.Examples] * `df.`[select][DataFrame.select]` { "pathTo"["myColumnGroup"].`[firstCol][ColumnPath.firstCol]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }` */ - public fun ColumnPath.firstCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun ColumnPath.firstCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).firstCol(condition) } diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/last.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/last.kt index 91867977e8..53ebbfdd52 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/last.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/last.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup import org.jetbrains.kotlinx.dataframe.columns.ColumnPath import org.jetbrains.kotlinx.dataframe.columns.ColumnReference import org.jetbrains.kotlinx.dataframe.columns.ColumnSet +import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath import org.jetbrains.kotlinx.dataframe.columns.SingleColumn import org.jetbrains.kotlinx.dataframe.columns.asColumnSet import org.jetbrains.kotlinx.dataframe.columns.size @@ -474,7 +475,7 @@ public interface LastColumnsSelectionDsl { */ @Suppress("UNCHECKED_CAST") @Interpretable("Last0") - public fun ColumnSet.last(condition: ColumnFilter = { true }): SingleColumn = + public fun ColumnSet.last(condition: (ColumnWithPath) -> Boolean = { true }): SingleColumn = (allColumnsInternal() as TransformableColumnSet) .transform { listOf(it.last(condition)) } .singleOrNullWithTransformerImpl() @@ -486,7 +487,7 @@ public interface LastColumnsSelectionDsl { * `df.`[select][DataFrame.select]` { `[last][ColumnsSelectionDsl.last]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }` */ @Interpretable("Last1") - public fun ColumnsSelectionDsl<*>.last(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun ColumnsSelectionDsl<*>.last(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = asSingleColumn().lastCol(condition) /** @@ -496,7 +497,7 @@ public interface LastColumnsSelectionDsl { * `df.`[select][DataFrame.select]` { myColumnGroup.`[lastCol][SingleColumn.lastCol]`() }` */ @Interpretable("Last2") - public fun SingleColumn>.lastCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun SingleColumn>.lastCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = this.ensureIsColumnGroup().asColumnSet().last(condition) /** @@ -504,7 +505,7 @@ public interface LastColumnsSelectionDsl { * @set [CommonLastDocs.Examples] * `df.`[select][DataFrame.select]` { "myColumnGroup".`[lastCol][String.lastCol]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }` */ - public fun String.lastCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun String.lastCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).lastCol(condition) /** @@ -516,7 +517,7 @@ public interface LastColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.lastCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun KProperty<*>.lastCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).lastCol(condition) /** @@ -524,7 +525,7 @@ public interface LastColumnsSelectionDsl { * @set [CommonLastDocs.Examples] * `df.`[select][DataFrame.select]` { "pathTo"["myColumnGroup"].`[lastCol][ColumnPath.lastCol]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }` */ - public fun ColumnPath.lastCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun ColumnPath.lastCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).lastCol(condition) } diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/single.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/single.kt index ec7e8b2840..cb3610a60d 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/single.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/single.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlinx.dataframe.annotations.Interpretable import org.jetbrains.kotlinx.dataframe.columns.ColumnPath import org.jetbrains.kotlinx.dataframe.columns.ColumnReference import org.jetbrains.kotlinx.dataframe.columns.ColumnSet +import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath import org.jetbrains.kotlinx.dataframe.columns.ColumnsResolver import org.jetbrains.kotlinx.dataframe.columns.SingleColumn import org.jetbrains.kotlinx.dataframe.columns.asColumnSet @@ -142,7 +143,7 @@ public interface SingleColumnsSelectionDsl { replaceWith = ReplaceWith(SINGLE_SET_REPLACE), level = DeprecationLevel.WARNING, ) - public fun ColumnSet.single(condition: ColumnFilter = { true }): SingleColumn = + public fun ColumnSet.single(condition: (ColumnWithPath) -> Boolean = { true }): SingleColumn = singleInternal(condition) /** @@ -167,7 +168,7 @@ public interface SingleColumnsSelectionDsl { replaceWith = ReplaceWith(SINGLE_PLAIN_REPLACE), level = DeprecationLevel.WARNING, ) - public fun ColumnsSelectionDsl<*>.single(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun ColumnsSelectionDsl<*>.single(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = asSingleColumn().singleCol(condition) /** @@ -191,8 +192,9 @@ public interface SingleColumnsSelectionDsl { replaceWith = ReplaceWith(SINGLE_COL_REPLACE), level = DeprecationLevel.WARNING, ) - public fun SingleColumn>.singleCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = - this.ensureIsColumnGroup().asColumnSet().single(condition) + public fun SingleColumn>.singleCol( + condition: (ColumnWithPath<*>) -> Boolean = { true }, + ): SingleColumn<*> = this.ensureIsColumnGroup().asColumnSet().single(condition) /** * @include [CommonSingleDocs] @@ -213,7 +215,7 @@ public interface SingleColumnsSelectionDsl { replaceWith = ReplaceWith(SINGLE_COL_REPLACE), level = DeprecationLevel.WARNING, ) - public fun String.singleCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun String.singleCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).singleCol(condition) /** @@ -232,7 +234,7 @@ public interface SingleColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.singleCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun KProperty<*>.singleCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).singleCol(condition) /** @@ -240,7 +242,7 @@ public interface SingleColumnsSelectionDsl { * @set [CommonSingleDocs.Examples] * `df.`[select][DataFrame.select]` { "pathTo"["myColumnGroup"].`[singleCol][ColumnPath.singleCol]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }` */ - public fun ColumnPath.singleCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> = + public fun ColumnPath.singleCol(condition: (ColumnWithPath<*>) -> Boolean = { true }): SingleColumn<*> = columnGroup(this).singleCol(condition) } diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/take.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/take.kt index b051fac67f..760c3bdbe7 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/take.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/take.kt @@ -260,7 +260,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { `[cols][ColumnsSelectionDsl.cols]` { .. }.`[takeWhile][ColumnSet.takeWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun ColumnSet.takeWhile(predicate: ColumnFilter): ColumnSet = + public fun ColumnSet.takeWhile(predicate: (ColumnWithPath) -> Boolean): ColumnSet = transform { it.takeWhile(predicate) } /** @@ -269,7 +269,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { `[takeWhile][ColumnsSelectionDsl.takeWhile]` { it.`[any][ColumnWithPath.any]` { it == "Alice" } } }` */ - public fun ColumnsSelectionDsl<*>.takeWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnsSelectionDsl<*>.takeWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = asSingleColumn().takeColsWhile(predicate) /** @@ -278,7 +278,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { myColumnGroup.`[takeWhile][SingleColumn.takeColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun SingleColumn>.takeColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun SingleColumn>.takeColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = this.ensureIsColumnGroup().transformSingle { it.cols().takeWhile(predicate) } /** @@ -287,7 +287,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { "myColumnGroup".`[takeColsWhile][String.takeColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun String.takeColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun String.takeColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).takeColsWhile(predicate) /** @@ -300,7 +300,7 @@ public interface TakeColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.takeColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun KProperty<*>.takeColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).takeColsWhile(predicate) /** @@ -309,7 +309,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { "pathTo"["myColumnGroup"].`[takeColsWhile][ColumnPath.takeColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun ColumnPath.takeColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnPath.takeColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).takeColsWhile(predicate) // endregion @@ -333,7 +333,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { `[cols][ColumnsSelectionDsl.cols]` { .. }.`[takeLastWhile][ColumnSet.takeLastWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun ColumnSet.takeLastWhile(predicate: ColumnFilter): ColumnSet = + public fun ColumnSet.takeLastWhile(predicate: (ColumnWithPath) -> Boolean): ColumnSet = transform { it.takeLastWhile(predicate) } /** @@ -342,7 +342,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { `[takeLastWhile][ColumnsSelectionDsl.takeLastWhile]` { it.`[any][ColumnWithPath.any]` { it == "Alice" } } }` */ - public fun ColumnsSelectionDsl<*>.takeLastWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnsSelectionDsl<*>.takeLastWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = asSingleColumn().takeLastColsWhile(predicate) /** @@ -351,7 +351,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { myColumnGroup.`[takeLastColsWhile][SingleColumn.takeLastColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun SingleColumn>.takeLastColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun SingleColumn>.takeLastColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = this.ensureIsColumnGroup().transformSingle { it.cols().takeLastWhile(predicate) } /** @@ -360,7 +360,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { "myColumnGroup".`[takeLastColsWhile][String.takeLastColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun String.takeLastColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun String.takeLastColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).takeLastColsWhile(predicate) /** @@ -373,7 +373,7 @@ public interface TakeColumnsSelectionDsl { */ @Deprecated(DEPRECATED_ACCESS_API) @AccessApiOverload - public fun KProperty<*>.takeLastColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun KProperty<*>.takeLastColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).takeLastColsWhile(predicate) /** @@ -382,7 +382,7 @@ public interface TakeColumnsSelectionDsl { * * `df.`[select][DataFrame.select]` { "pathTo"["myColumnGroup"].`[takeLastColsWhile][ColumnPath.takeLastColsWhile]` { it.`[name][ColumnWithPath.name]`.`[startsWith][String.startsWith]`("my") } }` */ - public fun ColumnPath.takeLastColsWhile(predicate: ColumnFilter<*>): ColumnSet<*> = + public fun ColumnPath.takeLastColsWhile(predicate: (ColumnWithPath<*>) -> Boolean): ColumnSet<*> = columnGroup(this).takeLastColsWhile(predicate) // endregion