Skip to content

Commit 56fbc2a

Browse files
committed
Add annotation IntellijPluginApi to mark API used by Kotlin DataFrame IntelliJ Plugin. Mark such API in the library
1 parent 1effeac commit 56fbc2a

File tree

16 files changed

+52
-0
lines changed

16 files changed

+52
-0
lines changed

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/ColumnsContainer.kt

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

33
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
4+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
45
import org.jetbrains.kotlinx.dataframe.api.ColumnSelectionDsl
56
import org.jetbrains.kotlinx.dataframe.api.asColumnGroup
67
import org.jetbrains.kotlinx.dataframe.api.cast
@@ -26,8 +27,10 @@ public interface ColumnsContainer<out T> : ColumnsScope<T> {
2627

2728
// region columns
2829

30+
@IntellijPluginApi
2931
public fun columns(): List<AnyCol>
3032

33+
@IntellijPluginApi
3134
public fun columnsCount(): Int
3235

3336
public fun containsColumn(name: String): Boolean

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/DataFrame.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.jetbrains.kotlinx.dataframe.aggregation.Aggregatable
44
import org.jetbrains.kotlinx.dataframe.aggregation.AggregateGroupedBody
55
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
66
import org.jetbrains.kotlinx.dataframe.annotations.HasSchema
7+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
78
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
89
import org.jetbrains.kotlinx.dataframe.annotations.Refine
910
import org.jetbrains.kotlinx.dataframe.api.ColumnsSelectionDsl
@@ -73,6 +74,7 @@ public interface DataFrame<out T> :
7374
*
7475
* @return The number of rows in the [DataFrame].
7576
*/
77+
@IntellijPluginApi
7678
public fun rowsCount(): Int
7779

7880
public operator fun iterator(): Iterator<DataRow<T>> = rows().iterator()
@@ -97,6 +99,7 @@ public interface DataFrame<out T> :
9799

98100
// region get rows
99101

102+
@IntellijPluginApi
100103
public operator fun get(index: Int): DataRow<T>
101104

102105
public operator fun get(indices: Iterable<Int>): DataFrame<T> = getRows(indices)

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/DataRow.kt

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

33
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
44
import org.jetbrains.kotlinx.dataframe.annotations.HasSchema
5+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
56
import org.jetbrains.kotlinx.dataframe.api.next
67
import org.jetbrains.kotlinx.dataframe.api.prev
78
import org.jetbrains.kotlinx.dataframe.columns.ColumnKind
@@ -53,6 +54,7 @@ public interface DataRow<out T> {
5354

5455
public operator fun get(path: ColumnPath): Any? = owner.get(path)[index]
5556

57+
@IntellijPluginApi
5658
public operator fun get(name: String): Any?
5759

5860
public fun getColumnGroup(columnName: String): AnyRow {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.jetbrains.kotlinx.dataframe.annotations
2+
3+
/**
4+
* Marks API used by Kotlin DataFrame IntelliJ Plugin.
5+
*
6+
* Such API should remain stable:
7+
* - It should not be moved, renamed, or removed.
8+
* - The number of parameters and their types should not change.
9+
*
10+
* If changes to such API are required, they should first be supported in the Kotlin DataFrame IntelliJ Plugin.
11+
*/
12+
internal annotation class IntellijPluginApi

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import org.jetbrains.kotlinx.dataframe.DataColumn
1010
import org.jetbrains.kotlinx.dataframe.DataFrame
1111
import org.jetbrains.kotlinx.dataframe.DataRow
1212
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
13+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
1314
import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
1415
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
1516
import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
@@ -167,6 +168,7 @@ public operator fun ColumnsContainer<*>.contains(column: KProperty<*>): Boolean
167168

168169
// region rows
169170

171+
@IntellijPluginApi
170172
public fun <T> DataFrame<T>.rows(): Iterable<DataRow<T>> =
171173
object : Iterable<DataRow<T>> {
172174
override fun iterator() =

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import org.jetbrains.kotlinx.dataframe.RowExpression
1010
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
1111
import org.jetbrains.kotlinx.dataframe.annotations.CandidateForRemoval
1212
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
13+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
1314
import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
1415
import org.jetbrains.kotlinx.dataframe.impl.columnName
1516
import org.jetbrains.kotlinx.dataframe.impl.owner
@@ -32,6 +33,7 @@ public inline fun <reified R> AnyRow.valuesOf(): List<R> = values().filterIsInst
3233

3334
// region DataSchema
3435
@DataSchema
36+
@IntellijPluginApi
3537
public data class NameValuePair<V>(val name: String, val value: V)
3638

3739
// Without these overloads row.transpose().name or row.map { name } won't resolve
@@ -56,6 +58,7 @@ public val DataRow<NameValuePair<*>>.value: Any?
5658
public inline fun <reified R> AnyRow.namedValuesOf(): List<NameValuePair<R>> =
5759
values().zip(columnNames()).filter { it.first is R }.map { NameValuePair(it.second, it.first as R) }
5860

61+
@IntellijPluginApi
5962
public fun AnyRow.namedValues(): List<NameValuePair<Any?>> =
6063
values().zip(columnNames()) { value, name -> NameValuePair(name, value) }
6164

@@ -172,6 +175,7 @@ public inline fun <T> DataRow<T>.diffOrNull(expression: RowExpression<T, Long>):
172175
public inline fun <T> DataRow<T>.diffOrNull(expression: RowExpression<T, Float>): Float? =
173176
prev()?.let { p -> expression(this, this) - expression(p, p) }
174177

178+
@IntellijPluginApi
175179
public fun AnyRow.columnsCount(): Int = df().ncol
176180

177181
public fun AnyRow.columnNames(): List<String> = df().columnNames()

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

Lines changed: 3 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.DataFrame
44
import org.jetbrains.kotlinx.dataframe.annotations.ColumnName
55
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
6+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
67
import org.jetbrains.kotlinx.dataframe.codeGen.CodeGenerator
78
import org.jetbrains.kotlinx.dataframe.codeGen.MarkerVisibility
89
import org.jetbrains.kotlinx.dataframe.codeGen.NameNormalizer
@@ -268,6 +269,7 @@ public val NameNormalizer.Companion.default: NameNormalizer get() = NameNormaliz
268269
* @see CodeString.print
269270
*/
270271
@JvmInline
272+
@IntellijPluginApi
271273
public value class CodeString(public val value: String) {
272274
override fun toString(): String = value
273275
}
@@ -327,6 +329,7 @@ public inline fun <reified T> DataFrame<T>.generateCode(
327329
replaceWith = ReplaceWith(GENERATE_CODE_REPLACE2),
328330
level = DeprecationLevel.WARNING,
329331
)
332+
@IntellijPluginApi
330333
public fun <T> DataFrame<T>.generateCode(
331334
markerName: String,
332335
fields: Boolean = true,

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

Lines changed: 2 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.AnyFrame
44
import org.jetbrains.kotlinx.dataframe.AnyRow
55
import org.jetbrains.kotlinx.dataframe.DataFrame
6+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
67
import org.jetbrains.kotlinx.dataframe.impl.api.compileTimeSchemaImpl
78
import org.jetbrains.kotlinx.dataframe.impl.owner
89
import org.jetbrains.kotlinx.dataframe.impl.schema.extractSchema
@@ -16,6 +17,7 @@ public fun AnyRow.schema(): DataFrameSchema = owner.schema()
1617

1718
// region DataFrame
1819

20+
@IntellijPluginApi
1921
public fun AnyFrame.schema(): DataFrameSchema = extractSchema()
2022

2123
// endregion

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import org.jetbrains.kotlinx.dataframe.DataColumn
66
import org.jetbrains.kotlinx.dataframe.DataFrame
77
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
88
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
9+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
910
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
1011
import org.jetbrains.kotlinx.dataframe.annotations.Refine
1112
import org.jetbrains.kotlinx.dataframe.columns.toColumnSet
@@ -28,6 +29,7 @@ public interface ValueCount {
2829

2930
internal val defaultCountColumnName: String = ValueCount::count.name
3031

32+
@IntellijPluginApi
3133
public fun <T> DataColumn<T>.valueCounts(
3234
sort: Boolean = true,
3335
ascending: Boolean = false,

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/columns/BaseColumn.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.jetbrains.kotlinx.dataframe.AnyBaseCol
44
import org.jetbrains.kotlinx.dataframe.AnyCol
55
import org.jetbrains.kotlinx.dataframe.AnyRow
66
import org.jetbrains.kotlinx.dataframe.DataFrame
7+
import org.jetbrains.kotlinx.dataframe.annotations.IntellijPluginApi
78
import org.jetbrains.kotlinx.dataframe.api.ColumnsSelectionDsl
89
import org.jetbrains.kotlinx.dataframe.impl.asList
910
import org.jetbrains.kotlinx.dataframe.impl.columnName
@@ -82,6 +83,7 @@ public interface BaseColumn<out T> : ColumnReference<T> {
8283

8384
public fun values(): Iterable<T>
8485

86+
@IntellijPluginApi
8587
public fun toList(): List<T> = values().asList()
8688

8789
public fun toSet(): Set<T>

0 commit comments

Comments
 (0)