diff --git a/common/src/main/kotlin/org/imdc/extensions/common/PyDatasetBuilder.kt b/common/src/main/kotlin/org/imdc/extensions/common/PyDatasetBuilder.kt index 2d98097..bcc6155 100644 --- a/common/src/main/kotlin/org/imdc/extensions/common/PyDatasetBuilder.kt +++ b/common/src/main/kotlin/org/imdc/extensions/common/PyDatasetBuilder.kt @@ -22,7 +22,11 @@ class PyDatasetBuilder(private val builder: DatasetBuilder) : PyObject() { } fun colTypes(vararg types: PyObject) = apply { - builder.colTypes(types.map { it.asJavaClass() }) + if (types.singleOrNull()?.isSequenceType == true) { + builder.colTypes(types.first().asIterable().map { it.asJavaClass() }) + } else { + builder.colTypes(types.map { it.asJavaClass() }) + } } fun colTypes(types: List>) = apply { diff --git a/common/src/test/kotlin/org/imdc/extensions/common/DatasetExtensionsTests.kt b/common/src/test/kotlin/org/imdc/extensions/common/DatasetExtensionsTests.kt index 0c7d07f..2cda029 100644 --- a/common/src/test/kotlin/org/imdc/extensions/common/DatasetExtensionsTests.kt +++ b/common/src/test/kotlin/org/imdc/extensions/common/DatasetExtensionsTests.kt @@ -16,6 +16,7 @@ import kotlin.io.path.writeBytes class DatasetExtensionsTests : JythonTest( { globals -> globals["utils"] = DatasetExtensions + globals["builder"] = DatasetBuilder.newBuilder() globals["dataset"] = DatasetBuilder.newBuilder() .colNames("a", "b", "c") .colTypes(Int::class.javaObjectType, Double::class.javaObjectType, String::class.java) @@ -540,6 +541,16 @@ class DatasetExtensionsTests : JythonTest( ) } } + + test("Column types regression (issue #24)") { + eval( + """ + builder.colNames(dataset.columnNames) \ + .colTypes(dataset.columnTypes) \ + .build() + """.trimIndent(), + ) + } } } }