Skip to content

Commit c9bdabe

Browse files
committed
Revert "migration from kotlinx.datetime.Instant -> kotlin.time.Instant #1350"
This reverts commit 390b84d.
1 parent 5eea7ce commit c9bdabe

File tree

31 files changed

+85
-183
lines changed

31 files changed

+85
-183
lines changed

build.gradle.kts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,12 +188,6 @@ allprojects {
188188
options.release.set(8)
189189
}
190190
}
191-
tasks.withType<KotlinCompile> {
192-
compilerOptions {
193-
// enables support for kotlin.time.Instant as kotlinx.datetime.Instant was deprecated
194-
optIn.add("kotlin.time.ExperimentalTime")
195-
}
196-
}
197191

198192
// Attempts to configure ktlint for each sub-project that uses the plugin
199193
afterEvaluate {

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jetbrains.kotlinx.dataframe.api
22

3+
import kotlinx.datetime.Instant
34
import kotlinx.datetime.LocalDate
45
import kotlinx.datetime.LocalDateTime
56
import kotlinx.datetime.LocalTime
@@ -63,8 +64,6 @@ import kotlin.reflect.KProperty
6364
import kotlin.reflect.KType
6465
import kotlin.reflect.full.isSubtypeOf
6566
import kotlin.reflect.typeOf
66-
import kotlin.time.Instant
67-
import kotlinx.datetime.Instant as DeprecatedInstant
6867

6968
/**
7069
* See also [parse] — a specialized form of the [convert] operation that parses [String] columns
@@ -119,7 +118,7 @@ internal interface ConvertDocs {
119118
* * [Byte], [Short], [Char];
120119
* * [Int], [Long], [Float], [Double];
121120
* * [BigDecimal], [BigInteger];
122-
* * [LocalDateTime], [LocalDate], [LocalTime], [Instant] ([kotlinx.datetime][DeprecatedInstant], [kotlin.time][Instant] and [java.time][java.time.Instant]),
121+
* * [LocalDateTime], [LocalDate], [LocalTime], [Instant] ( (kotlinx.datetime and [java.time]),
123122
* * [URL], [IMG], [IFRAME].
124123
*/
125124
interface SupportedTypes
@@ -323,8 +322,7 @@ public inline fun <T, C, reified R> Convert<T, C?>.notNull(
323322
* - [asFrame][Convert.asFrame] – converts [column groups][ColumnGroup] as a [DataFrame] with the given expression.
324323
* - [toStr], [toInt], [toLong], [toDouble], [toFloat], [toBigDecimal],
325324
* [toBigInteger], [toBoolean] – convert to standard types.
326-
* - [toLocalDateTime], [toLocalDate], [toLocalTime] – convert to kotlinx.datetime types.
327-
* - [toInstant] – convert to kotlin.time.Instant.
325+
* - [toLocalDateTime], [toLocalDate], [toLocalTime], [toInstant] – convert to kotlinx.datetime types.
328326
* - [toUrl], [toIFrame], [toImg] – convert to special types.
329327
* - [toDataFrames] – converts a column of lists into separate DataFrames.
330328
*

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

Lines changed: 3 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
package org.jetbrains.kotlinx.dataframe.impl.api
22

3+
import kotlinx.datetime.Instant
34
import kotlinx.datetime.LocalDate
45
import kotlinx.datetime.LocalDateTime
56
import kotlinx.datetime.LocalTime
67
import kotlinx.datetime.TimeZone
78
import kotlinx.datetime.atStartOfDayIn
89
import kotlinx.datetime.atTime
9-
import kotlinx.datetime.toDeprecatedInstant
1010
import kotlinx.datetime.toInstant
11+
import kotlinx.datetime.toJavaInstant
1112
import kotlinx.datetime.toJavaLocalDate
1213
import kotlinx.datetime.toJavaLocalDateTime
1314
import kotlinx.datetime.toJavaLocalTime
15+
import kotlinx.datetime.toKotlinInstant
1416
import kotlinx.datetime.toKotlinLocalDate
1517
import kotlinx.datetime.toKotlinLocalDateTime
1618
import kotlinx.datetime.toKotlinLocalTime
1719
import kotlinx.datetime.toLocalDateTime
18-
import kotlinx.datetime.toStdlibInstant
1920
import org.jetbrains.kotlinx.dataframe.AnyCol
2021
import org.jetbrains.kotlinx.dataframe.DataColumn
2122
import org.jetbrains.kotlinx.dataframe.DataFrame
@@ -56,17 +57,13 @@ import kotlin.reflect.full.withNullability
5657
import kotlin.reflect.jvm.jvmErasure
5758
import kotlin.reflect.typeOf
5859
import kotlin.text.trim
59-
import kotlin.time.Instant
60-
import kotlin.time.toJavaInstant
61-
import kotlin.time.toKotlinInstant
6260
import kotlin.toBigDecimal
6361
import java.time.Instant as JavaInstant
6462
import java.time.LocalDate as JavaLocalDate
6563
import java.time.LocalDateTime as JavaLocalDateTime
6664
import java.time.LocalTime as JavaLocalTime
6765
import kotlin.toBigDecimal as toBigDecimalKotlin
6866
import kotlin.toBigInteger as toBigIntegerKotlin
69-
import kotlinx.datetime.Instant as DeprecatedInstant
7067

7168
@PublishedApi
7269
internal fun <T, C, R> Convert<T, C>.withRowCellImpl(
@@ -401,9 +398,6 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
401398

402399
Instant::class -> convert<Int> { Instant.fromEpochMilliseconds(it.toLong()) }
403400

404-
// #1350
405-
DeprecatedInstant::class -> convert<Int> { DeprecatedInstant.fromEpochMilliseconds(it.toLong()) }
406-
407401
JavaLocalDateTime::class -> convert<Int> {
408402
it.toLong().toLocalDateTime(defaultTimeZone).toJavaLocalDateTime()
409403
}
@@ -442,9 +436,6 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
442436

443437
Instant::class -> convert<Byte> { Instant.fromEpochMilliseconds(it.toLong()) }
444438

445-
// #1350
446-
DeprecatedInstant::class -> convert<Byte> { DeprecatedInstant.fromEpochMilliseconds(it.toLong()) }
447-
448439
JavaLocalDateTime::class -> convert<Byte> {
449440
it.toLong().toLocalDateTime(defaultTimeZone).toJavaLocalDateTime()
450441
}
@@ -483,9 +474,6 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
483474

484475
Instant::class -> convert<Short> { Instant.fromEpochMilliseconds(it.toLong()) }
485476

486-
// #1350
487-
DeprecatedInstant::class -> convert<Short> { DeprecatedInstant.fromEpochMilliseconds(it.toLong()) }
488-
489477
JavaLocalDateTime::class -> convert<Short> {
490478
it.toLong().toLocalDateTime(defaultTimeZone).toJavaLocalDateTime()
491479
}
@@ -536,9 +524,6 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
536524

537525
Instant::class -> convert<Long> { Instant.fromEpochMilliseconds(it) }
538526

539-
// #1350
540-
DeprecatedInstant::class -> convert<Long> { DeprecatedInstant.fromEpochMilliseconds(it) }
541-
542527
JavaLocalDateTime::class -> convert<Long> {
543528
it.toLocalDateTime(defaultTimeZone).toJavaLocalDateTime()
544529
}
@@ -571,40 +556,6 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
571556

572557
JavaLocalTime::class -> convert<Instant> { it.toLocalTime(defaultTimeZone).toJavaLocalTime() }
573558

574-
// #1350
575-
DeprecatedInstant::class -> convert<Instant> { it.toDeprecatedInstant() }
576-
577-
else -> null
578-
}
579-
580-
// #1350
581-
DeprecatedInstant::class -> when (toClass) {
582-
Long::class -> convert<DeprecatedInstant> { it.toStdlibInstant().toEpochMilliseconds() }
583-
584-
LocalDateTime::class -> convert<DeprecatedInstant> {
585-
it.toStdlibInstant().toLocalDateTime(defaultTimeZone)
586-
}
587-
588-
LocalDate::class -> convert<DeprecatedInstant> { it.toStdlibInstant().toLocalDate(defaultTimeZone) }
589-
590-
LocalTime::class -> convert<DeprecatedInstant> { it.toStdlibInstant().toLocalTime(defaultTimeZone) }
591-
592-
JavaLocalDateTime::class -> convert<DeprecatedInstant> {
593-
it.toStdlibInstant().toLocalDateTime(defaultTimeZone).toJavaLocalDateTime()
594-
}
595-
596-
JavaLocalDate::class -> convert<DeprecatedInstant> {
597-
it.toStdlibInstant().toLocalDate(defaultTimeZone).toJavaLocalDate()
598-
}
599-
600-
JavaInstant::class -> convert<DeprecatedInstant> { it.toStdlibInstant().toJavaInstant() }
601-
602-
JavaLocalTime::class -> convert<DeprecatedInstant> {
603-
it.toStdlibInstant().toLocalTime(defaultTimeZone).toJavaLocalTime()
604-
}
605-
606-
Instant::class -> convert<DeprecatedInstant> { it.toStdlibInstant() }
607-
608559
else -> null
609560
}
610561

@@ -633,11 +584,6 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
633584
it.toKotlinInstant().toLocalTime(defaultTimeZone).toJavaLocalTime()
634585
}
635586

636-
// #1350
637-
DeprecatedInstant::class -> convert<JavaInstant> {
638-
it.toKotlinInstant().toDeprecatedInstant()
639-
}
640-
641587
else -> null
642588
}
643589

@@ -679,26 +625,13 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
679625

680626
LocalDateTime::class -> when (toClass) {
681627
LocalDate::class -> convert<LocalDateTime> { it.date }
682-
683628
LocalTime::class -> convert<LocalDateTime> { it.time }
684-
685629
Instant::class -> convert<LocalDateTime> { it.toInstant(defaultTimeZone) }
686-
687-
// #1350
688-
DeprecatedInstant::class -> convert<LocalDateTime> {
689-
it.toInstant(defaultTimeZone).toDeprecatedInstant()
690-
}
691-
692630
Long::class -> convert<LocalDateTime> { it.toInstant(defaultTimeZone).toEpochMilliseconds() }
693-
694631
JavaLocalDateTime::class -> convert<LocalDateTime> { it.toJavaLocalDateTime() }
695-
696632
JavaLocalDate::class -> convert<LocalDateTime> { it.date.toJavaLocalDate() }
697-
698633
JavaLocalTime::class -> convert<LocalDateTime> { it.toJavaLocalDateTime().toLocalTime() }
699-
700634
JavaInstant::class -> convert<LocalDateTime> { it.toInstant(defaultTimeZone).toJavaInstant() }
701-
702635
else -> null
703636
}
704637

@@ -713,11 +646,6 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
713646
it.toKotlinLocalDateTime().toInstant(defaultTimeZone)
714647
}
715648

716-
// #1350
717-
DeprecatedInstant::class -> convert<JavaLocalDateTime> {
718-
it.toKotlinLocalDateTime().toInstant(defaultTimeZone).toDeprecatedInstant()
719-
}
720-
721649
Long::class -> convert<JavaLocalDateTime> {
722650
it.toKotlinLocalDateTime().toInstant(defaultTimeZone).toEpochMilliseconds()
723651
}
@@ -735,22 +663,11 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
735663

736664
LocalDate::class -> when (toClass) {
737665
LocalDateTime::class -> convert<LocalDate> { it.atTime(0, 0) }
738-
739666
Instant::class -> convert<LocalDate> { it.atStartOfDayIn(defaultTimeZone) }
740-
741-
// #1350
742-
DeprecatedInstant::class -> convert<LocalDate> {
743-
it.atStartOfDayIn(defaultTimeZone).toDeprecatedInstant()
744-
}
745-
746667
Long::class -> convert<LocalDate> { it.atStartOfDayIn(defaultTimeZone).toEpochMilliseconds() }
747-
748668
JavaLocalDate::class -> convert<LocalDate> { it.toJavaLocalDate() }
749-
750669
JavaLocalDateTime::class -> convert<LocalDate> { it.atTime(0, 0).toJavaLocalDateTime() }
751-
752670
JavaInstant::class -> convert<LocalDate> { it.atStartOfDayIn(defaultTimeZone).toJavaInstant() }
753-
754671
else -> null
755672
}
756673

@@ -763,11 +680,6 @@ internal fun createConverter(from: KType, to: KType, options: ParserOptions? = n
763680
it.toKotlinLocalDate().atStartOfDayIn(defaultTimeZone)
764681
}
765682

766-
// #1350
767-
DeprecatedInstant::class -> convert<JavaLocalDate> {
768-
it.toKotlinLocalDate().atStartOfDayIn(defaultTimeZone).toDeprecatedInstant()
769-
}
770-
771683
Long::class -> convert<JavaLocalDate> {
772684
it.toKotlinLocalDate().atStartOfDayIn(defaultTimeZone).toEpochMilliseconds()
773685
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package org.jetbrains.kotlinx.dataframe.impl.api
22

33
import io.github.oshai.kotlinlogging.KotlinLogging
4+
import kotlinx.datetime.Instant
45
import kotlinx.datetime.LocalDate
56
import kotlinx.datetime.LocalDateTime
67
import kotlinx.datetime.LocalTime
78
import kotlinx.datetime.format.DateTimeComponents
9+
import kotlinx.datetime.toKotlinInstant
810
import kotlinx.datetime.toKotlinLocalDate
911
import kotlinx.datetime.toKotlinLocalDateTime
1012
import kotlinx.datetime.toKotlinLocalTime
@@ -54,8 +56,6 @@ import kotlin.reflect.full.withNullability
5456
import kotlin.reflect.jvm.jvmErasure
5557
import kotlin.reflect.typeOf
5658
import kotlin.time.Duration
57-
import kotlin.time.Instant
58-
import kotlin.time.toKotlinInstant
5959
import kotlin.uuid.ExperimentalUuidApi
6060
import kotlin.uuid.Uuid
6161
import java.time.Duration as JavaDuration
@@ -439,11 +439,11 @@ internal object Parsers : GlobalParserOptions {
439439
stringParser<Int> { it.toIntOrNull() },
440440
// Long
441441
stringParser<Long> { it.toLongOrNull() },
442-
// kotlin.time.Instant
442+
// kotlinx.datetime.Instant
443443
stringParser<Instant> {
444444
it.toInstantOrNull()
445445
},
446-
// java.time.Instant, will be skipped if kotlin.time.Instant is already checked
446+
// java.time.Instant, will be skipped if kotlinx.datetime.Instant is already checked
447447
stringParser<JavaInstant>(coveredBy = setOf(typeOf<Instant>())) {
448448
it.toJavaInstantOrNull()
449449
},

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ private val valueTypes = setOf(
5252
kotlin.time.Duration::class,
5353
kotlinx.datetime.LocalDate::class,
5454
kotlinx.datetime.LocalDateTime::class,
55-
kotlinx.datetime.Instant::class, // #1350
56-
kotlin.time.Instant::class,
55+
kotlinx.datetime.Instant::class,
5756
kotlinx.datetime.TimeZone::class,
5857
kotlinx.datetime.DateTimePeriod::class,
5958
kotlinx.datetime.DateTimeUnit::class,

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jetbrains.kotlinx.dataframe.io
22

3+
import kotlinx.datetime.Instant
34
import kotlinx.datetime.LocalDate
45
import kotlinx.datetime.LocalDateTime
56
import kotlinx.datetime.LocalTime
@@ -15,7 +16,6 @@ import org.jetbrains.kotlinx.dataframe.codeGen.DefaultReadCsvMethod
1516
import org.jetbrains.kotlinx.dataframe.codeGen.DefaultReadDfMethod
1617
import org.jetbrains.kotlinx.dataframe.impl.api.parse
1718
import org.jetbrains.kotlinx.dataframe.impl.io.readDelimImpl
18-
import org.jetbrains.kotlinx.dataframe.io.ColType.String
1919
import org.jetbrains.kotlinx.dataframe.util.APACHE_CSV
2020
import org.jetbrains.kotlinx.dataframe.util.AS_URL
2121
import org.jetbrains.kotlinx.dataframe.util.AS_URL_IMPORT
@@ -59,7 +59,6 @@ import kotlin.reflect.KClass
5959
import kotlin.reflect.KType
6060
import kotlin.reflect.typeOf
6161
import kotlin.time.Duration
62-
import kotlin.time.Instant
6362

6463
@Deprecated(message = APACHE_CSV, level = DeprecationLevel.WARNING)
6564
public class CSV(private val delimiter: Char = ',') : SupportedDataFrameFormat {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@ import io.kotest.matchers.should
44
import io.kotest.matchers.shouldBe
55
import io.kotest.matchers.shouldNotBe
66
import kotlinx.datetime.DateTimeUnit
7+
import kotlinx.datetime.Instant
78
import kotlinx.datetime.LocalDate
89
import kotlinx.datetime.LocalDateTime
910
import kotlinx.datetime.LocalTime
1011
import kotlinx.datetime.Month
1112
import kotlinx.datetime.format.DateTimeComponents
1213
import kotlinx.datetime.plus
14+
import kotlinx.datetime.toJavaInstant
15+
import kotlinx.datetime.toKotlinInstant
1316
import org.jetbrains.kotlinx.dataframe.DataFrame
1417
import org.jetbrains.kotlinx.dataframe.impl.api.Parsers
1518
import org.jetbrains.kotlinx.dataframe.impl.catchSilent
@@ -26,9 +29,6 @@ import kotlin.time.Duration.Companion.milliseconds
2629
import kotlin.time.Duration.Companion.minutes
2730
import kotlin.time.Duration.Companion.nanoseconds
2831
import kotlin.time.Duration.Companion.seconds
29-
import kotlin.time.Instant
30-
import kotlin.time.toJavaInstant
31-
import kotlin.time.toKotlinInstant
3232
import kotlin.uuid.ExperimentalUuidApi
3333
import kotlin.uuid.Uuid
3434
import java.time.Duration as JavaDuration

dataframe-arrow/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowWriterImpl.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ internal class ArrowWriterImpl(
237237
is DateDayVector ->
238238
column.convertToLocalDate()
239239
.forEachIndexed { i, value ->
240-
value?.also { vector.set(i, value.toEpochDays().toInt()) }
240+
value?.also { vector.set(i, value.toEpochDays()) }
241241
?: vector.setNull(i)
242242
}
243243

dataframe-arrow/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowKtTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import kotlinx.datetime.LocalDate
77
import kotlinx.datetime.LocalDateTime
88
import kotlinx.datetime.UtcOffset
99
import kotlinx.datetime.toInstant
10+
import kotlinx.datetime.toJavaInstant
1011
import org.apache.arrow.memory.RootAllocator
1112
import org.apache.arrow.vector.TimeStampMicroVector
1213
import org.apache.arrow.vector.TimeStampMilliVector
@@ -54,7 +55,6 @@ import java.nio.file.FileSystems
5455
import java.sql.DriverManager
5556
import java.util.Locale
5657
import kotlin.reflect.typeOf
57-
import kotlin.time.toJavaInstant
5858

5959
internal class ArrowKtTest {
6060

dataframe-csv/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import io.kotest.assertions.throwables.shouldThrow
66
import io.kotest.matchers.collections.shouldContainInOrder
77
import io.kotest.matchers.nulls.shouldNotBeNull
88
import io.kotest.matchers.shouldBe
9+
import kotlinx.datetime.Instant
910
import kotlinx.datetime.LocalDate
1011
import kotlinx.datetime.LocalDateTime
1112
import org.intellij.lang.annotations.Language
@@ -35,7 +36,6 @@ import java.util.Locale
3536
import java.util.zip.GZIPInputStream
3637
import kotlin.reflect.KClass
3738
import kotlin.reflect.typeOf
38-
import kotlin.time.Instant
3939

4040
// can be enabled for showing logs for these tests
4141
private const val SHOW_LOGS = false

0 commit comments

Comments
 (0)