Skip to content

Commit a7bc1bf

Browse files
Merge branch 'master' into concat_with_keys
2 parents ea12560 + ba4f004 commit a7bc1bf

File tree

84 files changed

+1119
-509
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1119
-509
lines changed

core/api/core.api

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1782,8 +1782,10 @@ public final class org/jetbrains/kotlinx/dataframe/api/DataColumnTypeKt {
17821782
public static final fun isComparable (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
17831783
public static final fun isFrameColumn (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
17841784
public static final fun isList (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
1785+
public static final fun isMixedNumber (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
17851786
public static final fun isNumber (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
17861787
public static final fun isPrimitiveNumber (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
1788+
public static final fun isPrimitiveOrMixedNumber (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
17871789
public static final fun isSubtypeOf (Lorg/jetbrains/kotlinx/dataframe/DataColumn;Lkotlin/reflect/KType;)Z
17881790
public static final fun isValueColumn (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
17891791
public static final fun valuesAreComparable (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
@@ -3817,6 +3819,7 @@ public final class org/jetbrains/kotlinx/dataframe/api/StdKt {
38173819

38183820
public final class org/jetbrains/kotlinx/dataframe/api/SumKt {
38193821
public static final fun rowSum (Lorg/jetbrains/kotlinx/dataframe/DataRow;)Ljava/lang/Number;
3822+
public static final fun rowSumOf (Lorg/jetbrains/kotlinx/dataframe/DataRow;Lkotlin/reflect/KType;)Ljava/lang/Number;
38203823
public static final fun sum (Lorg/jetbrains/kotlinx/dataframe/DataFrame;)Lorg/jetbrains/kotlinx/dataframe/DataRow;
38213824
public static final fun sum (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Ljava/lang/String;)Ljava/lang/Number;
38223825
public static final fun sum (Lorg/jetbrains/kotlinx/dataframe/api/Grouped;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
@@ -3840,6 +3843,10 @@ public final class org/jetbrains/kotlinx/dataframe/api/SumKt {
38403843
public static synthetic fun sum$default (Lorg/jetbrains/kotlinx/dataframe/api/Grouped;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
38413844
public static synthetic fun sum$default (Lorg/jetbrains/kotlinx/dataframe/api/Pivot;ZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataRow;
38423845
public static synthetic fun sum$default (Lorg/jetbrains/kotlinx/dataframe/api/PivotGroupBy;ZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3846+
public static final fun sumByte (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)I
3847+
public static final fun sumByte (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)I
3848+
public static final fun sumByte (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lkotlin/reflect/KProperty;)I
3849+
public static final fun sumByte (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)I
38433850
public static final fun sumFor (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataRow;
38443851
public static final fun sumFor (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataRow;
38453852
public static final fun sumFor (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/DataRow;
@@ -3864,8 +3871,15 @@ public final class org/jetbrains/kotlinx/dataframe/api/SumKt {
38643871
public static synthetic fun sumFor$default (Lorg/jetbrains/kotlinx/dataframe/api/PivotGroupBy;[Ljava/lang/String;ZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
38653872
public static synthetic fun sumFor$default (Lorg/jetbrains/kotlinx/dataframe/api/PivotGroupBy;[Lkotlin/reflect/KProperty;ZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
38663873
public static synthetic fun sumFor$default (Lorg/jetbrains/kotlinx/dataframe/api/PivotGroupBy;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;ZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3867-
public static final fun sumT (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Ljava/lang/Number;
3868-
public static final fun sumTNullable (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Ljava/lang/Number;
3874+
public static final fun sumNumber (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Ljava/lang/Number;
3875+
public static final fun sumOfByte (Lorg/jetbrains/kotlinx/dataframe/DataColumn;Lkotlin/jvm/functions/Function1;)I
3876+
public static final fun sumOfByte (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)I
3877+
public static final fun sumOfShort (Lorg/jetbrains/kotlinx/dataframe/DataColumn;Lkotlin/jvm/functions/Function1;)I
3878+
public static final fun sumOfShort (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)I
3879+
public static final fun sumShort (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)I
3880+
public static final fun sumShort (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)I
3881+
public static final fun sumShort (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lkotlin/reflect/KProperty;)I
3882+
public static final fun sumShort (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)I
38693883
}
38703884

38713885
public final class org/jetbrains/kotlinx/dataframe/api/TailKt {
@@ -5105,6 +5119,9 @@ public final class org/jetbrains/kotlinx/dataframe/impl/ExceptionUtilsKt {
51055119

51065120
public final class org/jetbrains/kotlinx/dataframe/impl/NumberTypeUtilsKt {
51075121
public static final fun getPrimitiveNumberTypes ()Ljava/util/Set;
5122+
public static final fun isMixedNumber (Lkotlin/reflect/KType;)Z
5123+
public static final fun isPrimitiveNumber (Lkotlin/reflect/KType;)Z
5124+
public static final fun isPrimitiveOrMixedNumber (Lkotlin/reflect/KType;)Z
51085125
}
51095126

51105127
public final class org/jetbrains/kotlinx/dataframe/impl/TypeUtilsKt {
@@ -6154,13 +6171,7 @@ public final class org/jetbrains/kotlinx/dataframe/math/StdKt {
61546171
}
61556172

61566173
public final class org/jetbrains/kotlinx/dataframe/math/SumKt {
6157-
public static final fun sum (Ljava/lang/Iterable;)Ljava/math/BigDecimal;
6158-
public static final fun sum (Ljava/lang/Iterable;)Ljava/math/BigInteger;
6159-
public static final fun sum (Ljava/lang/Iterable;Lkotlin/reflect/KType;)Ljava/lang/Number;
6160-
public static final fun sum (Lkotlin/sequences/Sequence;)Ljava/math/BigDecimal;
6161-
public static final fun sum (Lkotlin/sequences/Sequence;)Ljava/math/BigInteger;
6162-
public static final fun sumNullableT (Ljava/lang/Iterable;Lkotlin/reflect/KType;)Ljava/lang/Number;
6163-
public static final fun sumOf (Ljava/lang/Iterable;Lkotlin/reflect/KType;Lkotlin/jvm/functions/Function1;)Ljava/lang/Number;
6174+
public static final fun sumNullableT (Lkotlin/sequences/Sequence;Lkotlin/reflect/KType;)Ljava/lang/Number;
61646175
}
61656176

61666177
public abstract class org/jetbrains/kotlinx/dataframe/schema/ColumnSchema {

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.jetbrains.kotlinx.dataframe.ColumnsContainer
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.AccessApiOverload
78
import org.jetbrains.kotlinx.dataframe.columns.ColumnAccessor
89
import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
910
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
@@ -85,6 +86,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
8586
* @throws [IllegalArgumentException] if the column is not found.
8687
* @return The [DataColumn] this [KProperty Accessor][KProperty] points to.
8788
*/
89+
@AccessApiOverload
8890
public operator fun <T> KProperty<T>.invoke(): DataColumn<T> = this@ColumnSelectionDsl[this]
8991

9092
/**
@@ -94,6 +96,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
9496
* @throws [IllegalArgumentException] if the column is not found.
9597
* @return The [ColumnGroup] this [KProperty Accessor][KProperty] points to.
9698
*/
99+
@AccessApiOverload
97100
public operator fun <T> KProperty<DataRow<T>>.invoke(): ColumnGroup<T> = this@ColumnSelectionDsl[this]
98101

99102
/**
@@ -103,6 +106,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
103106
* @throws [IllegalArgumentException] if the column is not found.
104107
* @return The [FrameColumn] this [KProperty Accessor][KProperty] points to.
105108
*/
109+
@AccessApiOverload
106110
public operator fun <T> KProperty<DataFrame<T>>.invoke(): FrameColumn<T> = this@ColumnSelectionDsl[this]
107111

108112
/**
@@ -136,6 +140,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
136140
*/
137141
@Suppress("INAPPLICABLE_JVM_NAME")
138142
@JvmName("KPropertyDataRowGet")
143+
@AccessApiOverload
139144
public operator fun <T, R> KProperty<DataRow<T>>.get(column: KProperty<R>): DataColumn<R> = invoke()[column]
140145

141146
/**
@@ -154,6 +159,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
154159
*/
155160
@Suppress("INAPPLICABLE_JVM_NAME")
156161
@JvmName("KPropertyDataRowGet")
162+
@AccessApiOverload
157163
public operator fun <T, R> KProperty<DataRow<T>>.get(column: KProperty<DataRow<R>>): ColumnGroup<R> =
158164
invoke()[column]
159165

@@ -173,6 +179,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
173179
*/
174180
@Suppress("INAPPLICABLE_JVM_NAME")
175181
@JvmName("KPropertyDataRowGet")
182+
@AccessApiOverload
176183
public operator fun <T, R> KProperty<DataRow<T>>.get(column: KProperty<DataFrame<R>>): FrameColumn<R> =
177184
invoke()[column]
178185

@@ -190,6 +197,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
190197
* @throws [IllegalArgumentException] if the column is not found.
191198
* @return The [DataColumn] these [KProperty Accessors][KProperty] point to.
192199
*/
200+
@AccessApiOverload
193201
public operator fun <T, R> KProperty<T>.get(column: KProperty<R>): DataColumn<R> = invoke().asColumnGroup()[column]
194202

195203
/**
@@ -206,6 +214,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
206214
* @throws [IllegalArgumentException] if the column is not found.
207215
* @return The [ColumnGroup] these [KProperty Accessors][KProperty] point to.
208216
*/
217+
@AccessApiOverload
209218
public operator fun <T, R> KProperty<T>.get(column: KProperty<DataRow<R>>): ColumnGroup<R> =
210219
invoke().asColumnGroup()[column]
211220

@@ -223,6 +232,7 @@ public interface ColumnSelectionDsl<out T> : ColumnsContainer<T> {
223232
* @throws [IllegalArgumentException] if the column is not found.
224233
* @return The [FrameColumn] these [KProperty Accessors][KProperty] point to.
225234
*/
235+
@AccessApiOverload
226236
public operator fun <T, R> KProperty<T>.get(column: KProperty<DataFrame<R>>): FrameColumn<R> =
227237
invoke().asColumnGroup()[column]
228238

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/ColumnsSelectionDsl.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.ColumnsSelector
44
import org.jetbrains.kotlinx.dataframe.DataFrame
55
import org.jetbrains.kotlinx.dataframe.DataRow
6+
import org.jetbrains.kotlinx.dataframe.annotations.AccessApiOverload
67
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
78
import org.jetbrains.kotlinx.dataframe.columns.ColumnSet
89
import org.jetbrains.kotlinx.dataframe.columns.ColumnsResolver
@@ -491,6 +492,7 @@ public interface ColumnsSelectionDsl<out T> : // SingleColumn<DataRow<T>>
491492
* @return A [ColumnSet][org.jetbrains.kotlinx.dataframe.columns.ColumnSet] containing the columns selected by [selector].
492493
* @see [SingleColumn.except]
493494
*/
495+
@AccessApiOverload
494496
public operator fun <C, R> KProperty<C>.invoke(selector: ColumnsSelector<C, R>): ColumnSet<R> =
495497
columnGroup(this).select(selector)
496498

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
77
import org.jetbrains.kotlinx.dataframe.columns.ColumnKind
88
import org.jetbrains.kotlinx.dataframe.columns.FrameColumn
99
import org.jetbrains.kotlinx.dataframe.columns.ValueColumn
10-
import org.jetbrains.kotlinx.dataframe.impl.primitiveNumberTypes
10+
import org.jetbrains.kotlinx.dataframe.impl.isMixedNumber
11+
import org.jetbrains.kotlinx.dataframe.impl.isPrimitiveNumber
12+
import org.jetbrains.kotlinx.dataframe.impl.isPrimitiveOrMixedNumber
1113
import org.jetbrains.kotlinx.dataframe.type
1214
import org.jetbrains.kotlinx.dataframe.typeClass
1315
import org.jetbrains.kotlinx.dataframe.util.IS_COMPARABLE
@@ -48,11 +50,23 @@ public inline fun <reified T> AnyCol.isType(): Boolean = type() == typeOf<T>()
4850
/** Returns `true` when this column's type is a subtype of `Number?` */
4951
public fun AnyCol.isNumber(): Boolean = isSubtypeOf<Number?>()
5052

53+
/** Returns `true` only when this column's type is exactly `Number` or `Number?`. */
54+
public fun AnyCol.isMixedNumber(): Boolean = type().isMixedNumber()
55+
5156
/**
5257
* Returns `true` when this column has the (nullable) type of either:
5358
* [Byte], [Short], [Int], [Long], [Float], or [Double].
5459
*/
55-
public fun AnyCol.isPrimitiveNumber(): Boolean = type().withNullability(false) in primitiveNumberTypes
60+
public fun AnyCol.isPrimitiveNumber(): Boolean = type().isPrimitiveNumber()
61+
62+
/**
63+
* Returns `true` when this column has the (nullable) type of either:
64+
* [Byte], [Short], [Int], [Long], [Float], [Double], or [Number].
65+
*
66+
* Careful: Will return `true` if the column contains multiple number types that
67+
* might NOT be primitive.
68+
*/
69+
public fun AnyCol.isPrimitiveOrMixedNumber(): Boolean = type().isPrimitiveOrMixedNumber()
5670

5771
public fun AnyCol.isList(): Boolean = typeClass == List::class
5872

0 commit comments

Comments
 (0)