Skip to content

Migration to kotlin.time.Instant and kotlinx-datetime 0.7.1 #1373

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
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
1 change: 1 addition & 0 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,7 @@ kotlin {
tasks.withType<KotlinCompile> {
compilerOptions {
optIn.addAll("kotlin.RequiresOptIn")
optIn.addAll("kotlin.time.ExperimentalTime")
freeCompilerArgs.addAll("-Xinline-classes")
freeCompilerArgs.addAll("-Xjvm-default=all")
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.api

import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
Expand Down Expand Up @@ -56,6 +57,8 @@ import kotlin.reflect.KProperty
import kotlin.reflect.KType
import kotlin.reflect.full.isSubtypeOf
import kotlin.reflect.typeOf
import kotlin.time.ExperimentalTime
import kotlin.time.Instant

/**
* See also [parse] — a specialized form of the [convert] operation that parses [String] columns
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.impl.api

import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
import kotlinx.datetime.TimeZone
import kotlinx.datetime.atStartOfDayIn
import kotlinx.datetime.atTime
import kotlinx.datetime.toInstant
import kotlinx.datetime.toJavaInstant
import kotlinx.datetime.toJavaLocalDate
import kotlinx.datetime.toJavaLocalDateTime
import kotlinx.datetime.toJavaLocalTime
import kotlinx.datetime.toKotlinInstant
import kotlinx.datetime.toKotlinLocalDate
import kotlinx.datetime.toKotlinLocalDateTime
import kotlinx.datetime.toKotlinLocalTime
Expand Down Expand Up @@ -57,6 +56,10 @@ import kotlin.reflect.full.withNullability
import kotlin.reflect.jvm.jvmErasure
import kotlin.reflect.typeOf
import kotlin.text.trim
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import kotlin.time.toJavaInstant
import kotlin.time.toKotlinInstant
import kotlin.toBigDecimal
import java.time.Instant as JavaInstant
import java.time.LocalDate as JavaLocalDate
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.impl.api

import io.github.oshai.kotlinlogging.KotlinLogging
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
import kotlinx.datetime.format.DateTimeComponents
import kotlinx.datetime.toKotlinInstant
import kotlinx.datetime.toKotlinLocalDate
import kotlinx.datetime.toKotlinLocalDateTime
import kotlinx.datetime.toKotlinLocalTime
Expand Down Expand Up @@ -56,6 +56,9 @@ import kotlin.reflect.full.withNullability
import kotlin.reflect.jvm.jvmErasure
import kotlin.reflect.typeOf
import kotlin.time.Duration
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import kotlin.time.toKotlinInstant
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.Uuid
import java.time.Duration as JavaDuration
Expand Down Expand Up @@ -439,11 +442,11 @@ internal object Parsers : GlobalParserOptions {
stringParser<Int> { it.toIntOrNull() },
// Long
stringParser<Long> { it.toLongOrNull() },
// kotlinx.datetime.Instant
// kotlin.time.Instant
stringParser<Instant> {
it.toInstantOrNull()
},
// java.time.Instant, will be skipped if kotlinx.datetime.Instant is already checked
// java.time.Instant, will be skipped if kotlin.time.Instant is already checked
stringParser<JavaInstant>(coveredBy = setOf(typeOf<Instant>())) {
it.toJavaInstantOrNull()
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.impl.api

import org.jetbrains.kotlinx.dataframe.AnyBaseCol
Expand Down Expand Up @@ -37,6 +39,7 @@ import kotlin.reflect.full.withNullability
import kotlin.reflect.jvm.isAccessible
import kotlin.reflect.jvm.javaField
import kotlin.reflect.typeOf
import kotlin.time.ExperimentalTime

// non-standard value types (not supertypes, but exact types)
private val valueTypes = setOf(
Expand All @@ -52,7 +55,7 @@ private val valueTypes = setOf(
kotlin.time.Duration::class,
kotlinx.datetime.LocalDate::class,
kotlinx.datetime.LocalDateTime::class,
kotlinx.datetime.Instant::class,
kotlin.time.Instant::class,
kotlinx.datetime.TimeZone::class,
kotlinx.datetime.DateTimePeriod::class,
kotlinx.datetime.DateTimeUnit::class,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.io

import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
Expand Down Expand Up @@ -59,6 +60,8 @@ import kotlin.reflect.KClass
import kotlin.reflect.KType
import kotlin.reflect.typeOf
import kotlin.time.Duration
import kotlin.time.ExperimentalTime
import kotlin.time.Instant

@Deprecated(message = APACHE_CSV, level = DeprecationLevel.WARNING)
public class CSV(private val delimiter: Char = ',') : SupportedDataFrameFormat {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.api

import io.kotest.assertions.throwables.shouldNotThrow
import io.kotest.assertions.throwables.shouldThrow
import io.kotest.matchers.shouldBe
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalTime
import org.jetbrains.kotlinx.dataframe.ColumnsContainer
import org.jetbrains.kotlinx.dataframe.DataColumn
Expand All @@ -25,7 +25,10 @@ import kotlin.math.roundToLong
import kotlin.random.Random
import kotlin.reflect.full.starProjectedType
import kotlin.reflect.typeOf
import kotlin.time.Clock
import kotlin.time.Duration.Companion.hours
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import java.time.LocalTime as JavaLocalTime

class ConvertTests {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.api

import io.kotest.matchers.should
import io.kotest.matchers.shouldBe
import io.kotest.matchers.shouldNotBe
import kotlinx.datetime.DateTimeUnit
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
import kotlinx.datetime.Month
import kotlinx.datetime.format.DateTimeComponents
import kotlinx.datetime.plus
import kotlinx.datetime.toJavaInstant
import kotlinx.datetime.toKotlinInstant
import org.jetbrains.kotlinx.dataframe.DataFrame
import org.jetbrains.kotlinx.dataframe.impl.api.Parsers
import org.jetbrains.kotlinx.dataframe.impl.catchSilent
Expand All @@ -29,6 +28,10 @@ import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.nanoseconds
import kotlin.time.Duration.Companion.seconds
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import kotlin.time.toJavaInstant
import kotlin.time.toKotlinInstant
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.Uuid
import java.time.Duration as JavaDuration
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.api

import io.kotest.assertions.throwables.shouldNotThrowAny
import io.kotest.matchers.shouldBe
import kotlinx.datetime.DateTimePeriod
import kotlinx.datetime.DateTimeUnit
import kotlinx.datetime.DayOfWeek
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.Month
Expand All @@ -26,6 +27,8 @@ import java.time.temporal.Temporal
import kotlin.collections.toTypedArray
import kotlin.reflect.KProperty
import kotlin.reflect.typeOf
import kotlin.time.ExperimentalTime
import kotlin.time.Instant

class CreateDataFrameTests {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.api

import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
Expand Down Expand Up @@ -64,6 +65,8 @@ import kotlin.reflect.KProperty
import kotlin.reflect.KType
import kotlin.reflect.full.isSubtypeOf
import kotlin.reflect.typeOf
import kotlin.time.ExperimentalTime
import kotlin.time.Instant

/**
* See also [parse] — a specialized form of the [convert] operation that parses [String] columns
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.impl.api

import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
import kotlinx.datetime.TimeZone
import kotlinx.datetime.atStartOfDayIn
import kotlinx.datetime.atTime
import kotlinx.datetime.toInstant
import kotlinx.datetime.toJavaInstant
import kotlinx.datetime.toJavaLocalDate
import kotlinx.datetime.toJavaLocalDateTime
import kotlinx.datetime.toJavaLocalTime
import kotlinx.datetime.toKotlinInstant
import kotlinx.datetime.toKotlinLocalDate
import kotlinx.datetime.toKotlinLocalDateTime
import kotlinx.datetime.toKotlinLocalTime
Expand Down Expand Up @@ -57,6 +56,10 @@ import kotlin.reflect.full.withNullability
import kotlin.reflect.jvm.jvmErasure
import kotlin.reflect.typeOf
import kotlin.text.trim
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import kotlin.time.toJavaInstant
import kotlin.time.toKotlinInstant
import kotlin.toBigDecimal
import java.time.Instant as JavaInstant
import java.time.LocalDate as JavaLocalDate
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.impl.api

import io.github.oshai.kotlinlogging.KotlinLogging
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
import kotlinx.datetime.format.DateTimeComponents
import kotlinx.datetime.toKotlinInstant
import kotlinx.datetime.toKotlinLocalDate
import kotlinx.datetime.toKotlinLocalDateTime
import kotlinx.datetime.toKotlinLocalTime
Expand Down Expand Up @@ -56,6 +56,9 @@ import kotlin.reflect.full.withNullability
import kotlin.reflect.jvm.jvmErasure
import kotlin.reflect.typeOf
import kotlin.time.Duration
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import kotlin.time.toKotlinInstant
import kotlin.uuid.ExperimentalUuidApi
import kotlin.uuid.Uuid
import java.time.Duration as JavaDuration
Expand Down Expand Up @@ -439,11 +442,11 @@ internal object Parsers : GlobalParserOptions {
stringParser<Int> { it.toIntOrNull() },
// Long
stringParser<Long> { it.toLongOrNull() },
// kotlinx.datetime.Instant
// kotlin.time.Instant
stringParser<Instant> {
it.toInstantOrNull()
},
// java.time.Instant, will be skipped if kotlinx.datetime.Instant is already checked
// java.time.Instant, will be skipped if kotlin.time.Instant is already checked
stringParser<JavaInstant>(coveredBy = setOf(typeOf<Instant>())) {
it.toJavaInstantOrNull()
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.impl.api

import org.jetbrains.kotlinx.dataframe.AnyBaseCol
Expand Down Expand Up @@ -37,6 +39,7 @@ import kotlin.reflect.full.withNullability
import kotlin.reflect.jvm.isAccessible
import kotlin.reflect.jvm.javaField
import kotlin.reflect.typeOf
import kotlin.time.ExperimentalTime

// non-standard value types (not supertypes, but exact types)
private val valueTypes = setOf(
Expand All @@ -52,7 +55,7 @@ private val valueTypes = setOf(
kotlin.time.Duration::class,
kotlinx.datetime.LocalDate::class,
kotlinx.datetime.LocalDateTime::class,
kotlinx.datetime.Instant::class,
kotlin.time.Instant::class,
kotlinx.datetime.TimeZone::class,
kotlinx.datetime.DateTimePeriod::class,
kotlinx.datetime.DateTimeUnit::class,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.io

import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalTime
Expand Down Expand Up @@ -59,6 +60,8 @@ import kotlin.reflect.KClass
import kotlin.reflect.KType
import kotlin.reflect.typeOf
import kotlin.time.Duration
import kotlin.time.ExperimentalTime
import kotlin.time.Instant

@Deprecated(message = APACHE_CSV, level = DeprecationLevel.WARNING)
public class CSV(private val delimiter: Char = ',') : SupportedDataFrameFormat {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@file:OptIn(ExperimentalTime::class)

package org.jetbrains.kotlinx.dataframe.api

import io.kotest.assertions.throwables.shouldNotThrow
import io.kotest.assertions.throwables.shouldThrow
import io.kotest.matchers.shouldBe
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalTime
import org.jetbrains.kotlinx.dataframe.ColumnsContainer
import org.jetbrains.kotlinx.dataframe.DataColumn
Expand All @@ -25,7 +25,10 @@ import kotlin.math.roundToLong
import kotlin.random.Random
import kotlin.reflect.full.starProjectedType
import kotlin.reflect.typeOf
import kotlin.time.Clock
import kotlin.time.Duration.Companion.hours
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
import java.time.LocalTime as JavaLocalTime

class ConvertTests {
Expand Down
Loading