Skip to content

Commit 03fb5e0

Browse files
committed
setting ComparisonMode to LENIENT by default
1 parent a0c3f2e commit 03fb5e0

File tree

4 files changed

+11
-12
lines changed

4 files changed

+11
-12
lines changed

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/codeGen/CodeGeneratorImpl.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,13 @@ import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
3434
import org.jetbrains.kotlinx.dataframe.impl.toSnakeCase
3535
import org.jetbrains.kotlinx.dataframe.keywords.HardKeywords
3636
import org.jetbrains.kotlinx.dataframe.keywords.ModifierKeywords
37+
import org.jetbrains.kotlinx.dataframe.schema.ComparisonMode
3738
import org.jetbrains.kotlinx.dataframe.schema.DataFrameSchema
3839

3940
private fun renderNullability(nullable: Boolean) = if (nullable) "?" else ""
4041

4142
internal fun Iterable<Marker>.filterRequiredForSchema(schema: DataFrameSchema) =
42-
filter { it.isOpen && it.schema.compare(schema).isSuperOrEqual() }
43+
filter { it.isOpen && it.schema.compare(schema, ComparisonMode.STRICT_FOR_NESTED_SCHEMAS).isSuperOrEqual() }
4344

4445
internal val charsToQuote = """[ `(){}\[\].<>'"/|\\!?@:;%^&*#$-]""".toRegex()
4546

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/codeGen/SchemaProcessorImpl.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import org.jetbrains.kotlinx.dataframe.codeGen.MarkerVisibility
77
import org.jetbrains.kotlinx.dataframe.codeGen.SchemaProcessor
88
import org.jetbrains.kotlinx.dataframe.codeGen.ValidFieldName
99
import org.jetbrains.kotlinx.dataframe.schema.ColumnSchema
10+
import org.jetbrains.kotlinx.dataframe.schema.ComparisonMode
1011
import org.jetbrains.kotlinx.dataframe.schema.DataFrameSchema
1112

1213
internal class SchemaProcessorImpl(
@@ -23,7 +24,7 @@ internal class SchemaProcessorImpl(
2324

2425
private fun DataFrameSchema.getAllSuperMarkers() =
2526
registeredMarkers
26-
.filter { it.isOpen && it.schema.compare(this).isSuperOrEqual() }
27+
.filter { it.isOpen && it.schema.compare(this, ComparisonMode.STRICT_FOR_NESTED_SCHEMAS).isSuperOrEqual() }
2728

2829
private fun List<Marker>.onlyLeafs(): List<Marker> {
2930
val skip = flatMap { it.allSuperMarkers.keys }.toSet()

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/schema/ColumnSchema.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public sealed class ColumnSchema {
5757
override val nullable: Boolean = false
5858
override val type: KType get() = typeOf<AnyRow>()
5959

60-
public fun compare(other: Group, comparisonMode: ComparisonMode = STRICT_FOR_NESTED_SCHEMAS): CompareResult =
60+
public fun compare(other: Group, comparisonMode: ComparisonMode = LENIENT): CompareResult =
6161
schema.compare(
6262
other = other.schema,
6363
comparisonMode = comparisonMode,
@@ -91,7 +91,7 @@ public sealed class ColumnSchema {
9191
}
9292
}
9393

94-
public fun compare(other: ColumnSchema, comparisonMode: ComparisonMode = STRICT_FOR_NESTED_SCHEMAS): CompareResult {
94+
public fun compare(other: ColumnSchema, comparisonMode: ComparisonMode = LENIENT): CompareResult {
9595
if (kind != other.kind) return CompareResult.None
9696
if (this === other) return CompareResult.Equals
9797
return when (this) {
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
package org.jetbrains.kotlinx.dataframe.schema
22

3-
import org.jetbrains.kotlinx.dataframe.schema.ComparisonMode.STRICT_FOR_NESTED_SCHEMAS
4-
53
public interface DataFrameSchema {
64

75
public val columns: Map<String, ColumnSchema>
86

97
/**
10-
* By default generated markers for leafs aren't used as supertypes: @DataSchema(isOpen = false)
11-
* [ComparisonMode.STRICT_FOR_NESTED_SCHEMAS] takes this into account for internal codegen logic
8+
* @param comparisonMode The [mode][ComparisonMode] to compare the schema's by.
9+
* By default, generated markers for leafs aren't used as supertypes: `@DataSchema(isOpen = false)`
10+
* Setting [comparisonMode] to [ComparisonMode.STRICT_FOR_NESTED_SCHEMAS] takes this into account
11+
* for internal codegen logic.
1212
*/
13-
public fun compare(
14-
other: DataFrameSchema,
15-
comparisonMode: ComparisonMode = STRICT_FOR_NESTED_SCHEMAS,
16-
): CompareResult
13+
public fun compare(other: DataFrameSchema, comparisonMode: ComparisonMode = ComparisonMode.LENIENT): CompareResult
1714
}

0 commit comments

Comments
 (0)