Skip to content

Commit 5057eeb

Browse files
committed
tiny logic change so we take all parsers and not just the parserMap (as keys like Double appear multiple times)
1 parent 7b9c86b commit 5057eeb

File tree

1 file changed

+12
-15
lines changed
  • core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api

1 file changed

+12
-15
lines changed

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

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ internal object Parsers : GlobalParserOptions {
325325
parser
326326
}
327327

328-
private val parsersOrder = listOf(
328+
internal val parsersOrder = listOf(
329329
// Int
330330
stringParser<Int> { it.toIntOrNull() },
331331
// Long
@@ -415,7 +415,7 @@ internal object Parsers : GlobalParserOptions {
415415
stringParser<String> { it },
416416
)
417417

418-
internal val parsersMap = parsersOrder.associateBy { it.type }
418+
private val parsersMap = parsersOrder.associateBy { it.type }
419419

420420
val size: Int = parsersOrder.size
421421

@@ -478,16 +478,16 @@ internal object Parsers : GlobalParserOptions {
478478
internal fun DataColumn<String?>.tryParseImpl(options: ParserOptions?): DataColumn<*> {
479479
val columnSize = size
480480
val parsedValues = ArrayList<Any?>(columnSize)
481-
var hasNulls: Boolean = false
482-
var hasNotNulls: Boolean = false
483-
var nullStringParsed: Boolean = false
481+
var hasNulls = false
482+
var hasNotNulls = false
483+
var nullStringParsed = false
484484
val nulls = options?.nullStrings ?: Parsers.nulls
485485

486-
val parsersToCheck = Parsers.parsersMap
487-
val parserTypesToCheck = parsersToCheck.keys
486+
val parsersToCheck = Parsers.parsersOrder
487+
val parserTypesToCheck = parsersToCheck.map { it.type }.toSet()
488488

489489
var correctParser: StringParser<*>? = null
490-
for ((_, parser) in parsersToCheck) {
490+
for (parser in parsersToCheck) {
491491
if (parser.coveredBy.any { it in parserTypesToCheck }) continue
492492

493493
val parserWithOptions = parser.applyOptions(options)
@@ -496,24 +496,21 @@ internal fun DataColumn<String?>.tryParseImpl(options: ParserOptions?): DataColu
496496
hasNotNulls = false
497497
nullStringParsed = false
498498
for (str in this) {
499-
when {
500-
str == null -> {
499+
when (str) {
500+
null -> {
501501
parsedValues += null
502502
hasNulls = true
503503
}
504504

505-
str in nulls -> {
505+
in nulls -> {
506506
parsedValues += null
507507
hasNulls = true
508508
nullStringParsed = true
509509
}
510510

511511
else -> {
512512
val trimmed = str.trim()
513-
val res = parserWithOptions(trimmed)
514-
if (res == null) {
515-
continue
516-
}
513+
val res = parserWithOptions(trimmed) ?: continue
517514
parsedValues += res
518515
hasNotNulls = true
519516
}

0 commit comments

Comments
 (0)