From 72c95b8b274b62963f2b4728f94d48d13064c834 Mon Sep 17 00:00:00 2001 From: Nikita Klimenko Date: Thu, 26 Sep 2024 17:20:50 +0300 Subject: [PATCH] Partially inline AnyFrame typealias in return type position I noticed that completion pop-up still shows that AnyFrame = DataFrame<*> and it makes it look cluttered --- .../kotlinx/dataframe/api/constructors.kt | 52 +++++++++---------- .../expressions-converter/testData/box/df.txt | 2 +- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/constructors.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/constructors.kt index ae1cc8e88a..992a67e1c9 100644 --- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/constructors.kt +++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/constructors.kt @@ -261,7 +261,7 @@ public inline fun column(values: Iterable): DataColumn = * @throws [UnequalColumnSizesException] if column size are not equal * @param columns columns for [DataFrame] */ -public fun dataFrameOf(columns: Iterable): AnyFrame { +public fun dataFrameOf(columns: Iterable): DataFrame<*> { val cols = columns.map { it.unbox() } val nrow = if (cols.isEmpty()) 0 else cols[0].size return DataFrameImpl(cols, nrow) @@ -269,23 +269,23 @@ public fun dataFrameOf(columns: Iterable): AnyFrame { public fun dataFrameOf(vararg header: ColumnReference<*>): DataFrameBuilder = DataFrameBuilder(header.map { it.name() }) -public fun dataFrameOf(vararg columns: AnyBaseCol): AnyFrame = dataFrameOf(columns.asIterable()) +public fun dataFrameOf(vararg columns: AnyBaseCol): DataFrame<*> = dataFrameOf(columns.asIterable()) @Interpretable("DataFrameOf0") public fun dataFrameOf(vararg header: String): DataFrameBuilder = dataFrameOf(header.toList()) -public inline fun dataFrameOf(vararg header: String, fill: (String) -> Iterable): AnyFrame = +public inline fun dataFrameOf(vararg header: String, fill: (String) -> Iterable): DataFrame<*> = dataFrameOf(header.asIterable(), fill) public fun dataFrameOf(header: Iterable): DataFrameBuilder = DataFrameBuilder(header.asList()) -public fun dataFrameOf(vararg columns: Pair>): AnyFrame = +public fun dataFrameOf(vararg columns: Pair>): DataFrame<*> = columns.map { it.second.toColumn(it.first, Infer.Type) }.toDataFrame() -public fun dataFrameOf(header: Iterable, values: Iterable): AnyFrame = +public fun dataFrameOf(header: Iterable, values: Iterable): DataFrame<*> = dataFrameOf(header).withValues(values) -public inline fun dataFrameOf(header: Iterable, fill: (T) -> Iterable): AnyFrame = +public inline fun dataFrameOf(header: Iterable, fill: (T) -> Iterable): DataFrame<*> = header.map { value -> fill(value).asList().let { DataColumn.create(value.toString(), it) @@ -296,9 +296,9 @@ public fun dataFrameOf(header: CharProgression): DataFrameBuilder = dataFrameOf( public class DataFrameBuilder(private val header: List) { - public operator fun invoke(vararg columns: AnyCol): AnyFrame = invoke(columns.asIterable()) + public operator fun invoke(vararg columns: AnyCol): DataFrame<*> = invoke(columns.asIterable()) - public operator fun invoke(columns: Iterable): AnyFrame { + public operator fun invoke(columns: Iterable): DataFrame<*> { val cols = columns.asList() require(cols.size == header.size) { "Number of columns differs from number of column names" } return cols.mapIndexed { i, col -> @@ -308,19 +308,19 @@ public class DataFrameBuilder(private val header: List) { @Refine @Interpretable("DataFrameBuilderInvoke0") - public operator fun invoke(vararg values: Any?): AnyFrame = withValues(values.asIterable()) + public operator fun invoke(vararg values: Any?): DataFrame<*> = withValues(values.asIterable()) @JvmName("invoke1") - internal fun withValues(values: Iterable): AnyFrame = + internal fun withValues(values: Iterable): DataFrame<*> = withValuesImpl(header, values.asList()).map { (name, values) -> DataColumn.createWithTypeInference(name, values) }.toDataFrame() - public operator fun invoke(args: Sequence): AnyFrame = invoke(*args.toList().toTypedArray()) + public operator fun invoke(args: Sequence): DataFrame<*> = invoke(*args.toList().toTypedArray()) - public fun withColumns(columnBuilder: (String) -> AnyCol): AnyFrame = header.map(columnBuilder).toDataFrame() + public fun withColumns(columnBuilder: (String) -> AnyCol): DataFrame<*> = header.map(columnBuilder).toDataFrame() - public inline operator fun invoke(crossinline valuesBuilder: (String) -> Iterable): AnyFrame = + public inline operator fun invoke(crossinline valuesBuilder: (String) -> Iterable): DataFrame<*> = withColumns { name -> valuesBuilder(name).let { DataColumn.create( @@ -330,7 +330,7 @@ public class DataFrameBuilder(private val header: List) { } } - public inline fun fill(nrow: Int, value: C): AnyFrame = + public inline fun fill(nrow: Int, value: C): DataFrame<*> = withColumns { name -> DataColumn.createValueColumn( name = name, @@ -339,9 +339,9 @@ public class DataFrameBuilder(private val header: List) { ) } - public inline fun nulls(nrow: Int): AnyFrame = fill(nrow, null) + public inline fun nulls(nrow: Int): DataFrame<*> = fill(nrow, null) - public inline fun fillIndexed(nrow: Int, crossinline init: (Int, String) -> C): AnyFrame = + public inline fun fillIndexed(nrow: Int, crossinline init: (Int, String) -> C): DataFrame<*> = withColumns { name -> DataColumn.create( name, @@ -349,7 +349,7 @@ public class DataFrameBuilder(private val header: List) { ) } - public inline fun fill(nrow: Int, crossinline init: (Int) -> C): AnyFrame = + public inline fun fill(nrow: Int, crossinline init: (Int) -> C): DataFrame<*> = withColumns { name -> DataColumn.create( name = name, @@ -366,23 +366,23 @@ public class DataFrameBuilder(private val header: List) { ) } - public fun randomInt(nrow: Int): AnyFrame = fillNotNull(nrow) { Random.nextInt() } + public fun randomInt(nrow: Int): DataFrame<*> = fillNotNull(nrow) { Random.nextInt() } - public fun randomInt(nrow: Int, range: IntRange): AnyFrame = fillNotNull(nrow) { Random.nextInt(range) } + public fun randomInt(nrow: Int, range: IntRange): DataFrame<*> = fillNotNull(nrow) { Random.nextInt(range) } - public fun randomDouble(nrow: Int): AnyFrame = fillNotNull(nrow) { Random.nextDouble() } + public fun randomDouble(nrow: Int): DataFrame<*> = fillNotNull(nrow) { Random.nextDouble() } - public fun randomDouble(nrow: Int, range: ClosedRange): AnyFrame = + public fun randomDouble(nrow: Int, range: ClosedRange): DataFrame<*> = fillNotNull(nrow) { Random.nextDouble(range.start, range.endInclusive) } - public fun randomFloat(nrow: Int): AnyFrame = fillNotNull(nrow) { Random.nextFloat() } + public fun randomFloat(nrow: Int): DataFrame<*> = fillNotNull(nrow) { Random.nextFloat() } - public fun randomLong(nrow: Int): AnyFrame = fillNotNull(nrow) { Random.nextLong() } + public fun randomLong(nrow: Int): DataFrame<*> = fillNotNull(nrow) { Random.nextLong() } - public fun randomLong(nrow: Int, range: ClosedRange): AnyFrame = + public fun randomLong(nrow: Int, range: ClosedRange): DataFrame<*> = fillNotNull(nrow) { Random.nextLong(range.start, range.endInclusive) } - public fun randomBoolean(nrow: Int): AnyFrame = fillNotNull(nrow) { Random.nextBoolean() } + public fun randomBoolean(nrow: Int): DataFrame<*> = fillNotNull(nrow) { Random.nextBoolean() } } /** @@ -408,7 +408,7 @@ public class DynamicDataFrameBuilder { return uniqueName } - public fun toDataFrame(): AnyFrame = dataFrameOf(cols) + public fun toDataFrame(): DataFrame<*> = dataFrameOf(cols) } /** diff --git a/plugins/expressions-converter/testData/box/df.txt b/plugins/expressions-converter/testData/box/df.txt index da7bb5879e..64d1474b13 100644 --- a/plugins/expressions-converter/testData/box/df.txt +++ b/plugins/expressions-converter/testData/box/df.txt @@ -45,7 +45,7 @@ package org { public final class Wrapper { public constructor Wrapper() - public final val df: org.jetbrains.kotlinx.dataframe.AnyFrame /* = org.jetbrains.kotlinx.dataframe.DataFrame<*> */ + public final val df: org.jetbrains.kotlinx.dataframe.DataFrame<*> public final val typed: org.jetbrains.kotlinx.dataframe.DataFrame public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @org.jetbrains.kotlinx.dataframe.explainer.TransformDataFrameExpressions public final fun ff(): kotlin.Unit