Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 34 additions & 9 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import io.github.devcrocod.korro.KorroGenerateTask
import io.github.devcrocod.korro.KorroTask
import org.gradle.jvm.tasks.Jar
import org.intellij.lang.annotations.Language
Expand Down Expand Up @@ -122,6 +123,10 @@ benchmark {
}
}

// TODO(#898)
// All korro/samples related tasks should be removed
// after migration all test sample to :samples module

val samplesImplementation by configurations.getting {
extendsFrom(configurations.testImplementation.get())
}
Expand Down Expand Up @@ -184,23 +189,43 @@ val copySamplesOutputs = tasks.register<JavaExec>("copySamplesOutputs") {
classpath = sourceSets.test.get().runtimeClasspath
}

tasks.withType<KorroGenerateTask> {
dependsOn(copySamplesOutputs)
if (name == "korroGenerate") {
mustRunAfter(":samples:korro")
}
}

tasks.withType<KorroTask> {
dependsOn(copySamplesOutputs)
}

korro {
docs = fileTree(rootProject.rootDir) {
include("docs/StardustDocs/topics/*.md")
include("docs/StardustDocs/topics/concepts/*.md")
behavior {
ignoreMissing = true
}

samples = fileTree(project.projectDir) {
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/*.kt")
docs {
from(
fileTree(rootProject.file("docs/StardustDocs")) {
include("topics/*.md")
include("topics/concepts/*.md")
},
)
baseDir = rootProject.file("docs/StardustDocs")
}

outputs = fileTree(project.layout.buildDirectory) {
include("korroOutputLines/*")
samples {
from(
fileTree(project.projectDir) {
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/*.kt")
},
)
outputs.from(
fileTree(project.layout.buildDirectory) {
include("korroOutputLines/*")
},
)
}

groupSamples {
Expand Down
12 changes: 1 addition & 11 deletions docs/StardustDocs/topics/dataSources/Parquet.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,6 @@ val df = DataFrame.readParquet("data/sales.parquet")
<!---FUN readParquetFilePath-->

```kotlin
// Read from Path objects
val path = Paths.get("data/sales.parquet")
val df = DataFrame.readParquet(path)
```

Expand All @@ -94,7 +92,6 @@ val df = DataFrame.readParquet(url)

```kotlin
// Read from File objects
val file = File("data/sales.parquet")
val df = DataFrame.readParquet(file)
```

Expand All @@ -104,13 +101,10 @@ val df = DataFrame.readParquet(file)
<!---FUN readParquetFileWithParameters-->

```kotlin
// Read from File objects
val file = File("data/sales.parquet")

val df = DataFrame.readParquet(
file,
nullability = NullabilityOptions.Infer,
batchSize = 64L * 1024
batchSize = 64L * 1024,
)
```

Expand All @@ -127,10 +121,6 @@ It's possible to read multiple Parquet files:
<!---FUN readMultipleParquetFiles-->

```kotlin
val file = File("data/sales.parquet")
val file1 = File("data/sales1.parquet")
val file2 = File("data/sales2.parquet")

val df = DataFrame.readParquet(file, file1, file2)
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ Use [`cast`](cast.md) to apply the generated schema to a `DataFrame`:
<!---FUN notebook_test_generate_docs_3-->

```kotlin
df.cast<_DataFrameType1>().filter { orders.all { orderId >= 102 } }
df.filter { orders.all { orderId >= 102 } }
```

<!---END-->
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ dataframe = "1.0.0-Beta5"

# Latest version of DataFrame that still has the KSP plugin. To be removed
dataframe-ksp = "1.0.0-Beta4"
korro = "0.1.7"
korro = "0.2.2"

gradlePlugin-gradle-foojayToolchains = "1.0.0"
typesafe-conventions = "0.10.1"
Expand Down
107 changes: 57 additions & 50 deletions samples/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,21 +1,4 @@
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.exclude
import org.gradle.kotlin.dsl.implementation
import org.gradle.kotlin.dsl.invoke
import org.gradle.kotlin.dsl.java
import org.gradle.kotlin.dsl.korro
import org.gradle.kotlin.dsl.kotlin
import org.gradle.kotlin.dsl.libs
import org.gradle.kotlin.dsl.main
import org.gradle.kotlin.dsl.projects
import org.gradle.kotlin.dsl.repositories
import org.gradle.kotlin.dsl.runKtlintCheckOverMainSourceSet
import org.gradle.kotlin.dsl.runKtlintCheckOverTestSourceSet
import org.gradle.kotlin.dsl.runKtlintFormatOverMainSourceSet
import org.gradle.kotlin.dsl.runKtlintFormatOverTestSourceSet
import org.gradle.kotlin.dsl.sourceSets
import org.gradle.kotlin.dsl.test
import org.gradle.kotlin.dsl.testImplementation
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
Expand Down Expand Up @@ -91,41 +74,65 @@ dependencies {
}

korro {
docs = fileTree(rootProject.rootDir) {
include("docs/StardustDocs/topics/DataSchema-Data-Classes-Generation.md")
include("docs/StardustDocs/topics/read.md")
include("docs/StardustDocs/topics/readSqlFromCustomDatabase.md")
include("docs/StardustDocs/topics/write.md")
include("docs/StardustDocs/topics/rename.md")
include("docs/StardustDocs/topics/format.md")
include("docs/StardustDocs/topics/parse.md")
include("docs/StardustDocs/topics/toHTML.md")
include("docs/StardustDocs/topics/guides/*.md")
include("docs/StardustDocs/topics/concepts/*.md")
include("docs/StardustDocs/topics/operations/utils/*.md")
include("docs/StardustDocs/topics/operations/multiple/*.md")
include("docs/StardustDocs/topics/operations/column/*.md")
include("docs/StardustDocs/topics/collectionsInterop/*.md")
include("docs/StardustDocs/topics/dataSources/sql/*.md")
include("docs/StardustDocs/topics/dataSources/OpenAPI.md")
include("docs/StardustDocs/topics/info/*.md")
include("docs/StardustDocs/topics/columnArithmetics.md")
include("docs/StardustDocs/topics/groupBy.md")
include("docs/StardustDocs/topics/pivot.md")

// TODO(#898)
// Should work without "missing" errors
// after migration all test sample to :samples module
behavior {
ignoreMissing = true
}

docs {
from(
fileTree(rootProject.file("docs/StardustDocs/topics")) {
include("DataSchema-Data-Classes-Generation.md")
include("read.md")
include("readSqlFromCustomDatabase.md")
include("write.md")
include("rename.md")
include("format.md")
include("parse.md")
include("toHTML.md")
include("guides/*.md")
include("concepts/*.md")
include("schemas/*.md")
include("operations/utils/*.md")
include("operations/multiple/*.md")
include("operations/column/*.md")
include("collectionsInterop/*.md")
include("dataSources/*.md")
include("dataSources/sql/*.md")
include("info/*.md")
include("columnArithmetics.md")
include("groupBy.md")
include("pivot.md")
},
)
baseDir = rootProject.file("docs/StardustDocs/topics")
}

samples = fileTree(project.projectDir) {
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/utils/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/multiple/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/render/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/collectionsInterop/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/column/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/info/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/guides/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/concepts/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/io/*.kt")
samples {
from(
fileTree(project.projectDir) {
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/utils/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/multiple/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/render/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/collectionsInterop/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/column/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/info/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/guides/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/concepts/*.kt")
include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/io/*.kt")
},
)

outputs.from(
fileTree(project.layout.buildDirectory) {
include("korroOutputLines/*")
},
)
}

groupSamples {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package org.jetbrains.kotlinx.dataframe.samples

import org.jetbrains.kotlinx.dataframe.DataColumn
import org.jetbrains.kotlinx.dataframe.api.CodeString
import org.jetbrains.kotlinx.dataframe.api.toDataFrame
import org.jetbrains.kotlinx.dataframe.samples.api.TestBase
import org.jetbrains.kotlinx.kandy.letsplot.samples.SampleHelper
import java.io.File

abstract class DataFrameSampleHelper(sampleName: String, subFolder: String = "samples") :
SampleHelper(
Expand All @@ -14,6 +16,31 @@ abstract class DataFrameSampleHelper(sampleName: String, subFolder: String = "sa
),
TestBase {

fun fqnTestName(): String = "${this::class.java.name}.${testName.methodName}"

private val korroOutputLinesDir: File = File("build/korroOutputLines")

fun String.saveSample(addOutputLine: Boolean = true) {
val fqnName = fqnTestName().replace("_dataframe", "")
val text = if (addOutputLine) {
"\nOutput:\n\n$this\n"
} else {
"\n$this\n"
}

korroOutputLinesDir.mkdirs()
File(korroOutputLinesDir, fqnName).writeText(text)
}

fun CodeString.saveSample(addOutputLine: Boolean = true, addCodeBlock: Boolean = true) {
val text = if (addCodeBlock) {
"```kotlin\n$value\n```"
} else {
value
}
text.saveSample(addOutputLine)
}

fun DataColumn<*>.saveDfHtmlSample() {
toDataFrame().saveDfHtmlSample()
}
Expand Down
Loading