Skip to content

Commit beb5c3e

Browse files
committed
[Compiler plugin] Extend CS DSL support
1 parent e137ca9 commit beb5c3e

39 files changed

+1406
-33
lines changed

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/all.kt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
264264
* NOTE: This is an identity call and can be omitted in most cases.
265265
*/
266266
@Suppress("UNCHECKED_CAST")
267+
@Interpretable("All0")
267268
public fun <C> ColumnSet<C>.all(): TransformableColumnSet<C> = allColumnsInternal() as TransformableColumnSet<C>
268269

269270
/**
@@ -272,7 +273,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
272273
*
273274
* `df.`[select][DataFrame.select]` { `[all][ColumnsSelectionDsl.all]`() }`
274275
*/
275-
@Interpretable("All0")
276+
@Interpretable("All1")
276277
public fun ColumnsSelectionDsl<*>.all(): TransformableColumnSet<*> = asSingleColumn().allColumnsInternal()
277278

278279
/**
@@ -281,6 +282,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
281282
*
282283
* `df.`[select][DataFrame.select]` { myGroup.`[allCols][SingleColumn.allCols]`() }`
283284
*/
285+
@Interpretable("All2")
284286
public fun SingleColumn<DataRow<*>>.allCols(): TransformableColumnSet<*> =
285287
ensureIsColumnGroup().allColumnsInternal()
286288

@@ -351,6 +353,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
351353
public fun <C> ColumnSet<C>.allAfter(column: String): ColumnSet<C> = allAfter(pathOf(column))
352354

353355
/** @include [ColumnSetAllAfterDocs] {@set [ColumnSetAllAfterDocs.Arg] (myColumn)} */
356+
@Interpretable("AllAfter0")
354357
public fun <C> ColumnSet<C>.allAfter(column: AnyColumnReference): ColumnSet<C> = allAfter(column.path())
355358

356359
/** @include [ColumnSetAllAfterDocs] {@set [ColumnSetAllAfterDocs.Arg] (Type::myColumn)} */
@@ -371,6 +374,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
371374
}
372375

373376
/** @include [ColumnsSelectionDslAllAfterDocs] {@set [ColumnsSelectionDslAllAfterDocs.Arg] \ \{ myColumn \}} */
377+
@Interpretable("AllAfter1")
374378
public fun <T> ColumnsSelectionDsl<T>.allAfter(column: ColumnSelector<T, *>): ColumnSet<*> =
375379
asSingleColumn().allColsAfter(column)
376380

@@ -381,6 +385,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
381385
public fun ColumnsSelectionDsl<*>.allAfter(column: String): ColumnSet<*> = allAfter(pathOf(column))
382386

383387
/** @include [ColumnsSelectionDslAllAfterDocs] {@set [ColumnsSelectionDslAllAfterDocs.Arg] (myColumn)} */
388+
@Interpretable("AllAfter2")
384389
public fun ColumnsSelectionDsl<*>.allAfter(column: AnyColumnReference): ColumnSet<*> = allAfter(column.path())
385390

386391
/** @include [ColumnsSelectionDslAllAfterDocs] {@set [ColumnsSelectionDslAllAfterDocs.Arg] (Type::myColumn)} */
@@ -565,6 +570,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
565570
public fun <C> ColumnSet<C>.allFrom(column: String): ColumnSet<C> = allFrom(pathOf(column))
566571

567572
/** @include [ColumnSetAllFromDocs] {@set [ColumnSetAllFromDocs.Arg] (myColumn)} */
573+
@Interpretable("AllFrom0")
568574
public fun <C> ColumnSet<C>.allFrom(column: AnyColumnReference): ColumnSet<C> = allFrom(column.path())
569575

570576
/** @include [ColumnSetAllFromDocs] {@set [ColumnSetAllFromDocs.Arg] (Type::myColumn)} */
@@ -584,6 +590,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
584590
}
585591

586592
/** @include [ColumnsSelectionDslAllFromDocs] {@set [ColumnsSelectionDslAllFromDocs.Arg] \ \{ myColumn \}} */
593+
@Interpretable("AllFrom1")
587594
public fun <T> ColumnsSelectionDsl<T>.allFrom(column: ColumnSelector<T, *>): ColumnSet<*> =
588595
asSingleColumn().allColsFrom(column)
589596

@@ -594,6 +601,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
594601
public fun ColumnsSelectionDsl<*>.allFrom(column: String): ColumnSet<*> = asSingleColumn().allColsFrom(column)
595602

596603
/** @include [ColumnsSelectionDslAllFromDocs] {@set [ColumnsSelectionDslAllFromDocs.Arg] (myColumn)} */
604+
@Interpretable("AllFrom2")
597605
public fun ColumnsSelectionDsl<*>.allFrom(column: AnyColumnReference): ColumnSet<*> =
598606
asSingleColumn().allColsFrom(column)
599607

@@ -777,6 +785,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
777785
public fun <C> ColumnSet<C>.allBefore(column: String): ColumnSet<C> = allBefore(pathOf(column))
778786

779787
/** @include [ColumnSetAllBeforeDocs] {@set [ColumnSetAllBeforeDocs.Arg] (myColumn)} */
788+
@Interpretable("AllBefore0")
780789
public fun <C> ColumnSet<C>.allBefore(column: AnyColumnReference): ColumnSet<C> = allBefore(column.path())
781790

782791
/** @include [ColumnSetAllBeforeDocs] {@set [ColumnSetAllBeforeDocs.Arg] (Type::myColumn)} */
@@ -797,6 +806,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
797806
}
798807

799808
/** @include [ColumnsSelectionDslAllBeforeDocs] {@set [ColumnsSelectionDslAllBeforeDocs.Arg] \ \{ myColumn \}} */
809+
@Interpretable("AllBefore1")
800810
public fun <T> ColumnsSelectionDsl<T>.allBefore(column: ColumnSelector<T, *>): ColumnSet<*> =
801811
asSingleColumn().allColsBefore(column)
802812

@@ -808,6 +818,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
808818
public fun ColumnsSelectionDsl<*>.allBefore(column: String): ColumnSet<*> = allBefore(pathOf(column))
809819

810820
/** @include [ColumnsSelectionDslAllBeforeDocs] {@set [ColumnsSelectionDslAllBeforeDocs.Arg] (myColumn)} */
821+
@Interpretable("AllBefore2")
811822
public fun ColumnsSelectionDsl<*>.allBefore(column: AnyColumnReference): ColumnSet<*> = allBefore(column.path())
812823

813824
/** @include [ColumnsSelectionDslAllBeforeDocs] {@set [ColumnsSelectionDslAllBeforeDocs.Arg] (Type::myColumn)} */
@@ -990,6 +1001,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
9901001
public fun <C> ColumnSet<C>.allUpTo(column: String): ColumnSet<C> = allUpTo(pathOf(column))
9911002

9921003
/** @include [ColumnSetAllUpToDocs] {@set [ColumnSetAllUpToDocs.Arg] (myColumn)} */
1004+
@Interpretable("AllUpTo0")
9931005
public fun <C> ColumnSet<C>.allUpTo(column: AnyColumnReference): ColumnSet<C> = allUpTo(column.path())
9941006

9951007
/** @include [ColumnSetAllUpToDocs] {@set [ColumnSetAllUpToDocs.Arg] (Type::myColumn)} */
@@ -1009,6 +1021,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
10091021
}
10101022

10111023
/** @include [ColumnsSelectionDslAllUpToDocs] {@set [ColumnsSelectionDslAllUpToDocs.Arg] \ \{ myColumn \}} */
1024+
@Interpretable("AllUpTo1")
10121025
public fun <T> ColumnsSelectionDsl<T>.allUpTo(column: ColumnSelector<T, *>): ColumnSet<*> =
10131026
asSingleColumn().allColsUpTo(column)
10141027

@@ -1019,6 +1032,7 @@ public interface AllColumnsSelectionDsl<out _UNUSED> {
10191032
public fun ColumnsSelectionDsl<*>.allUpTo(column: String): ColumnSet<*> = asSingleColumn().allColsUpTo(column)
10201033

10211034
/** @include [ColumnsSelectionDslAllUpToDocs] {@set [ColumnsSelectionDslAllUpToDocs.Arg] (myColumn)} */
1035+
@Interpretable("AllUpTo2")
10221036
public fun ColumnsSelectionDsl<*>.allUpTo(column: AnyColumnReference): ColumnSet<*> =
10231037
asSingleColumn().allColsUpTo(column)
10241038

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colGroups.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.jetbrains.kotlinx.dataframe.AnyRow
44
import org.jetbrains.kotlinx.dataframe.DataFrame
55
import org.jetbrains.kotlinx.dataframe.DataRow
66
import org.jetbrains.kotlinx.dataframe.Predicate
7+
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
78
import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
89
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
910
import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
@@ -108,6 +109,7 @@ public interface ColGroupsColumnsSelectionDsl {
108109
*
109110
* `df.`[select][DataFrame.select]` { `[colGroups][ColumnsSelectionDsl.colGroups]` { it.`[name][ColumnReference.name]`.`[startsWith][String.startsWith]`("my") } }`
110111
*/
112+
@Interpretable("ColGroups0")
111113
public fun ColumnSet<*>.colGroups(filter: Predicate<ColumnGroup<*>> = { true }): TransformableColumnSet<AnyRow> =
112114
columnGroupsInternal(filter)
113115

@@ -119,6 +121,7 @@ public interface ColGroupsColumnsSelectionDsl {
119121
*
120122
* `df.`[select][DataFrame.select]` { `[colGroups][ColumnsSelectionDsl.colGroups]` { it.`[name][ColumnReference.name]`.`[startsWith][String.startsWith]`("my") } }`
121123
*/
124+
@Interpretable("ColGroups1")
122125
public fun ColumnsSelectionDsl<*>.colGroups(
123126
filter: Predicate<ColumnGroup<*>> = { true },
124127
): TransformableColumnSet<AnyRow> = asSingleColumn().columnGroupsInternal(filter)
@@ -131,6 +134,7 @@ public interface ColGroupsColumnsSelectionDsl {
131134
*
132135
* `df.`[select][DataFrame.select]` { myColGroup.`[colGroups][SingleColumn.colGroups]` { it.`[name][ColumnReference.name]`.`[startsWith][String.startsWith]`("my") } }`
133136
*/
137+
@Interpretable("ColGroups2")
134138
public fun SingleColumn<DataRow<*>>.colGroups(
135139
filter: Predicate<ColumnGroup<*>> = { true },
136140
): TransformableColumnSet<AnyRow> = this.ensureIsColumnGroup().columnGroupsInternal(filter)

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/cols.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.jetbrains.kotlinx.dataframe.ColumnFilter
44
import org.jetbrains.kotlinx.dataframe.DataColumn
55
import org.jetbrains.kotlinx.dataframe.DataFrame
66
import org.jetbrains.kotlinx.dataframe.DataRow
7+
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
78
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
89
import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
910
import org.jetbrains.kotlinx.dataframe.columns.ColumnSet
@@ -382,6 +383,7 @@ public interface ColsColumnsSelectionDsl<out _UNUSED> {
382383
private interface ColumnsSelectionDslColsVarargColumnReferenceDocs
383384

384385
/** @include [ColumnsSelectionDslColsVarargColumnReferenceDocs] */
386+
@Interpretable("Cols0")
385387
public fun <C> ColumnsSelectionDsl<*>.cols(
386388
firstCol: ColumnReference<C>,
387389
vararg otherCols: ColumnReference<C>,

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsAtAnyDepth.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ public interface ColsAtAnyDepthColumnsSelectionDsl {
120120
*
121121
* `df.`[select][DataFrame.select]` { `[colGroups][ColumnsSelectionDsl.colGroups]`().`[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
122122
*/
123+
@Interpretable("ColsAtAnyDepth0")
123124
public fun ColumnSet<*>.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> =
124125
colsAtAnyDepthInternal(predicate)
125126

@@ -131,7 +132,7 @@ public interface ColsAtAnyDepthColumnsSelectionDsl {
131132
*
132133
* `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { !it.`[isColumnGroup][DataColumn.isColumnGroup]` } }`
133134
*/
134-
@Interpretable("ColsAtAnyDepth0")
135+
@Interpretable("ColsAtAnyDepth1")
135136
public fun ColumnsSelectionDsl<*>.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> =
136137
asSingleColumn().colsAtAnyDepthInternal(predicate)
137138

@@ -141,6 +142,7 @@ public interface ColsAtAnyDepthColumnsSelectionDsl {
141142
*
142143
* `df.`[select][DataFrame.select]` { myColGroup.`[colsAtAnyDepth][SingleColumn.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
143144
*/
145+
@Interpretable("ColsAtAnyDepth2")
144146
public fun SingleColumn<DataRow<*>>.colsAtAnyDepth(predicate: ColumnFilter<*> = { true }): ColumnSet<*> =
145147
ensureIsColumnGroup().colsAtAnyDepthInternal(predicate)
146148

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/colsOf.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ public fun <C> SingleColumn<DataRow<*>>.colsOf(
248248
* @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.FilterParam]
249249
* @include [ColsOfColumnsSelectionDsl.CommonColsOfDocs.Return]
250250
*/
251+
@Interpretable("ColsOf2")
251252
public inline fun <reified C> SingleColumn<DataRow<*>>.colsOf(
252253
noinline filter: ColumnFilter<C> = { true },
253254
): TransformableColumnSet<C> = colsOf(typeOf<C>(), filter)

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/columnNameFilters.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.jetbrains.kotlinx.dataframe.api
33
import org.jetbrains.kotlinx.dataframe.DataColumn
44
import org.jetbrains.kotlinx.dataframe.DataFrame
55
import org.jetbrains.kotlinx.dataframe.DataRow
6+
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
67
import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
78
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
89
import org.jetbrains.kotlinx.dataframe.columns.ColumnSet
@@ -146,6 +147,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
146147
* `df.`[select][DataFrame.select]` { `[colsOf][SingleColumn.colsOf]`<`[Int][Int]`>().`[nameContains][ColumnSet.nameContains]`("my", ignoreCase = true) }`
147148
*/
148149
@Suppress("UNCHECKED_CAST")
150+
@Interpretable("NameContains0")
149151
public fun <C> ColumnSet<C>.nameContains(
150152
text: CharSequence,
151153
ignoreCase: Boolean = false,
@@ -157,6 +159,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
157159
*
158160
* `df.`[select][DataFrame.select]` { `[nameContains][ColumnsSelectionDsl.colsNameContains]`("my") }`
159161
*/
162+
@Interpretable("NameContains1")
160163
public fun ColumnsSelectionDsl<*>.nameContains(
161164
text: CharSequence,
162165
ignoreCase: Boolean = false,
@@ -168,6 +171,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
168171
*
169172
* `df.`[select][DataFrame.select]` { someGroupCol.`[colsNameContains][SingleColumn.colsNameContains]`("my") }`
170173
*/
174+
@Interpretable("NameContains2")
171175
public fun SingleColumn<DataRow<*>>.colsNameContains(
172176
text: CharSequence,
173177
ignoreCase: Boolean = false,
@@ -348,6 +352,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
348352
* `df.`[select][DataFrame.select]` { `[colsOf][SingleColumn.colsOf]`<`[Int][Int]`>().`[nameStartsWith][ColumnSet.nameStartsWith]`("order-") }`
349353
*/
350354
@Suppress("UNCHECKED_CAST")
355+
@Interpretable("NameStartsWith0")
351356
public fun <C> ColumnSet<C>.nameStartsWith(
352357
prefix: CharSequence,
353358
ignoreCase: Boolean = false,
@@ -359,6 +364,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
359364
*
360365
* `df.`[select][DataFrame.select]` { `[nameStartsWith][ColumnsSelectionDsl.nameStartsWith]`("order-") }`
361366
*/
367+
@Interpretable("NameStartsWith1")
362368
public fun ColumnsSelectionDsl<*>.nameStartsWith(
363369
prefix: CharSequence,
364370
ignoreCase: Boolean = false,
@@ -370,6 +376,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
370376
*
371377
* `df.`[select][DataFrame.select]` { someGroupCol.`[colsNameStartsWith][SingleColumn.colsNameStartsWith]`("order-") }`
372378
*/
379+
@Interpretable("NameStartsWith2")
373380
public fun SingleColumn<DataRow<*>>.colsNameStartsWith(
374381
prefix: CharSequence,
375382
ignoreCase: Boolean = false,
@@ -434,6 +441,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
434441
* `df.`[select][DataFrame.select]` { `[colsOf][SingleColumn.colsOf]`<`[Int][Int]`>().`[nameEndsWith][ColumnSet.nameEndsWith]`("-order") }`
435442
*/
436443
@Suppress("UNCHECKED_CAST")
444+
@Interpretable("NameEndsWith0")
437445
public fun <C> ColumnSet<C>.nameEndsWith(
438446
suffix: CharSequence,
439447
ignoreCase: Boolean = false,
@@ -445,6 +453,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
445453
*
446454
* `df.`[select][DataFrame.select]` { `[nameEndsWith][ColumnsSelectionDsl.nameEndsWith]`("-order") }`
447455
*/
456+
@Interpretable("NameEndsWith1")
448457
public fun ColumnsSelectionDsl<*>.nameEndsWith(
449458
suffix: CharSequence,
450459
ignoreCase: Boolean = false,
@@ -456,6 +465,7 @@ public interface ColumnNameFiltersColumnsSelectionDsl {
456465
*
457466
* `df.`[select][DataFrame.select]` { someGroupCol.`[colsNameEndsWith][SingleColumn.colsNameEndsWith]`("-order") }`
458467
*/
468+
@Interpretable("NameEndsWith2")
459469
public fun SingleColumn<DataRow<*>>.colsNameEndsWith(
460470
suffix: CharSequence,
461471
ignoreCase: Boolean = false,

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/columnRange.kt

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

33
import org.jetbrains.kotlinx.dataframe.AnyColumnReference
44
import org.jetbrains.kotlinx.dataframe.DataFrame
5+
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
56
import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
67
import org.jetbrains.kotlinx.dataframe.columns.ColumnSet
78
import org.jetbrains.kotlinx.dataframe.documentation.AccessApiLink
@@ -130,6 +131,7 @@ public interface ColumnRangeColumnsSelectionDsl {
130131
* @include [CommonRangeOfColumnsDocs]
131132
* {@set [CommonRangeOfColumnsDocs.Example] `fromColumn`[`..`][ColumnReference.rangeTo]`toColumn`}
132133
*/
134+
@Interpretable("ColumnRange")
133135
public operator fun AnyColumnReference.rangeTo(endInclusive: AnyColumnReference): ColumnSet<*> =
134136
createColumnSet { context ->
135137
val startPath = this@rangeTo.resolveSingle(context)!!.path

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/drop.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import org.jetbrains.kotlinx.dataframe.DataFrame
66
import org.jetbrains.kotlinx.dataframe.DataRow
77
import org.jetbrains.kotlinx.dataframe.Predicate
88
import org.jetbrains.kotlinx.dataframe.RowFilter
9-
import org.jetbrains.kotlinx.dataframe.api.ColumnsSelectionDsl
9+
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
1010
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
1111
import org.jetbrains.kotlinx.dataframe.columns.ColumnSet
1212
import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath
@@ -125,6 +125,7 @@ public interface DropColumnsSelectionDsl {
125125
*
126126
* `df.`[select][DataFrame.select]` { `[cols][ColumnsSelectionDsl.cols]` { .. }.`[drop][ColumnSet.drop]`(2) }`
127127
*/
128+
@Interpretable("Drop0")
128129
public fun <C> ColumnSet<C>.drop(n: Int): ColumnSet<C> = transform { it.drop(n) }
129130

130131
/**
@@ -133,6 +134,7 @@ public interface DropColumnsSelectionDsl {
133134
*
134135
* `df.`[select][DataFrame.select]` { `[drop][ColumnsSelectionDsl.drop]`(5) }`
135136
*/
137+
@Interpretable("Drop1")
136138
public fun ColumnsSelectionDsl<*>.drop(n: Int): ColumnSet<*> = asSingleColumn().dropCols(n)
137139

138140
/**
@@ -141,6 +143,7 @@ public interface DropColumnsSelectionDsl {
141143
*
142144
* `df.`[select][DataFrame.select]` { myColumnGroup.`[dropCols][SingleColumn.dropCols]`(1) }`
143145
*/
146+
@Interpretable("Drop2")
144147
public fun SingleColumn<DataRow<*>>.dropCols(n: Int): ColumnSet<*> =
145148
this.ensureIsColumnGroup().transformSingle { it.cols().drop(n) }
146149

@@ -189,6 +192,7 @@ public interface DropColumnsSelectionDsl {
189192
*
190193
* `df.`[select][DataFrame.select]` { `[cols][ColumnsSelectionDsl.cols]` { .. }.`[dropLast][ColumnSet.dropLast]`() }`
191194
*/
195+
@Interpretable("DropLast0")
192196
public fun <C> ColumnSet<C>.dropLast(n: Int = 1): ColumnSet<C> = transform { it.dropLast(n) }
193197

194198
/**
@@ -197,6 +201,7 @@ public interface DropColumnsSelectionDsl {
197201
*
198202
* `df.`[select][DataFrame.select]` { `[dropLast][ColumnsSelectionDsl.dropLast]`(5) }`
199203
*/
204+
@Interpretable("DropLast1")
200205
public fun ColumnsSelectionDsl<*>.dropLast(n: Int = 1): ColumnSet<*> = this.asSingleColumn().dropLastCols(n)
201206

202207
/**
@@ -205,6 +210,7 @@ public interface DropColumnsSelectionDsl {
205210
*
206211
* `df.`[select][DataFrame.select]` { myColumnGroup.`[dropLastCols][SingleColumn.dropLastCols]`() }`
207212
*/
213+
@Interpretable("DropLast2")
208214
public fun SingleColumn<DataRow<*>>.dropLastCols(n: Int): ColumnSet<*> =
209215
this.ensureIsColumnGroup().transformSingle { it.cols().dropLast(n) }
210216

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/first.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ public interface FirstColumnsSelectionDsl {
168168
* `df.`[select][DataFrame.select]` { `[colsOf][SingleColumn.colsOf]`<`[Int][Int]`>().`[first][ColumnSet.first]`() }`
169169
*/
170170
@Suppress("UNCHECKED_CAST")
171+
@Interpretable("First0")
171172
public fun <C> ColumnSet<C>.first(condition: ColumnFilter<C> = { true }): TransformableSingleColumn<C> =
172173
(allColumnsInternal() as TransformableColumnSet<C>)
173174
.transform { listOf(it.first(condition)) }
@@ -179,6 +180,7 @@ public interface FirstColumnsSelectionDsl {
179180
*
180181
* `df.`[select][DataFrame.select]` { `[first][ColumnsSelectionDsl.first]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }`
181182
*/
183+
@Interpretable("First1")
182184
public fun ColumnsSelectionDsl<*>.first(condition: ColumnFilter<*> = { true }): TransformableSingleColumn<*> =
183185
asSingleColumn().firstCol(condition)
184186

@@ -188,6 +190,7 @@ public interface FirstColumnsSelectionDsl {
188190
*
189191
* `df.`[select][DataFrame.select]` { myColumnGroup.`[firstCol][SingleColumn.firstCol]`() }`
190192
*/
193+
@Interpretable("First2")
191194
public fun SingleColumn<DataRow<*>>.firstCol(condition: ColumnFilter<*> = { true }): TransformableSingleColumn<*> =
192195
this.ensureIsColumnGroup().asColumnSet().first(condition)
193196

0 commit comments

Comments
 (0)