Skip to content

Commit 47c3423

Browse files
committed
Add plugin annotations to String API that have to be supported easily and be useful
1 parent 41462db commit 47c3423

File tree

4 files changed

+15
-0
lines changed

4 files changed

+15
-0
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import org.jetbrains.kotlinx.dataframe.DataColumn
99
import org.jetbrains.kotlinx.dataframe.DataFrame
1010
import org.jetbrains.kotlinx.dataframe.DataRow
1111
import org.jetbrains.kotlinx.dataframe.annotations.Check
12+
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
1213
import org.jetbrains.kotlinx.dataframe.columns.ColumnAccessor
1314
import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
1415
import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
@@ -84,8 +85,10 @@ public fun <T> ColumnGroup<*>.cast(): ColumnGroup<T> = this as ColumnGroup<T>
8485

8586
public fun <T> ColumnWithPath<*>.cast(): ColumnWithPath<T> = this as ColumnWithPath<T>
8687

88+
@Interpretable("ColumnAccessorCast")
8789
public fun <T> ColumnAccessor<*>.cast(): ColumnAccessor<T> = this as ColumnAccessor<T>
8890

91+
@Interpretable("ColumnSetCast")
8992
public fun <C> ColumnSet<*>.cast(): ColumnSet<C> = this as ColumnSet<C>
9093

9194
public fun <C> ColumnsResolver<*>.cast(): ColumnsResolver<C> = this as ColumnsResolver<C>

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import org.jetbrains.kotlinx.dataframe.ColumnGroupReference
55
import org.jetbrains.kotlinx.dataframe.DataFrame
66
import org.jetbrains.kotlinx.dataframe.DataRow
77
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
8+
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
89
import org.jetbrains.kotlinx.dataframe.columns.ColumnAccessor
910
import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
1011
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
@@ -225,12 +226,14 @@ public interface ColColumnsSelectionDsl<out _UNUSED> {
225226
*/
226227
@Suppress("INAPPLICABLE_JVM_NAME")
227228
@JvmName("colUnTyped")
229+
@Interpretable("Col")
228230
public fun col(name: String): ColumnAccessor<*> = column<Any?>(name)
229231

230232
/**
231233
* @include [ColNameDocs] {@set [CommonColDocs.RECEIVER]}
232234
* @include [CommonColDocs.ColumnTypeParam]
233235
*/
236+
@Interpretable("ColUntyped")
234237
public fun <C> col(name: String): ColumnAccessor<C> = column(name)
235238

236239
/**
@@ -269,12 +272,14 @@ public interface ColColumnsSelectionDsl<out _UNUSED> {
269272
*/
270273
@Suppress("INAPPLICABLE_JVM_NAME")
271274
@JvmName("colUnTyped")
275+
@Interpretable("StringNestedColUntyped")
272276
public fun String.col(name: String): ColumnAccessor<*> = col<Any?>(name)
273277

274278
/**
275279
* @include [ColNameDocs] {@set [CommonColDocs.RECEIVER] "myColumnGroup".}
276280
* @include [CommonColDocs.ColumnTypeParam]
277281
*/
282+
@Interpretable("StringNestedCol")
278283
public fun <C> String.col(name: String): ColumnAccessor<C> =
279284
columnGroup(this)
280285
.ensureIsColumnGroup()
@@ -303,12 +308,14 @@ public interface ColColumnsSelectionDsl<out _UNUSED> {
303308
*/
304309
@Suppress("INAPPLICABLE_JVM_NAME")
305310
@JvmName("colUnTyped")
311+
@Interpretable("ColumnPathColUntyped")
306312
public fun ColumnPath.col(name: String): ColumnAccessor<*> = col<Any?>(name)
307313

308314
/**
309315
* @include [ColNameDocs] {@set [CommonColDocs.RECEIVER] "pathTo"["myColumnGroup"].}
310316
* @include [CommonColDocs.ColumnTypeParam]
311317
*/
318+
@Interpretable("ColumnPathCol")
312319
public fun <C> ColumnPath.col(name: String): ColumnAccessor<C> =
313320
columnGroup(this).ensureIsColumnGroup().column(name)
314321

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,7 @@ public fun <T> emptyDataFrame(): DataFrame<T> = DataFrame.empty().cast()
545545

546546
// region create ColumnPath
547547

548+
@Interpretable("PathOf")
548549
public fun pathOf(vararg columnNames: String): ColumnPath = ColumnPath(columnNames.asList())
549550

550551
// endregion

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ public fun <T> DataFrame<T>.select(vararg columns: KProperty<*>): DataFrame<T> =
8181
* @include [SelectingColumns.ColumnNames.WithExample] {@include [SetSelectOperationArg]}
8282
* @param [columns] The [Column Names][String] used to select the columns of this [DataFrame].
8383
*/
84+
@Refine
85+
@Interpretable("SelectString")
8486
public fun <T> DataFrame<T>.select(vararg columns: String): DataFrame<T> = select { columns.toColumnSet() }
8587

8688
/**
@@ -206,6 +208,7 @@ public interface SelectColumnsSelectionDsl {
206208
*
207209
* `df.`[select][DataFrame.select]` { "myColGroup" `[`{`][String.select]` colA `[and][ColumnsSelectionDsl.and]` colB `[`}`][String.select]` }`
208210
*/
211+
@Interpretable("StringSelect")
209212
public fun <R> String.select(selector: ColumnsSelector<*, R>): ColumnSet<R> = columnGroup(this).select(selector)
210213

211214
/**
@@ -220,6 +223,7 @@ public interface SelectColumnsSelectionDsl {
220223
*
221224
* `df.`[select][DataFrame.select]` { `[pathOf][pathOf]`("pathTo", "myColGroup")`[`() {`][ColumnPath.select]` someCol `[and][ColumnsSelectionDsl.and]` `[colsOf][SingleColumn.colsOf]`<`[String][String]`>() `[`}`][ColumnPath.select]` }`
222225
*/
226+
@Interpretable("ColumnPathSelect")
223227
public fun <R> ColumnPath.select(selector: ColumnsSelector<*, R>): ColumnSet<R> = columnGroup(this).select(selector)
224228
}
225229

0 commit comments

Comments
 (0)