Skip to content

Commit c3031c4

Browse files
authored
Merge pull request #363 from Kotlin/dfs-rename3
Rework of dfs functions to recursively (changing return type of recurse-able functions)
2 parents ea7569e + 9fdd5e3 commit c3031c4

File tree

122 files changed

+3868
-3002
lines changed

Some content is hidden

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

122 files changed

+3868
-3002
lines changed

core/build.gradle.kts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import io.github.devcrocod.korro.KorroTask
44
import nl.jolanrensen.docProcessor.defaultProcessors.*
55
import nl.jolanrensen.docProcessor.gradle.creatingProcessDocTask
66
import org.gradle.jvm.tasks.Jar
7+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
78
import org.jmailen.gradle.kotlinter.tasks.LintTask
89
import xyz.ronella.gradle.plugin.simple.git.task.GitTask
910

@@ -77,7 +78,7 @@ val samplesImplementation by configurations.getting {
7778
extendsFrom(configurations.testImplementation.get())
7879
}
7980

80-
val compileSamplesKotlin = tasks.named<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>("compileSamplesKotlin") {
81+
val compileSamplesKotlin = tasks.named<KotlinCompile>("compileSamplesKotlin") {
8182
friendPaths.from(sourceSets["main"].output.classesDirs)
8283
source(sourceSets["test"].kotlin)
8384
destinationDirectory.set(file("$buildDir/classes/testWithOutputs/kotlin"))
@@ -106,6 +107,7 @@ val samplesTest = tasks.register<Test>("samplesTest") {
106107

107108
dependsOn(compileSamplesKotlin)
108109
dependsOn(clearTestResults)
110+
outputs.upToDateWhen { false }
109111

110112
environment("DATAFRAME_SAVE_OUTPUTS", "")
111113

@@ -129,13 +131,23 @@ val clearSamplesOutputs by tasks.creating {
129131
}
130132
}
131133

134+
val addSamplesToGit by tasks.creating(GitTask::class) {
135+
directory.set(file("."))
136+
command.set("add")
137+
args.set(listOf("-A", "../docs/StardustDocs/snippets"))
138+
}
139+
132140
val copySamplesOutputs = tasks.register<JavaExec>("copySamplesOutputs") {
133141
group = "documentation"
134142
mainClass.set("org.jetbrains.kotlinx.dataframe.explainer.SampleAggregatorKt")
135143

136144
dependsOn(clearSamplesOutputs)
137145
dependsOn(samplesTest)
138146
classpath = sourceSets.test.get().runtimeClasspath
147+
148+
doLast {
149+
addSamplesToGit.executeCommand()
150+
}
139151
}
140152

141153
tasks.withType<KorroTask> {
@@ -307,7 +319,7 @@ tasks.withType<JavaCompile> {
307319
targetCompatibility = JavaVersion.VERSION_1_8.toString()
308320
}
309321

310-
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
322+
tasks.withType<KotlinCompile> {
311323
kotlinOptions {
312324
freeCompilerArgs = freeCompilerArgs + listOf("-Xinline-classes", "-Xopt-in=kotlin.RequiresOptIn")
313325
}

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

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,8 @@
11
package org.jetbrains.kotlinx.dataframe
22

3-
import org.jetbrains.kotlinx.dataframe.api.Infer
4-
import org.jetbrains.kotlinx.dataframe.api.asDataColumn
5-
import org.jetbrains.kotlinx.dataframe.api.cast
6-
import org.jetbrains.kotlinx.dataframe.api.concat
7-
import org.jetbrains.kotlinx.dataframe.api.filter
8-
import org.jetbrains.kotlinx.dataframe.api.schema
9-
import org.jetbrains.kotlinx.dataframe.api.take
10-
import org.jetbrains.kotlinx.dataframe.columns.BaseColumn
11-
import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
12-
import org.jetbrains.kotlinx.dataframe.columns.ColumnKind
13-
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
14-
import org.jetbrains.kotlinx.dataframe.columns.ColumnResolutionContext
15-
import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath
16-
import org.jetbrains.kotlinx.dataframe.columns.FrameColumn
17-
import org.jetbrains.kotlinx.dataframe.columns.ValueColumn
18-
import org.jetbrains.kotlinx.dataframe.impl.columns.ColumnGroupImpl
19-
import org.jetbrains.kotlinx.dataframe.impl.columns.FrameColumnImpl
20-
import org.jetbrains.kotlinx.dataframe.impl.columns.ValueColumnImpl
21-
import org.jetbrains.kotlinx.dataframe.impl.columns.addPath
22-
import org.jetbrains.kotlinx.dataframe.impl.columns.guessColumnType
23-
import org.jetbrains.kotlinx.dataframe.impl.columns.toColumnKind
3+
import org.jetbrains.kotlinx.dataframe.api.*
4+
import org.jetbrains.kotlinx.dataframe.columns.*
5+
import org.jetbrains.kotlinx.dataframe.impl.columns.*
246
import org.jetbrains.kotlinx.dataframe.impl.getValuesType
257
import org.jetbrains.kotlinx.dataframe.impl.splitByIndices
268
import org.jetbrains.kotlinx.dataframe.schema.DataFrameSchema
@@ -54,7 +36,7 @@ public interface DataColumn<out T> : BaseColumn<T> {
5436
values: List<T>,
5537
type: KType,
5638
infer: Infer = Infer.None,
57-
defaultValue: T? = null
39+
defaultValue: T? = null,
5840
): ValueColumn<T> = ValueColumnImpl(values, name, getValuesType(values, type, infer), defaultValue)
5941

6042
/**
@@ -67,7 +49,11 @@ public interface DataColumn<out T> : BaseColumn<T> {
6749
* @param values list of column values
6850
* @param infer column type inference mode
6951
*/
70-
public inline fun <reified T> createValueColumn(name: String, values: List<T>, infer: Infer = Infer.None): ValueColumn<T> = createValueColumn(
52+
public inline fun <reified T> createValueColumn(
53+
name: String,
54+
values: List<T>,
55+
infer: Infer = Infer.None,
56+
): ValueColumn<T> = createValueColumn(
7157
name, values,
7258
getValuesType(
7359
values,
@@ -81,17 +67,21 @@ public interface DataColumn<out T> : BaseColumn<T> {
8167
public fun <T> createFrameColumn(
8268
name: String,
8369
df: DataFrame<T>,
84-
startIndices: Iterable<Int>
70+
startIndices: Iterable<Int>,
8571
): FrameColumn<T> =
8672
FrameColumnImpl(name, df.splitByIndices(startIndices.asSequence()).toList(), lazy { df.schema() })
8773

8874
public fun <T> createFrameColumn(
8975
name: String,
9076
groups: List<DataFrame<T>>,
91-
schema: Lazy<DataFrameSchema>? = null
77+
schema: Lazy<DataFrameSchema>? = null,
9278
): FrameColumn<T> = FrameColumnImpl(name, groups, schema)
9379

94-
public fun <T> createWithTypeInference(name: String, values: List<T>, nullable: Boolean? = null): DataColumn<T> = guessColumnType(name, values, nullable = nullable)
80+
public fun <T> createWithTypeInference(
81+
name: String,
82+
values: List<T>,
83+
nullable: Boolean? = null,
84+
): DataColumn<T> = guessColumnType(name, values, nullable = nullable)
9585

9686
public fun <T> create(name: String, values: List<T>, type: KType, infer: Infer = Infer.None): DataColumn<T> {
9787
return when (type.toColumnKind()) {
@@ -101,7 +91,8 @@ public interface DataColumn<out T> : BaseColumn<T> {
10191
}
10292
}
10393

104-
public inline fun <reified T> create(name: String, values: List<T>, infer: Infer = Infer.None): DataColumn<T> = create(name, values, typeOf<T>(), infer)
94+
public inline fun <reified T> create(name: String, values: List<T>, infer: Infer = Infer.None): DataColumn<T> =
95+
create(name, values, typeOf<T>(), infer)
10596

10697
public fun empty(name: String = ""): AnyCol = createValueColumn(name, emptyList<Unit>(), typeOf<Unit>())
10798
}
@@ -116,7 +107,8 @@ public interface DataColumn<out T> : BaseColumn<T> {
116107

117108
override fun resolveSingle(context: ColumnResolutionContext): ColumnWithPath<T>? = this.addPath()
118109

119-
override operator fun getValue(thisRef: Any?, property: KProperty<*>): DataColumn<T> = super.getValue(thisRef, property) as DataColumn<T>
110+
override operator fun getValue(thisRef: Any?, property: KProperty<*>): DataColumn<T> =
111+
super.getValue(thisRef, property) as DataColumn<T>
120112

121113
public operator fun iterator(): Iterator<T> = values().iterator()
122114

@@ -133,6 +125,8 @@ public val AnyCol.indices: IntRange get() = indices()
133125

134126
public val AnyCol.type: KType get() = type()
135127
public val AnyCol.kind: ColumnKind get() = kind()
136-
public val AnyCol.typeClass: KClass<*> get() = type.classifier as? KClass<*> ?: error("Cannot cast ${type.classifier?.javaClass} to a ${KClass::class}. Column $name: $type")
128+
public val AnyCol.typeClass: KClass<*>
129+
get() = type.classifier as? KClass<*>
130+
?: error("Cannot cast ${type.classifier?.javaClass} to a ${KClass::class}. Column $name: $type")
137131

138132
public fun AnyBaseCol.indices(): IntRange = 0 until size()

0 commit comments

Comments
 (0)