Skip to content

Commit 2472d17

Browse files
inline functions
1 parent 5ced6a0 commit 2472d17

38 files changed

+163
-87
lines changed

core/api/core.api

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ public final class org/jetbrains/kotlinx/dataframe/DataFrameKt {
104104
public static final fun get (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)Ljava/util/List;
105105
public static final fun get (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/ranges/ClosedRange;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
106106
public static final fun get (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
107+
public static final fun getIndices (Lorg/jetbrains/kotlinx/dataframe/DataFrame;)Lkotlin/ranges/IntRange;
107108
public static final fun size (Lorg/jetbrains/kotlinx/dataframe/DataFrame;)Lorg/jetbrains/kotlinx/dataframe/impl/DataFrameSize;
108109
}
109110

@@ -163,6 +164,10 @@ public final class org/jetbrains/kotlinx/dataframe/DataRow$Companion {
163164
public final fun getEmpty ()Lorg/jetbrains/kotlinx/dataframe/DataRow;
164165
}
165166

167+
public final class org/jetbrains/kotlinx/dataframe/DataRowKt {
168+
public static final fun getIndex (Lorg/jetbrains/kotlinx/dataframe/DataRow;)I
169+
}
170+
166171
public abstract interface class org/jetbrains/kotlinx/dataframe/aggregation/Aggregatable {
167172
}
168173

@@ -314,6 +319,7 @@ public final class org/jetbrains/kotlinx/dataframe/api/AddDsl : org/jetbrains/ko
314319
public fun getColumnOrNull (Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/DataColumn;
315320
public fun getColumnOrNull (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnPath;)Lorg/jetbrains/kotlinx/dataframe/DataColumn;
316321
public fun getColumnOrNull (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/DataColumn;
322+
public final fun getColumns ()Ljava/util/List;
317323
public final fun getDf ()Lorg/jetbrains/kotlinx/dataframe/DataFrame;
318324
public final fun group (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
319325
public final fun group (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/api/AddGroup;
@@ -592,8 +598,14 @@ public abstract interface class org/jetbrains/kotlinx/dataframe/api/AllExceptCol
592598
public final class org/jetbrains/kotlinx/dataframe/api/AllKt {
593599
public static final fun all (Lorg/jetbrains/kotlinx/dataframe/DataColumn;Lkotlin/jvm/functions/Function1;)Z
594600
public static final fun all (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)Z
601+
public static final fun allAfterInternal (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnsResolver;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnSet;
602+
public static final fun allBeforeInternal (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnsResolver;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnSet;
603+
public static final fun allColumnsInternal (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnsResolver;Z)Lorg/jetbrains/kotlinx/dataframe/impl/columns/TransformableColumnSet;
604+
public static synthetic fun allColumnsInternal$default (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnsResolver;ZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/impl/columns/TransformableColumnSet;
605+
public static final fun allFromInternal (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnsResolver;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnSet;
595606
public static final fun allNA (Lorg/jetbrains/kotlinx/dataframe/DataRow;)Z
596607
public static final fun allNulls (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Z
608+
public static final fun allUpToInternal (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnsResolver;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnSet;
597609
}
598610

599611
public abstract interface class org/jetbrains/kotlinx/dataframe/api/AndColumnsSelectionDsl {
@@ -1023,6 +1035,10 @@ public abstract interface class org/jetbrains/kotlinx/dataframe/api/ColsInGroups
10231035
public abstract interface class org/jetbrains/kotlinx/dataframe/api/ColsInGroupsColumnsSelectionDsl$Grammar$PlainDslName {
10241036
}
10251037

1038+
public final class org/jetbrains/kotlinx/dataframe/api/ColsKt {
1039+
public static final fun colsInternal (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnsResolver;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/impl/columns/TransformableColumnSet;
1040+
}
1041+
10261042
public abstract interface class org/jetbrains/kotlinx/dataframe/api/ColsOfColumnsSelectionDsl {
10271043
public fun colsOf (Ljava/lang/String;Lkotlin/reflect/KType;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnSet;
10281044
public fun colsOf (Lkotlin/reflect/KProperty;Lkotlin/reflect/KType;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnSet;
@@ -3678,6 +3694,8 @@ public final class org/jetbrains/kotlinx/dataframe/api/SortKt {
36783694
public final class org/jetbrains/kotlinx/dataframe/api/Split {
36793695
public fun <init> (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)V
36803696
public final fun cast ()Lorg/jetbrains/kotlinx/dataframe/api/Split;
3697+
public final fun getColumns ()Lkotlin/jvm/functions/Function2;
3698+
public final fun getDf ()Lorg/jetbrains/kotlinx/dataframe/DataFrame;
36813699
public fun toString ()Ljava/lang/String;
36823700
}
36833701

@@ -4568,6 +4586,10 @@ public abstract interface class org/jetbrains/kotlinx/dataframe/columns/BaseColu
45684586
public abstract fun values ()Ljava/lang/Iterable;
45694587
}
45704588

4589+
public final class org/jetbrains/kotlinx/dataframe/columns/BaseColumnKt {
4590+
public static final fun getValues (Lorg/jetbrains/kotlinx/dataframe/columns/BaseColumn;)Ljava/lang/Iterable;
4591+
}
4592+
45714593
public abstract interface class org/jetbrains/kotlinx/dataframe/columns/ColumnAccessor : org/jetbrains/kotlinx/dataframe/columns/ColumnReference {
45724594
public abstract fun get (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnAccessor;
45734595
public fun getValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/columns/ColumnAccessor;
@@ -5149,6 +5171,7 @@ public final class org/jetbrains/kotlinx/dataframe/impl/UtilsKt {
51495171
public static final fun headPlusArray (J[J)[J
51505172
public static final fun headPlusArray (S[S)[S
51515173
public static final fun headPlusArray (Z[Z)[Z
5174+
public static final fun indexOfMax (Lkotlin/sequences/Sequence;)I
51525175
public static final fun toCamelCaseByDelimiters (Ljava/lang/String;Lkotlin/text/Regex;Ljava/lang/String;)Ljava/lang/String;
51535176
public static synthetic fun toCamelCaseByDelimiters$default (Ljava/lang/String;Lkotlin/text/Regex;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
51545177
public static final fun zero (Lkotlin/reflect/KClass;)Ljava/lang/Number;
@@ -5262,6 +5285,14 @@ public final class org/jetbrains/kotlinx/dataframe/impl/api/ConvertToKt {
52625285
public static synthetic fun convertToImpl$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/reflect/KType;ZLorg/jetbrains/kotlinx/dataframe/api/ExcessiveColumns;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
52635286
}
52645287

5288+
public final class org/jetbrains/kotlinx/dataframe/impl/api/DuplicateKt {
5289+
public static final fun duplicateRowsImpl (Lorg/jetbrains/kotlinx/dataframe/DataFrame;ILjava/lang/Iterable;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
5290+
}
5291+
5292+
public final class org/jetbrains/kotlinx/dataframe/impl/api/GroupByKt {
5293+
public static final fun groupByImpl (Lorg/jetbrains/kotlinx/dataframe/DataFrame;ZLkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/api/GroupBy;
5294+
}
5295+
52655296
public final class org/jetbrains/kotlinx/dataframe/impl/api/InsertKt {
52665297
public static final fun insertImpl (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lorg/jetbrains/kotlinx/dataframe/columns/ColumnPath;Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
52675298
}
@@ -5380,6 +5411,7 @@ public abstract interface class org/jetbrains/kotlinx/dataframe/impl/columns/Tra
53805411

53815412
public final class org/jetbrains/kotlinx/dataframe/impl/columns/UtilsKt {
53825413
public static final fun asAnyFrameColumn (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Lorg/jetbrains/kotlinx/dataframe/columns/FrameColumn;
5414+
public static final fun transform (Lorg/jetbrains/kotlinx/dataframe/columns/ColumnsResolver;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlinx/dataframe/impl/columns/TransformableColumnSet;
53835415
}
53845416

53855417
public final class org/jetbrains/kotlinx/dataframe/impl/io/FastDoubleParser {

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/DataFrame.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ public operator fun <T> DataFrame<T>.get(columnRange: ClosedRange<String>): Data
135135

136136
internal val ColumnsContainer<*>.ncol get() = columnsCount()
137137
internal val AnyFrame.nrow get() = rowsCount()
138+
139+
@PublishedApi
138140
internal val AnyFrame.indices get() = indices()
139141
internal val AnyFrame.size: DataFrameSize get() = size()
140142

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/DataRow.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,8 @@ public interface DataRow<out T> {
149149
}
150150

151151
internal val AnyRow.values: List<Any?> get() = values()
152+
153+
@PublishedApi
152154
internal val AnyRow.index: Int get() = index()
153155
internal val <T> DataRow<T>.prev: DataRow<T>? get() = this.prev()
154156
internal val <T> DataRow<T>.next: DataRow<T>? get() = this.next()

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import org.jetbrains.kotlinx.dataframe.columns.ValueColumn
66
import org.jetbrains.kotlinx.dataframe.impl.asList
77
import kotlin.reflect.typeOf
88

9-
@PublishedApi
109
internal val ColumnReference<*>.name: String get() = name()
1110

1211
public inline fun <reified T> ColumnReference<T>.withValues(vararg values: T): ValueColumn<T> =

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

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,10 @@ internal interface DiffOrNullDocs
111111
*/
112112
@OptIn(ExperimentalTypeInference::class)
113113
@OverloadResolutionByLambdaReturnType
114-
public fun <T> DataRow<T>.diff(firstRowResult: Double, expression: RowExpression<T, Double>): Double =
114+
public inline fun <T> DataRow<T>.diff(
115+
firstRowResult: Double,
116+
crossinline expression: RowExpression<T, Double>,
117+
): Double =
115118
prev()?.let { p -> expression(this, this) - expression(p, p) }
116119
?: firstRowResult
117120

@@ -121,21 +124,21 @@ public fun <T> DataRow<T>.diff(firstRowResult: Double, expression: RowExpression
121124
@OptIn(ExperimentalTypeInference::class)
122125
@OverloadResolutionByLambdaReturnType
123126
// required to resolve `diff(0) { intValue }`
124-
public fun <T> DataRow<T>.diff(firstRowResult: Int, expression: RowExpression<T, Int>): Int =
127+
public inline fun <T> DataRow<T>.diff(firstRowResult: Int, crossinline expression: RowExpression<T, Int>): Int =
125128
prev()?.let { p -> expression(this, this) - expression(p, p) }
126129
?: firstRowResult
127130

128131
/**
129132
* @include [DiffDocs]
130133
*/
131-
public fun <T> DataRow<T>.diff(firstRowResult: Long, expression: RowExpression<T, Long>): Long =
134+
public inline fun <T> DataRow<T>.diff(firstRowResult: Long, crossinline expression: RowExpression<T, Long>): Long =
132135
prev()?.let { p -> expression(this, this) - expression(p, p) }
133136
?: firstRowResult
134137

135138
/**
136139
* @include [DiffDocs]
137140
*/
138-
public fun <T> DataRow<T>.diff(firstRowResult: Float, expression: RowExpression<T, Float>): Float =
141+
public inline fun <T> DataRow<T>.diff(firstRowResult: Float, crossinline expression: RowExpression<T, Float>): Float =
139142
prev()?.let { p -> expression(this, this) - expression(p, p) }
140143
?: firstRowResult
141144

@@ -144,25 +147,25 @@ public fun <T> DataRow<T>.diff(firstRowResult: Float, expression: RowExpression<
144147
*/
145148
@OptIn(ExperimentalTypeInference::class)
146149
@OverloadResolutionByLambdaReturnType
147-
public fun <T> DataRow<T>.diffOrNull(expression: RowExpression<T, Double>): Double? =
150+
public inline fun <T> DataRow<T>.diffOrNull(crossinline expression: RowExpression<T, Double>): Double? =
148151
prev()?.let { p -> expression(this, this) - expression(p, p) }
149152

150153
/**
151154
* @include [DiffOrNullDocs]
152155
*/
153-
public fun <T> DataRow<T>.diffOrNull(expression: RowExpression<T, Int>): Int? =
156+
public inline fun <T> DataRow<T>.diffOrNull(crossinline expression: RowExpression<T, Int>): Int? =
154157
prev()?.let { p -> expression(this, this) - expression(p, p) }
155158

156159
/**
157160
* @include [DiffOrNullDocs]
158161
*/
159-
public fun <T> DataRow<T>.diffOrNull(expression: RowExpression<T, Long>): Long? =
162+
public inline fun <T> DataRow<T>.diffOrNull(crossinline expression: RowExpression<T, Long>): Long? =
160163
prev()?.let { p -> expression(this, this) - expression(p, p) }
161164

162165
/**
163166
* @include [DiffOrNullDocs]
164167
*/
165-
public fun <T> DataRow<T>.diffOrNull(expression: RowExpression<T, Float>): Float? =
168+
public inline fun <T> DataRow<T>.diffOrNull(crossinline expression: RowExpression<T, Float>): Float? =
166169
prev()?.let { p -> expression(this, this) - expression(p, p) }
167170

168171
public fun AnyRow.columnsCount(): Int = df().ncol
@@ -205,7 +208,7 @@ public fun <T> DataRow<T>.relative(relativeIndices: IntRange): DataFrame<T> =
205208
(relativeIndices.first + index).coerceIn(df().indices)..(relativeIndices.last + index).coerceIn(df().indices),
206209
)
207210

208-
public fun <T> DataRow<T>.movingAverage(k: Int, expression: RowExpression<T, Number>): Double {
211+
public inline fun <T> DataRow<T>.movingAverage(k: Int, crossinline expression: RowExpression<T, Number>): Double {
209212
var count = 0
210213
return backwardIterable().take(k).sumOf {
211214
count++

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ public fun <T> DataColumn<T>.any(predicate: Predicate<T>): Boolean = values.any(
1414

1515
// region DataFrame
1616

17-
public fun <T> DataFrame<T>.any(predicate: RowFilter<T>): Boolean = rows().any { predicate(it, it) }
17+
public inline fun <T> DataFrame<T>.any(crossinline predicate: RowFilter<T>): Boolean = rows().any { predicate(it, it) }
1818

1919
// endregion

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import org.jetbrains.kotlinx.dataframe.RowExpression
66

77
// region DataFrame
88

9-
public fun <T, V> DataFrame<T>.associateBy(transform: RowExpression<T, V>): Map<V, DataRow<T>> =
9+
public inline fun <T, V> DataFrame<T>.associateBy(crossinline transform: RowExpression<T, V>): Map<V, DataRow<T>> =
1010
rows().associateBy { transform(it, it) }
1111

12-
public fun <T, K, V> DataFrame<T>.associate(transform: RowExpression<T, Pair<K, V>>): Map<K, V> =
12+
public inline fun <T, K, V> DataFrame<T>.associate(crossinline transform: RowExpression<T, Pair<K, V>>): Map<K, V> =
1313
rows().associate { transform(it, it) }
1414

1515
// endregion

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ public interface ColGroupsColumnsSelectionDsl {
178178
* @return A [TransformableColumnSet] containing the column groups that satisfy the filter.
179179
*/
180180
@Suppress("UNCHECKED_CAST")
181-
internal fun ColumnsResolver<*>.columnGroupsInternal(
182-
filter: (ColumnGroup<*>) -> Boolean,
181+
internal inline fun ColumnsResolver<*>.columnGroupsInternal(
182+
crossinline filter: (ColumnGroup<*>) -> Boolean,
183183
): TransformableColumnSet<AnyRow> = colsInternal { it.isColumnGroup() && filter(it) } as TransformableColumnSet<AnyRow>
184184

185185
// endregion

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,10 @@ public inline fun <reified C> SingleColumn<DataRow<*>>.colsOf(
262262
* match the given [filter] and are the given [type].
263263
*/
264264
@Suppress("UNCHECKED_CAST")
265-
internal fun <C> ColumnsResolver<*>.colsOfInternal(type: KType, filter: ColumnFilter<C>): TransformableColumnSet<C> =
265+
internal inline fun <C> ColumnsResolver<*>.colsOfInternal(
266+
type: KType,
267+
crossinline filter: ColumnFilter<C>,
268+
): TransformableColumnSet<C> =
266269
colsInternal {
267270
it.isSubtypeOf(type) && filter(it.cast())
268271
} as TransformableColumnSet<C>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,9 @@ public interface ColsOfKindColumnsSelectionDsl {
199199
* @param filter The filter function to apply on each column. Must accept a ColumnWithPath object and return a Boolean.
200200
* @return A [TransformableColumnSet] containing the columns of given kinds that satisfy the filter.
201201
*/
202-
internal fun ColumnsResolver<*>.columnsOfKindInternal(
202+
internal inline fun ColumnsResolver<*>.columnsOfKindInternal(
203203
kinds: Set<ColumnKind>,
204-
filter: ColumnFilter<*>,
204+
crossinline filter: ColumnFilter<*>,
205205
): TransformableColumnSet<*> = colsInternal { it.kind() in kinds && filter(it) }
206206

207207
// endregion

0 commit comments

Comments
 (0)