Skip to content

Commit 31c71c3

Browse files
committed
Merge branch 'master' into continued-columnsselectiondsl
2 parents 9450590 + d3b278f commit 31c71c3

File tree

6 files changed

+32
-17
lines changed

6 files changed

+32
-17
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,21 @@ import org.jetbrains.kotlinx.dataframe.columns.values
77

88
// region DataColumn
99

10-
public fun <T> DataColumn<T>.forEach(action: (T) -> Unit): Unit = values.forEach(action)
10+
public inline fun <T> DataColumn<T>.forEach(action: (T) -> Unit): Unit = values().forEach(action)
1111

12-
public fun <T> DataColumn<T>.forEachIndexed(action: (Int, T) -> Unit): Unit = values.forEachIndexed(action)
12+
public inline fun <T> DataColumn<T>.forEachIndexed(action: (Int, T) -> Unit): Unit = values().forEachIndexed(action)
1313

1414
// endregion
1515

1616
// region DataFrame
1717

18-
public fun <T> DataFrame<T>.forEach(action: RowExpression<T, Unit>): Unit = rows().forEach { action(it, it) }
18+
public inline fun <T> DataFrame<T>.forEach(action: RowExpression<T, Unit>): Unit = rows().forEach { action(it, it) }
1919

2020
// endregion
2121

2222
// region GroupBy
2323

24-
public fun <T, G> GroupBy<T, G>.forEach(body: (GroupBy.Entry<T, G>) -> Unit): Unit = keys.forEach { key ->
24+
public inline fun <T, G> GroupBy<T, G>.forEach(body: (GroupBy.Entry<T, G>) -> Unit): Unit = keys.forEach { key ->
2525
val group = groups[key.index()]
2626
body(GroupBy.Entry(key, group))
2727
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,21 @@ import org.jetbrains.kotlinx.dataframe.columns.values
77

88
// region DataColumn
99

10-
public fun <T> DataColumn<T>.forEach(action: (T) -> Unit): Unit = values.forEach(action)
10+
public inline fun <T> DataColumn<T>.forEach(action: (T) -> Unit): Unit = values().forEach(action)
1111

12-
public fun <T> DataColumn<T>.forEachIndexed(action: (Int, T) -> Unit): Unit = values.forEachIndexed(action)
12+
public inline fun <T> DataColumn<T>.forEachIndexed(action: (Int, T) -> Unit): Unit = values().forEachIndexed(action)
1313

1414
// endregion
1515

1616
// region DataFrame
1717

18-
public fun <T> DataFrame<T>.forEach(action: RowExpression<T, Unit>): Unit = rows().forEach { action(it, it) }
18+
public inline fun <T> DataFrame<T>.forEach(action: RowExpression<T, Unit>): Unit = rows().forEach { action(it, it) }
1919

2020
// endregion
2121

2222
// region GroupBy
2323

24-
public fun <T, G> GroupBy<T, G>.forEach(body: (GroupBy.Entry<T, G>) -> Unit): Unit = keys.forEach { key ->
24+
public inline fun <T, G> GroupBy<T, G>.forEach(body: (GroupBy.Entry<T, G>) -> Unit): Unit = keys.forEach { key ->
2525
val group = groups[key.index()]
2626
body(GroupBy.Entry(key, group))
2727
}

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[versions]
2-
ksp = "1.9.0-1.0.12"
2+
ksp = "1.9.21-1.0.15"
33
kotlinJupyter = "0.11.0-358"
44
ktlint = "3.4.5"
55
kotlin = "1.9.0"

plugins/dataframe-gradle-plugin/src/main/kotlin/org/jetbrains/dataframe/gradle/ConvenienceSchemaGeneratorPlugin.kt

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,29 @@ package org.jetbrains.dataframe.gradle
33
import com.google.devtools.ksp.gradle.KspExtension
44
import org.gradle.api.Plugin
55
import org.gradle.api.Project
6-
import org.gradle.kotlin.dsl.getByType
6+
import org.gradle.kotlin.dsl.findByType
77
import java.util.*
88

99
@Suppress("unused")
1010
class ConvenienceSchemaGeneratorPlugin : Plugin<Project> {
1111
override fun apply(target: Project) {
12-
target.plugins.apply(KspPluginApplier::class.java)
12+
val name = "kotlin.dataframe.add.ksp"
13+
val property = target.findProperty(name)?.toString()
14+
var addKsp = true
15+
16+
if (property != null) {
17+
if (property.equals("true", ignoreCase = true) || property.equals("false", ignoreCase = true)) {
18+
addKsp = property.toBoolean()
19+
} else {
20+
target.logger.warn("Invalid value '$property' for '$name' property. Defaulting to '$addKsp'. Please use 'true' or 'false'.")
21+
}
22+
}
23+
if (addKsp) {
24+
target.plugins.apply(KspPluginApplier::class.java)
25+
}
26+
target.afterEvaluate {
27+
target.extensions.findByType<KspExtension>()?.arg("dataframe.resolutionDir", target.projectDir.absolutePath)
28+
}
1329
target.plugins.apply(SchemaGeneratorPlugin::class.java)
1430
}
1531
}
@@ -31,6 +47,5 @@ internal class KspPluginApplier : Plugin<Project> {
3147
target.configurations.getByName("ksp").dependencies.add(
3248
target.dependencies.create("org.jetbrains.kotlinx.dataframe:symbol-processor-all:$preprocessorVersion")
3349
)
34-
target.extensions.getByType<KspExtension>().arg("dataframe.resolutionDir", target.projectDir.absolutePath)
3550
}
3651
}
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.jetbrains.dataframe.gradle
22

3+
import java.util.Locale
4+
35
fun String.toCamelCaseByDelimiters(delimiters: Regex): String {
4-
return split(delimiters).joinToCamelCaseString().decapitalize()
6+
return split(delimiters).joinToCamelCaseString().replaceFirstChar { it.lowercase(Locale.getDefault()) }
57
}
68

79
fun List<String>.joinToCamelCaseString(): String {
8-
return joinToString(separator = "") { it.capitalize() }
10+
return joinToString(separator = "") { s -> s.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } }
911
}

plugins/symbol-processor/src/main/kotlin/org/jetbrains/dataframe/ksp/DataSchemaGenerator.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@ class DataSchemaGenerator(
4848
private val codeGenerator: com.google.devtools.ksp.processing.CodeGenerator,
4949
) {
5050

51-
fun resolveImportStatements() = listOf(
52-
::resolvePathImports,
53-
).flatMap { it(resolver) }
51+
fun resolveImportStatements(): List<ImportDataSchemaStatement> = resolvePathImports(resolver).toList()
5452

5553
class ImportDataSchemaStatement(
5654
val origin: KSFile,

0 commit comments

Comments
 (0)