diff --git a/core/build.gradle.kts b/core/build.gradle.kts index f3de79f226..e7d0f7207f 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -365,6 +365,7 @@ kotlin { tasks.withType { compilerOptions { optIn.addAll("kotlin.RequiresOptIn") + optIn.addAll("kotlin.time.ExperimentalTime") freeCompilerArgs.addAll("-Xinline-classes") freeCompilerArgs.addAll("-Xjvm-default=all") } diff --git a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt index 9a3142743c..65ceb26360 100644 --- a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt +++ b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt @@ -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 @@ -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 diff --git a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt index 6a72bba2f0..4ac8032eb6 100644 --- a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt +++ b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt @@ -1,6 +1,7 @@ +@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 @@ -8,11 +9,9 @@ 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 @@ -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 diff --git a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/parse.kt b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/parse.kt index 827df998fd..7816769a90 100644 --- a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/parse.kt +++ b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/parse.kt @@ -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 @@ -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 @@ -439,11 +442,11 @@ internal object Parsers : GlobalParserOptions { stringParser { it.toIntOrNull() }, // Long stringParser { it.toLongOrNull() }, - // kotlinx.datetime.Instant + // kotlin.time.Instant stringParser { 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(coveredBy = setOf(typeOf())) { it.toJavaInstantOrNull() }, diff --git a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/toDataFrame.kt b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/toDataFrame.kt index 9d213b2c0f..0885cc91f3 100644 --- a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/toDataFrame.kt +++ b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/toDataFrame.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalTime::class) + package org.jetbrains.kotlinx.dataframe.impl.api import org.jetbrains.kotlinx.dataframe.AnyBaseCol @@ -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( @@ -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, diff --git a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt index fc370459af..8fdc1e525c 100644 --- a/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt +++ b/core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt @@ -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 @@ -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 { diff --git a/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt b/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt index 47c49736db..2c170100ee 100644 --- a/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt +++ b/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt @@ -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 @@ -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 { diff --git a/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt b/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt index 0350b8ab71..74b55d4c5d 100644 --- a/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt +++ b/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt @@ -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 @@ -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 diff --git a/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt b/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt index 79be7aeae3..b41313d6e9 100644 --- a/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt +++ b/core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalTime::class) + package org.jetbrains.kotlinx.dataframe.api import io.kotest.assertions.throwables.shouldNotThrowAny @@ -5,7 +7,6 @@ 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 @@ -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 { diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt index 9569b9a196..a03f3263ca 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt @@ -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 @@ -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 diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt index 6a72bba2f0..4ac8032eb6 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/convert.kt @@ -1,6 +1,7 @@ +@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 @@ -8,11 +9,9 @@ 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 @@ -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 diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/parse.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/parse.kt index 827df998fd..7816769a90 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/parse.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/parse.kt @@ -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 @@ -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 @@ -439,11 +442,11 @@ internal object Parsers : GlobalParserOptions { stringParser { it.toIntOrNull() }, // Long stringParser { it.toLongOrNull() }, - // kotlinx.datetime.Instant + // kotlin.time.Instant stringParser { 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(coveredBy = setOf(typeOf())) { it.toJavaInstantOrNull() }, diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/toDataFrame.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/toDataFrame.kt index 9d213b2c0f..0885cc91f3 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/toDataFrame.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/toDataFrame.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalTime::class) + package org.jetbrains.kotlinx.dataframe.impl.api import org.jetbrains.kotlinx.dataframe.AnyBaseCol @@ -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( @@ -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, diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt index fc370459af..8fdc1e525c 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/csv.kt @@ -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 @@ -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 { diff --git a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt index 47c49736db..2c170100ee 100644 --- a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt +++ b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt @@ -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 @@ -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 { diff --git a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt index 0350b8ab71..74b55d4c5d 100644 --- a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt +++ b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt @@ -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 @@ -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 diff --git a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt index 79be7aeae3..b41313d6e9 100644 --- a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt +++ b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalTime::class) + package org.jetbrains.kotlinx.dataframe.api import io.kotest.assertions.throwables.shouldNotThrowAny @@ -5,7 +7,6 @@ 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 @@ -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 { diff --git a/dataframe-arrow/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowWriterImpl.kt b/dataframe-arrow/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowWriterImpl.kt index ff3e7ea064..e7f4d56347 100644 --- a/dataframe-arrow/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowWriterImpl.kt +++ b/dataframe-arrow/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowWriterImpl.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalTime::class) + package org.jetbrains.kotlinx.dataframe.io import kotlinx.datetime.TimeZone @@ -55,6 +57,7 @@ import org.jetbrains.kotlinx.dataframe.name import org.jetbrains.kotlinx.dataframe.values import kotlin.reflect.full.isSubtypeOf import kotlin.reflect.typeOf +import kotlin.time.ExperimentalTime /** * Save [dataFrame] content in Apache Arrow format (can be written to File, ByteArray, OutputStream or raw Channel) with [targetSchema]. @@ -237,7 +240,7 @@ internal class ArrowWriterImpl( is DateDayVector -> column.convertToLocalDate() .forEachIndexed { i, value -> - value?.also { vector.set(i, value.toEpochDays()) } + value?.also { vector.set(i, value.toEpochDays().toInt()) } ?: vector.setNull(i) } diff --git a/dataframe-arrow/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowKtTest.kt b/dataframe-arrow/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowKtTest.kt index 86cc63cfc2..af4d08bcd6 100644 --- a/dataframe-arrow/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowKtTest.kt +++ b/dataframe-arrow/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowKtTest.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalTime::class) + package org.jetbrains.kotlinx.dataframe.io import io.kotest.assertions.throwables.shouldThrow @@ -7,7 +9,6 @@ import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDateTime import kotlinx.datetime.UtcOffset import kotlinx.datetime.toInstant -import kotlinx.datetime.toJavaInstant import org.apache.arrow.memory.RootAllocator import org.apache.arrow.vector.TimeStampMicroVector import org.apache.arrow.vector.TimeStampMilliVector @@ -55,6 +56,8 @@ import java.nio.file.FileSystems import java.sql.DriverManager import java.util.Locale import kotlin.reflect.typeOf +import kotlin.time.ExperimentalTime +import kotlin.time.toJavaInstant internal class ArrowKtTest { diff --git a/dataframe-csv/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readDelim.kt b/dataframe-csv/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readDelim.kt index 3ef98a4f96..d50d8af064 100644 --- a/dataframe-csv/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readDelim.kt +++ b/dataframe-csv/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readDelim.kt @@ -1,4 +1,5 @@ @file:JvmName("ReadDelimDeephavenKt") +@file:OptIn(ExperimentalTime::class) package org.jetbrains.kotlinx.dataframe.impl.io @@ -19,7 +20,6 @@ import io.deephaven.csv.parsers.Parser import io.deephaven.csv.parsers.Parsers import io.deephaven.csv.reading.CsvReader import io.deephaven.csv.util.CsvReaderException -import kotlinx.datetime.Instant import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDateTime import kotlinx.datetime.LocalTime @@ -49,6 +49,8 @@ import kotlin.reflect.KType import kotlin.reflect.full.withNullability import kotlin.reflect.typeOf import kotlin.time.Duration +import kotlin.time.ExperimentalTime +import kotlin.time.Instant /** * Implementation to read delimiter-separated data from an [InputStream] based on the Deephaven CSV library. diff --git a/dataframe-csv/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt b/dataframe-csv/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt index 153e26553f..5765c3217a 100644 --- a/dataframe-csv/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt +++ b/dataframe-csv/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalTime::class) + package org.jetbrains.kotlinx.dataframe.io import io.deephaven.csv.parsers.Parsers @@ -6,7 +8,6 @@ import io.kotest.assertions.throwables.shouldThrow import io.kotest.matchers.collections.shouldContainInOrder import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.shouldBe -import kotlinx.datetime.Instant import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDateTime import org.intellij.lang.annotations.Language @@ -36,6 +37,8 @@ import java.util.Locale import java.util.zip.GZIPInputStream import kotlin.reflect.KClass import kotlin.reflect.typeOf +import kotlin.time.ExperimentalTime +import kotlin.time.Instant // can be enabled for showing logs for these tests private const val SHOW_LOGS = false diff --git a/dataframe-csv/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readDelim.kt b/dataframe-csv/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readDelim.kt index 4324d12998..228ce7413f 100644 --- a/dataframe-csv/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readDelim.kt +++ b/dataframe-csv/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readDelim.kt @@ -1,4 +1,5 @@ @file:JvmName("ReadDelimDeephavenKt") +@file:OptIn(ExperimentalTime::class) package org.jetbrains.kotlinx.dataframe.impl.io @@ -19,7 +20,6 @@ import io.deephaven.csv.parsers.Parser import io.deephaven.csv.parsers.Parsers import io.deephaven.csv.reading.CsvReader import io.deephaven.csv.util.CsvReaderException -import kotlinx.datetime.Instant import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDateTime import kotlinx.datetime.LocalTime @@ -66,6 +66,8 @@ import kotlin.reflect.KType import kotlin.reflect.full.withNullability import kotlin.reflect.typeOf import kotlin.time.Duration +import kotlin.time.ExperimentalTime +import kotlin.time.Instant /** * Implementation to read delimiter-separated data from an [InputStream] based on the Deephaven CSV library. diff --git a/dataframe-csv/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt b/dataframe-csv/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt index 153e26553f..5765c3217a 100644 --- a/dataframe-csv/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt +++ b/dataframe-csv/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/DelimCsvTsvTests.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalTime::class) + package org.jetbrains.kotlinx.dataframe.io import io.deephaven.csv.parsers.Parsers @@ -6,7 +8,6 @@ import io.kotest.assertions.throwables.shouldThrow import io.kotest.matchers.collections.shouldContainInOrder import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.shouldBe -import kotlinx.datetime.Instant import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDateTime import org.intellij.lang.annotations.Language @@ -36,6 +37,8 @@ import java.util.Locale import java.util.zip.GZIPInputStream import kotlin.reflect.KClass import kotlin.reflect.typeOf +import kotlin.time.ExperimentalTime +import kotlin.time.Instant // can be enabled for showing logs for these tests private const val SHOW_LOGS = false diff --git a/dataframe-jupyter/src/main/kotlin/org/jetbrains/kotlinx/dataframe/jupyter/Integration.kt b/dataframe-jupyter/src/main/kotlin/org/jetbrains/kotlinx/dataframe/jupyter/Integration.kt index 9b8a1ce916..f35f4ccbe2 100644 --- a/dataframe-jupyter/src/main/kotlin/org/jetbrains/kotlinx/dataframe/jupyter/Integration.kt +++ b/dataframe-jupyter/src/main/kotlin/org/jetbrains/kotlinx/dataframe/jupyter/Integration.kt @@ -286,7 +286,7 @@ internal class Integration(private val notebook: Notebook, private val options: import("java.net.URL") import("java.net.URI") import("java.io.File") - import("kotlinx.datetime.Instant") + import("kotlin.time.Instant") import("kotlinx.datetime.LocalDateTime") import("kotlinx.datetime.LocalDate") import("org.jetbrains.kotlinx.dataframe.dataTypes.*") diff --git a/examples/idea-examples/youtube/src/main/kotlin/org/jetbrains/kotlinx/dataframe/examples/youtube/youtube.kt b/examples/idea-examples/youtube/src/main/kotlin/org/jetbrains/kotlinx/dataframe/examples/youtube/youtube.kt index b2dfe39c82..da4f56b0e4 100644 --- a/examples/idea-examples/youtube/src/main/kotlin/org/jetbrains/kotlinx/dataframe/examples/youtube/youtube.kt +++ b/examples/idea-examples/youtube/src/main/kotlin/org/jetbrains/kotlinx/dataframe/examples/youtube/youtube.kt @@ -6,10 +6,11 @@ "StatisticsResponse", "src/main/resources/statisticsResponse.json", ) +@file:OptIn(ExperimentalTime::class) package org.jetbrains.kotlinx.dataframe.examples.youtube -import kotlinx.datetime.Instant +import kotlin.time.Instant import org.jetbrains.kotlinx.dataframe.AnyFrame import org.jetbrains.kotlinx.dataframe.AnyRow import org.jetbrains.kotlinx.dataframe.DataRow @@ -19,6 +20,7 @@ import org.jetbrains.kotlinx.dataframe.dataTypes.IFRAME import org.jetbrains.kotlinx.dataframe.dataTypes.IMG import org.jetbrains.kotlinx.dataframe.io.read import java.net.URL +import kotlin.time.ExperimentalTime fun load(path: String) = DataRow.read("$basePath/$path&key=$apiKey") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 767ba9bbeb..1754d8e793 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -33,7 +33,7 @@ mysql = "9.1.0" postgresql = "42.7.4" sqlite = "3.47.1.0" jtsCore = "1.19.0" -kotlinDatetime = "0.6.1" +kotlinDatetime = "0.7.1" openapi = "2.1.24" kotlinLogging = "7.0.3" sl4j = "2.0.16" diff --git a/plugins/kotlin-dataframe/testData/box/toDataFrame.kt b/plugins/kotlin-dataframe/testData/box/toDataFrame.kt index b984471758..13d4bc5232 100644 --- a/plugins/kotlin-dataframe/testData/box/toDataFrame.kt +++ b/plugins/kotlin-dataframe/testData/box/toDataFrame.kt @@ -1,5 +1,5 @@ import kotlinx.datetime.Clock -import kotlinx.datetime.Instant +import kotlin.time.Instant import org.jetbrains.kotlinx.dataframe.* import org.jetbrains.kotlinx.dataframe.annotations.* import org.jetbrains.kotlinx.dataframe.api.*