Skip to content

Commit 3eca678

Browse files
Merge branch 'master' into gather_kdocs
2 parents d272018 + 62b4894 commit 3eca678

File tree

48 files changed

+539
-219
lines changed

Some content is hidden

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

48 files changed

+539
-219
lines changed

core/README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,12 @@
33
This is the core of the library, published as the `dataframe-core` package.
44
It contains the DataFrame API and its implementation, as well as plenty of JUnit tests.
55

6-
I/O operations are split off into other modules, like [:dataframe-excel](../dataframe-excel),
7-
or [:dataframe-jdbc](../dataframe-jdbc), however, this is has not happened yet for all operations
8-
(see [Issue #100](https://github.com/Kotlin/dataframe/issues/100)).
6+
I/O operations are split off into other modules, like [:dataframe-excel](../dataframe-excel), [:dataframe-jdbc](../dataframe-jdbc), or [:dataframe-json](../dataframe-json).
97

108
At the moment, these integrations are still part of the `:core` module:
119

1210
- (deprecated) csv/tsv
1311
- html
14-
- json
1512

1613
### Korro code samples
1714

core/api/core.api

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,7 @@ public final class org/jetbrains/kotlinx/dataframe/api/CastKt {
673673
public static final fun cast (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Lorg/jetbrains/kotlinx/dataframe/DataColumn;
674674
public static final fun cast (Lorg/jetbrains/kotlinx/dataframe/DataFrame;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
675675
public static final fun cast (Lorg/jetbrains/kotlinx/dataframe/DataRow;)Lorg/jetbrains/kotlinx/dataframe/DataRow;
676+
public static final fun cast (Lorg/jetbrains/kotlinx/dataframe/api/GroupBy;)Lorg/jetbrains/kotlinx/dataframe/api/GroupBy;
676677
public static final fun cast (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnAccessor;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnAccessor;
677678
public static final fun cast (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnGroup;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnGroup;
678679
public static final fun cast (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;
@@ -2380,6 +2381,7 @@ public final class org/jetbrains/kotlinx/dataframe/api/Gather {
23802381

23812382
public final class org/jetbrains/kotlinx/dataframe/api/GatherKt {
23822383
public static final fun explodeLists (Lorg/jetbrains/kotlinx/dataframe/api/Gather;)Lorg/jetbrains/kotlinx/dataframe/api/Gather;
2384+
public static final fun explodeListsTyped (Lorg/jetbrains/kotlinx/dataframe/api/Gather;)Lorg/jetbrains/kotlinx/dataframe/api/Gather;
23832385
public static final fun gather (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/api/Gather;
23842386
public static final fun gather (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/api/Gather;
23852387
public static final fun gather (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/api/Gather;
@@ -4770,23 +4772,23 @@ public abstract interface class org/jetbrains/kotlinx/dataframe/codeGen/BaseFiel
47704772
}
47714773

47724774
public final class org/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult {
4773-
public fun <init> (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;Ljava/util/List;)V
4774-
public final fun component1 ()Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4775+
public fun <init> (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;Ljava/util/List;)V
4776+
public final fun component1 ()Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
47754777
public final fun component2 ()Ljava/util/List;
4776-
public final fun copy (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;Ljava/util/List;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;
4777-
public static synthetic fun copy$default (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;
4778+
public final fun copy (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;Ljava/util/List;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;
4779+
public static synthetic fun copy$default (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;
47784780
public fun equals (Ljava/lang/Object;)Z
4779-
public final fun getCode ()Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4781+
public final fun getCode ()Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
47804782
public final fun getNewMarkers ()Ljava/util/List;
47814783
public fun hashCode ()I
47824784
public fun toString ()Ljava/lang/String;
47834785
}
47844786

47854787
public abstract interface class org/jetbrains/kotlinx/dataframe/codeGen/CodeGenerator : org/jetbrains/kotlinx/dataframe/codeGen/ExtensionsCodeGenerator {
47864788
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenerator$Companion;
4787-
public abstract fun generate (Lorg/jetbrains/kotlinx/dataframe/codeGen/Marker;Lorg/jetbrains/kotlinx/dataframe/codeGen/InterfaceGenerationMode;ZLorg/jetbrains/kotlinx/dataframe/codeGen/DefaultReadDfMethod;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4789+
public abstract fun generate (Lorg/jetbrains/kotlinx/dataframe/codeGen/Marker;Lorg/jetbrains/kotlinx/dataframe/codeGen/InterfaceGenerationMode;ZLorg/jetbrains/kotlinx/dataframe/codeGen/DefaultReadDfMethod;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
47884790
public abstract fun generate (Lorg/jetbrains/kotlinx/dataframe/schema/DataFrameSchema;Ljava/lang/String;ZZZLorg/jetbrains/kotlinx/dataframe/codeGen/MarkerVisibility;Ljava/lang/Iterable;Lorg/jetbrains/kotlinx/dataframe/codeGen/DefaultReadDfMethod;Lorg/jetbrains/kotlinx/dataframe/codeGen/NameNormalizer;Z)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;
4789-
public static synthetic fun generate$default (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenerator;Lorg/jetbrains/kotlinx/dataframe/codeGen/Marker;Lorg/jetbrains/kotlinx/dataframe/codeGen/InterfaceGenerationMode;ZLorg/jetbrains/kotlinx/dataframe/codeGen/DefaultReadDfMethod;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4791+
public static synthetic fun generate$default (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenerator;Lorg/jetbrains/kotlinx/dataframe/codeGen/Marker;Lorg/jetbrains/kotlinx/dataframe/codeGen/InterfaceGenerationMode;ZLorg/jetbrains/kotlinx/dataframe/codeGen/DefaultReadDfMethod;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
47904792
public static synthetic fun generate$default (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenerator;Lorg/jetbrains/kotlinx/dataframe/schema/DataFrameSchema;Ljava/lang/String;ZZZLorg/jetbrains/kotlinx/dataframe/codeGen/MarkerVisibility;Ljava/lang/Iterable;Lorg/jetbrains/kotlinx/dataframe/codeGen/DefaultReadDfMethod;Lorg/jetbrains/kotlinx/dataframe/codeGen/NameNormalizer;ZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;
47914793
}
47924794

@@ -4796,30 +4798,30 @@ public final class org/jetbrains/kotlinx/dataframe/codeGen/CodeGenerator$Compani
47964798
}
47974799

47984800
public final class org/jetbrains/kotlinx/dataframe/codeGen/CodeGeneratorKt {
4799-
public static final fun generate (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenerator;Lkotlin/reflect/KClass;Lorg/jetbrains/kotlinx/dataframe/codeGen/InterfaceGenerationMode;Z)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4801+
public static final fun generate (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenerator;Lkotlin/reflect/KClass;Lorg/jetbrains/kotlinx/dataframe/codeGen/InterfaceGenerationMode;Z)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
48004802
}
48014803

4802-
public final class org/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter {
4803-
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter$Companion;
4804+
public final class org/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator {
4805+
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator$Companion;
48044806
public static final field EMPTY_DECLARATIONS Ljava/lang/String;
4805-
public fun <init> (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
4806-
public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
4807+
public fun <init> (Ljava/lang/String;Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator;)V
4808+
public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
48074809
public final fun component1 ()Ljava/lang/String;
4808-
public final fun component2 ()Lkotlin/jvm/functions/Function1;
4809-
public final fun copy (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4810-
public static synthetic fun copy$default (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4810+
public final fun component2 ()Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator;
4811+
public final fun copy (Ljava/lang/String;Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
4812+
public static synthetic fun copy$default (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;Ljava/lang/String;Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
4813+
public final fun declarationsWithCastExpression (Ljava/lang/String;)Ljava/lang/String;
48114814
public fun equals (Ljava/lang/Object;)Z
4812-
public final fun getConverter ()Lkotlin/jvm/functions/Function1;
48134815
public final fun getDeclarations ()Ljava/lang/String;
4814-
public final fun getHasConverter ()Z
4816+
public final fun getHasCaster ()Z
48154817
public final fun getHasDeclarations ()Z
4818+
public final fun getTypeCastGenerator ()Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator;
48164819
public fun hashCode ()I
48174820
public fun toString ()Ljava/lang/String;
4818-
public final fun with (Ljava/lang/String;)Ljava/lang/String;
48194821
}
48204822

4821-
public final class org/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter$Companion {
4822-
public final fun getEMPTY ()Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4823+
public final class org/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator$Companion {
4824+
public final fun getEMPTY ()Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
48234825
public final fun getEMPTY_CONVERTER ()Lkotlin/jvm/functions/Function1;
48244826
}
48254827

@@ -4830,7 +4832,7 @@ public abstract interface class org/jetbrains/kotlinx/dataframe/codeGen/DefaultR
48304832

48314833
public abstract interface class org/jetbrains/kotlinx/dataframe/codeGen/ExtensionsCodeGenerator {
48324834
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/codeGen/ExtensionsCodeGenerator$Companion;
4833-
public abstract fun generate (Lorg/jetbrains/kotlinx/dataframe/codeGen/IsolatedMarker;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;
4835+
public abstract fun generate (Lorg/jetbrains/kotlinx/dataframe/codeGen/IsolatedMarker;)Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;
48344836
}
48354837

48364838
public final class org/jetbrains/kotlinx/dataframe/codeGen/ExtensionsCodeGenerator$Companion {
@@ -4976,6 +4978,28 @@ public final class org/jetbrains/kotlinx/dataframe/codeGen/NameNormalizer : kotl
49764978
public final class org/jetbrains/kotlinx/dataframe/codeGen/NameNormalizer$Companion {
49774979
}
49784980

4981+
public abstract interface class org/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator {
4982+
public abstract fun addCastTo (Ljava/lang/String;)Ljava/lang/String;
4983+
public fun invoke (Ljava/lang/String;)Ljava/lang/String;
4984+
}
4985+
4986+
public final class org/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator$DataFrameApi : org/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator {
4987+
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator$DataFrameApi$Companion;
4988+
public synthetic fun <init> ([Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
4989+
public fun addCastTo (Ljava/lang/String;)Ljava/lang/String;
4990+
public final fun getTypes ()[Ljava/lang/String;
4991+
}
4992+
4993+
public final class org/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator$DataFrameApi$Companion {
4994+
public final fun invoke ([Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator;
4995+
}
4996+
4997+
public final class org/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator$Empty : org/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator {
4998+
public static final field INSTANCE Lorg/jetbrains/kotlinx/dataframe/codeGen/TypeCastGenerator$Empty;
4999+
public fun addCastTo (Ljava/lang/String;)Ljava/lang/String;
5000+
public fun invoke (Ljava/lang/String;)Ljava/lang/String;
5001+
}
5002+
49795003
public final class org/jetbrains/kotlinx/dataframe/codeGen/ValidFieldName {
49805004
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/codeGen/ValidFieldName$Companion;
49815005
public synthetic fun <init> (Ljava/lang/String;ZLkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -5850,7 +5874,7 @@ public final class org/jetbrains/kotlinx/dataframe/impl/codeGen/CodeGeneratorImp
58505874
public static final fun quoteIfNeeded (Ljava/lang/String;)Ljava/lang/String;
58515875
public static final fun toStandaloneSnippet (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
58525876
public static final fun toStandaloneSnippet (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeGenResult;Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
5853-
public static final fun toStandaloneSnippet (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithConverter;Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
5877+
public static final fun toStandaloneSnippet (Lorg/jetbrains/kotlinx/dataframe/codeGen/CodeWithTypeCastGenerator;Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
58545878
}
58555879

58565880
public abstract interface class org/jetbrains/kotlinx/dataframe/impl/codeGen/DfReadResult {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,5 @@ public fun <C> TransformableColumnSet<*>.cast(): TransformableColumnSet<C> = thi
9999
public fun <C> TransformableSingleColumn<*>.cast(): TransformableSingleColumn<C> = this as TransformableSingleColumn<C>
100100

101101
public fun <C> ColumnReference<*>.cast(): ColumnReference<C> = this as ColumnReference<C>
102+
103+
public fun <T, G> GroupBy<*, *>.cast(): GroupBy<T, G> = this as GroupBy<T, G>

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,19 @@ public fun <T, C, K, R> Gather<T, C, K, R>.explodeLists(): Gather<T, C, K, R> =
7171
explode = true,
7272
)
7373

74+
@JvmName("explodeListsTyped")
75+
@Interpretable("GatherExplodeLists")
76+
public fun <T, C, K, R> Gather<T, List<C>, K, R>.explodeLists(): Gather<T, C, K, R> =
77+
Gather(
78+
df = df,
79+
columns = columns,
80+
filter = filter,
81+
keyType = keyType,
82+
keyTransform = keyTransform,
83+
valueTransform = valueTransform,
84+
explode = true,
85+
) as Gather<T, C, K, R>
86+
7487
@Interpretable("GatherMap")
7588
public inline fun <T, C, reified K, R> Gather<T, C, *, R>.mapKeys(
7689
noinline transform: (String) -> K,

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,8 @@ public fun <T, C, R> SplitWithTransform<T, C, R>.inward(
295295
vararg otherNames: KProperty<*>,
296296
): DataFrame<T> = inward(listOf(firstName.columnName) + otherNames.map { it.columnName })
297297

298+
@Refine
299+
@Interpretable("SplitIterableInward")
298300
public inline fun <T, C : Iterable<R>, reified R> Split<T, C>.inward(
299301
vararg names: String,
300302
noinline extraNamesGenerator: ColumnNamesGenerator<C>? = null,
@@ -306,6 +308,8 @@ public fun <T, C : DataFrame<R>, R> Split<T, C>.inward(
306308
extraNamesGenerator: ColumnNamesGenerator<C>? = null,
307309
): DataFrame<T> = by { it.rows() }.inward(names.toList(), extraNamesGenerator)
308310

311+
@Refine
312+
@Interpretable("SplitPairInward")
309313
public fun <T, A, B> Split<T, Pair<A, B>>.inward(firstCol: String, secondCol: String): DataFrame<T> =
310314
by { listOf(it.first, it.second) }.inward(firstCol, secondCol)
311315

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public enum class InterfaceGenerationMode {
1515
None,
1616
}
1717

18-
public data class CodeGenResult(val code: CodeWithConverter, val newMarkers: List<Marker>)
18+
public data class CodeGenResult(val code: CodeWithTypeCastGenerator, val newMarkers: List<Marker>)
1919

2020
public interface CodeGenerator : ExtensionsCodeGenerator {
2121

@@ -37,7 +37,7 @@ public interface CodeGenerator : ExtensionsCodeGenerator {
3737
interfaceMode: InterfaceGenerationMode,
3838
extensionProperties: Boolean,
3939
readDfMethod: DefaultReadDfMethod? = null,
40-
): CodeWithConverter
40+
): CodeWithTypeCastGenerator
4141

4242
public companion object {
4343
public fun create(useFqNames: Boolean = true): CodeGenerator =
@@ -54,7 +54,7 @@ internal fun CodeGenerator.generate(
5454
markerClass: KClass<*>,
5555
interfaceMode: InterfaceGenerationMode,
5656
extensionProperties: Boolean,
57-
): CodeWithConverter =
57+
): CodeWithTypeCastGenerator =
5858
generate(
5959
MarkersExtractor.get(markerClass),
6060
interfaceMode,
@@ -64,4 +64,4 @@ internal fun CodeGenerator.generate(
6464
public inline fun <reified T> CodeGenerator.generate(
6565
interfaceMode: InterfaceGenerationMode,
6666
extensionProperties: Boolean,
67-
): CodeWithConverter = generate(T::class, interfaceMode, extensionProperties)
67+
): CodeWithTypeCastGenerator = generate(T::class, interfaceMode, extensionProperties)

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

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)