Skip to content

Commit 551f276

Browse files
Merge branch 'master' into insert_kdocs
# Conflicts: # core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/documentation/DocumentationUrls.kt
2 parents a59982d + 3cc2006 commit 551f276

File tree

25 files changed

+21550
-15
lines changed

25 files changed

+21550
-15
lines changed

core/api/core.api

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3785,11 +3785,13 @@ public final class org/jetbrains/kotlinx/dataframe/api/PivotKt {
37853785

37863786
public final class org/jetbrains/kotlinx/dataframe/api/PrintKt {
37873787
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)V
3788-
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZ)V
3788+
public static final synthetic fun print (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZ)V
3789+
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZ)V
37893790
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/DataRow;)V
37903791
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/api/GroupBy;)V
37913792
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/schema/DataFrameSchema;)V
37923793
public static synthetic fun print$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZILjava/lang/Object;)V
3794+
public static synthetic fun print$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZILjava/lang/Object;)V
37933795
public static final fun print-XIlnkTk (Ljava/lang/String;)V
37943796
}
37953797

@@ -6303,6 +6305,11 @@ public final class org/jetbrains/kotlinx/dataframe/io/RendererDecimalFormat$Comp
63036305
public final fun of-VVLz-gw (Ljava/lang/String;)Ljava/lang/String;
63046306
}
63056307

6308+
public final class org/jetbrains/kotlinx/dataframe/io/StringKt {
6309+
public static final fun renderToString (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZ)Ljava/lang/String;
6310+
public static synthetic fun renderToString$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZILjava/lang/Object;)Ljava/lang/String;
6311+
}
6312+
63066313
public abstract interface class org/jetbrains/kotlinx/dataframe/io/SupportedCodeGenerationFormat : org/jetbrains/kotlinx/dataframe/io/SupportedFormat {
63076314
public abstract fun readCodeForGeneration (Ljava/io/File;Ljava/lang/String;Z)Ljava/lang/String;
63086315
public abstract fun readCodeForGeneration (Ljava/io/InputStream;Ljava/lang/String;Z)Ljava/lang/String;

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

Lines changed: 2 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.HasSchema
45
import org.jetbrains.kotlinx.dataframe.api.next
56
import org.jetbrains.kotlinx.dataframe.api.prev
67
import org.jetbrains.kotlinx.dataframe.columns.ColumnKind
@@ -18,6 +19,7 @@ import kotlin.reflect.KProperty
1819
*
1920
* @param T Schema marker. See [DataFrame] for details
2021
*/
22+
@HasSchema(schemaArg = 0)
2123
public interface DataRow<out T> {
2224

2325
public fun index(): Int

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/annotations/Plugin.kt

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

33
import kotlin.reflect.KClass
44

5+
/**
6+
* Matches the type parameter of the annotated class to DataRow/DataFrame type parameter T.
7+
*
8+
* Annotate public API classes that implement DataRow/DataFrame interface to enable "extract schema/create column from values" operation:
9+
* ```kotlin
10+
* df.add {
11+
* "col" from { it }
12+
* }
13+
* ```
14+
* Result before:
15+
* `col: DataColumn<AddDataRow<MySchema>>`
16+
*
17+
* Result after:
18+
*
19+
* ```
20+
* col:
21+
* col1: Int
22+
* col2: String
23+
* ```
24+
*/
525
@Target(AnnotationTarget.CLASS)
626
public annotation class HasSchema(val schemaArg: Int)
727

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/add.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.jetbrains.kotlinx.dataframe.DataFrame
1212
import org.jetbrains.kotlinx.dataframe.DataRow
1313
import org.jetbrains.kotlinx.dataframe.Selector
1414
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
15+
import org.jetbrains.kotlinx.dataframe.annotations.HasSchema
1516
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
1617
import org.jetbrains.kotlinx.dataframe.annotations.Refine
1718
import org.jetbrains.kotlinx.dataframe.api.add
@@ -97,6 +98,7 @@ public fun <T> DataFrame<T>.addAll(dataFrames: Iterable<AnyFrame>): DataFrame<T>
9798
* Receiver that is used by the [AddExpression] (for instance in the [add] and [update] operations)
9899
* to access new (added or updated) column value in preceding row.
99100
*/
101+
@HasSchema(schemaArg = 0)
100102
public interface AddDataRow<out T> : DataRow<T> {
101103

102104
/**

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/print.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import org.jetbrains.kotlinx.dataframe.DataFrame
55
import org.jetbrains.kotlinx.dataframe.DataRow
66
import org.jetbrains.kotlinx.dataframe.io.renderToString
77
import org.jetbrains.kotlinx.dataframe.schema.DataFrameSchema
8+
import org.jetbrains.kotlinx.dataframe.util.PRINT
89

910
// region DataColumn
1011

@@ -20,14 +21,25 @@ public fun <T> DataRow<T>.print(): Unit = println(this)
2021

2122
// region DataFrame
2223

24+
@Deprecated(message = PRINT, level = DeprecationLevel.HIDDEN)
2325
public fun <T> DataFrame<T>.print(
2426
rowsLimit: Int = 20,
2527
valueLimit: Int = 40,
2628
borders: Boolean = false,
2729
alignLeft: Boolean = false,
2830
columnTypes: Boolean = false,
2931
title: Boolean = false,
30-
): Unit = println(renderToString(rowsLimit, valueLimit, borders, alignLeft, columnTypes, title))
32+
): Unit = print(rowsLimit, valueLimit, borders, alignLeft, columnTypes, title, true)
33+
34+
public fun <T> DataFrame<T>.print(
35+
rowsLimit: Int = 20,
36+
valueLimit: Int = 40,
37+
borders: Boolean = false,
38+
alignLeft: Boolean = false,
39+
columnTypes: Boolean = false,
40+
title: Boolean = false,
41+
rowIndex: Boolean = true,
42+
): Unit = println(renderToString(rowsLimit, valueLimit, borders, alignLeft, columnTypes, title, rowIndex))
3143

3244
// endregion
3345

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/string.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import org.jetbrains.kotlinx.dataframe.nrow
1919
import org.jetbrains.kotlinx.dataframe.size
2020
import java.math.BigDecimal
2121

22-
internal fun AnyFrame.renderToString(
22+
public fun AnyFrame.renderToString(
2323
rowsLimit: Int = 20,
2424
valueLimit: Int = 40,
2525
borders: Boolean = false,

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/util/deprecationMessages.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ internal const val PARSER_OPTIONS = "This constructor is only here for binary co
4444

4545
internal const val PARSER_OPTIONS_COPY = "This function is only here for binary compatibility. $MESSAGE_1_0"
4646

47+
internal const val PRINT = "This function is only here for binary compatibility. $MESSAGE_1_0"
48+
4749
internal const val IS_COMPARABLE =
4850
"This function is replaced by `valuesAreComparable()` to better reflect its purpose. $MESSAGE_1_0"
4951
internal const val IS_COMPARABLE_REPLACE = "valuesAreComparable()"

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

Lines changed: 2 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.HasSchema
45
import org.jetbrains.kotlinx.dataframe.api.next
56
import org.jetbrains.kotlinx.dataframe.api.prev
67
import org.jetbrains.kotlinx.dataframe.columns.ColumnKind
@@ -18,6 +19,7 @@ import kotlin.reflect.KProperty
1819
*
1920
* @param T Schema marker. See [DataFrame] for details
2021
*/
22+
@HasSchema(schemaArg = 0)
2123
public interface DataRow<out T> {
2224

2325
public fun index(): Int

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/annotations/Plugin.kt

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

33
import kotlin.reflect.KClass
44

5+
/**
6+
* Matches the type parameter of the annotated class to DataRow/DataFrame type parameter T.
7+
*
8+
* Annotate public API classes that implement DataRow/DataFrame interface to enable "extract schema/create column from values" operation:
9+
* ```kotlin
10+
* df.add {
11+
* "col" from { it }
12+
* }
13+
* ```
14+
* Result before:
15+
* `col: DataColumn<AddDataRow<MySchema>>`
16+
*
17+
* Result after:
18+
*
19+
* ```
20+
* col:
21+
* col1: Int
22+
* col2: String
23+
* ```
24+
*/
525
@Target(AnnotationTarget.CLASS)
626
public annotation class HasSchema(val schemaArg: Int)
727

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.jetbrains.kotlinx.dataframe.DataFrame
1212
import org.jetbrains.kotlinx.dataframe.DataRow
1313
import org.jetbrains.kotlinx.dataframe.Selector
1414
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
15+
import org.jetbrains.kotlinx.dataframe.annotations.HasSchema
1516
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
1617
import org.jetbrains.kotlinx.dataframe.annotations.Refine
1718
import org.jetbrains.kotlinx.dataframe.api.add
@@ -99,6 +100,7 @@ public fun <T> DataFrame<T>.addAll(dataFrames: Iterable<AnyFrame>): DataFrame<T>
99100
* Receiver that is used by the [AddExpression] (for instance in the [add] and [update] operations)
100101
* to access new (added or updated) column value in preceding row.
101102
*/
103+
@HasSchema(schemaArg = 0)
102104
public interface AddDataRow<out T> : DataRow<T> {
103105

104106
/**

0 commit comments

Comments
 (0)