Skip to content

Commit 72ed196

Browse files
Merge branch 'master' into groupby_kdocs
2 parents cb7ac5e + 7c189f0 commit 72ed196

File tree

96 files changed

+4341
-1345
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+4341
-1345
lines changed

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ jobs:
3939
Xvfb :99 &
4040
/opt/builder/bin/idea.sh helpbuilderinspect -source-dir . -product $PRODUCT --runner github -output-dir artifacts/ || true
4141
test -e artifacts/$ARTIFACT && echo $ARTIFACT exists
42-
# cp docs/StardustDocs/sitemap.xml artifacts/sitemap.xml
43-
# cd artifacts
44-
# zip -r $ARTIFACT sitemap.xml
42+
# cp docs/StardustDocs/sitemap.xml artifacts/sitemap.xml
43+
# cd artifacts
44+
# zip -r $ARTIFACT sitemap.xml
4545
working-directory: ${{ github.workspace }}
4646
- name: Upload modified documentation artifact
4747
uses: actions/upload-artifact@v4

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ so do familiarize yourself with the following guidelines.
5353
## PR workflow
5454

5555
0. The contributor builds the library locally and runs all unit tests via the Gradle task
56-
`dataframe:test -Pkotlin.dataframe.debug=true` (see the ["Building"](#building) chapter).
56+
`build -Pkotlin.dataframe.debug=true` (see the ["Building"](#building) chapter).
5757
1. The contributor submits the PR if the local build is successful and the tests are green.
5858
2. The reviewer puts their name in the "Reviewers" section of the proposed PR at the start of the review process.
5959
3. The reviewer leaves comments or marks the PR with the abbreviation "LGTM" (Looks good to me).

context7.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"$schema": "https://context7.com/schema/context7.json",
3+
"excludeFolders": [
4+
"docs/StardustDocs/resources/snippets/*.html",
5+
"docs/StardustDocs/resources/api/*.html"
6+
"**/*.fix.txt"
7+
]
8+
}

core/api/core.api

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2609,6 +2609,8 @@ public final class org/jetbrains/kotlinx/dataframe/api/InsertKt {
26092609
public static final fun after (Lorg/jetbrains/kotlinx/dataframe/api/InsertClause;Lorg/jetbrains/kotlinx/dataframe/columns/ColumnAccessor;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
26102610
public static final fun after (Lorg/jetbrains/kotlinx/dataframe/api/InsertClause;Lorg/jetbrains/kotlinx/dataframe/columns/ColumnPath;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
26112611
public static final fun at (Lorg/jetbrains/kotlinx/dataframe/api/InsertClause;I)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
2612+
public static final fun before (Lorg/jetbrains/kotlinx/dataframe/api/InsertClause;Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
2613+
public static final fun before (Lorg/jetbrains/kotlinx/dataframe/api/InsertClause;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
26122614
public static final fun insert (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lorg/jetbrains/kotlinx/dataframe/DataColumn;)Lorg/jetbrains/kotlinx/dataframe/api/InsertClause;
26132615
public static final fun under (Lorg/jetbrains/kotlinx/dataframe/api/InsertClause;Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
26142616
public static final fun under (Lorg/jetbrains/kotlinx/dataframe/api/InsertClause;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
@@ -3424,10 +3426,14 @@ public final class org/jetbrains/kotlinx/dataframe/api/MoveKt {
34243426
public static final fun move (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;
34253427
public static final fun move (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;
34263428
public static final fun moveTo (Lorg/jetbrains/kotlinx/dataframe/DataFrame;ILkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3429+
public static final fun moveTo (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IZLkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3430+
public static final fun moveTo (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IZ[Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34273431
public static final fun moveTo (Lorg/jetbrains/kotlinx/dataframe/DataFrame;I[Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34283432
public static final fun moveTo (Lorg/jetbrains/kotlinx/dataframe/DataFrame;I[Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34293433
public static final fun moveTo (Lorg/jetbrains/kotlinx/dataframe/DataFrame;I[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34303434
public static final fun moveToEnd (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3435+
public static final fun moveToEnd (Lorg/jetbrains/kotlinx/dataframe/DataFrame;ZLkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3436+
public static final fun moveToEnd (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Z[Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34313437
public static final fun moveToEnd (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34323438
public static final fun moveToEnd (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34333439
public static final fun moveToEnd (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
@@ -3440,14 +3446,19 @@ public final class org/jetbrains/kotlinx/dataframe/api/MoveKt {
34403446
public static final fun moveToRight (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34413447
public static final fun moveToRight (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34423448
public static final fun moveToStart (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3449+
public static final fun moveToStart (Lorg/jetbrains/kotlinx/dataframe/DataFrame;ZLkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3450+
public static final fun moveToStart (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Z[Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34433451
public static final fun moveToStart (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34443452
public static final fun moveToStart (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lkotlin/reflect/KProperty;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34453453
public static final fun moveToStart (Lorg/jetbrains/kotlinx/dataframe/DataFrame;[Lorg/jetbrains/kotlinx/dataframe/columns/ColumnReference;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34463454
public static final fun to (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;I)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3455+
public static final fun to (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;IZ)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34473456
public static final fun toEnd (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3457+
public static final fun toEnd (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;Z)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34483458
public static final fun toLeft (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34493459
public static final fun toRight (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34503460
public static final fun toStart (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
3461+
public static final fun toStart (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;Z)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34513462
public static final fun toTop (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34523463
public static synthetic fun toTop$default (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
34533464
public static final fun under (Lorg/jetbrains/kotlinx/dataframe/api/MoveClause;Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
@@ -4462,7 +4473,9 @@ public final class org/jetbrains/kotlinx/dataframe/api/TakeKt {
44624473
}
44634474

44644475
public final class org/jetbrains/kotlinx/dataframe/api/ToDataFrameKt {
4476+
public static final fun toDataFrame (Ljava/util/List;Ljava/util/List;Z)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44654477
public static final fun toDataFrame (Ljava/util/Map;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
4478+
public static synthetic fun toDataFrame$default (Ljava/util/List;Ljava/util/List;ZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44664479
public static final fun toDataFrameAnyColumn (Ljava/lang/Iterable;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44674480
public static final fun toDataFrameColumnPathAnyNullable (Ljava/lang/Iterable;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
44684481
public static final fun toDataFrameColumnPathAnyNullable (Ljava/util/Map;)Lorg/jetbrains/kotlinx/dataframe/DataFrame;
@@ -5591,6 +5604,11 @@ public final class org/jetbrains/kotlinx/dataframe/exceptions/ColumnTypeMismatch
55915604
public final fun getColumn ()Lorg/jetbrains/kotlinx/dataframe/DataColumn;
55925605
}
55935606

5607+
public final class org/jetbrains/kotlinx/dataframe/exceptions/ColumnsWithDifferentParentException : java/lang/IllegalArgumentException, org/jetbrains/kotlinx/dataframe/exceptions/DataFrameError {
5608+
public fun <init> (Ljava/lang/String;)V
5609+
public fun getMessage ()Ljava/lang/String;
5610+
}
5611+
55945612
public abstract interface class org/jetbrains/kotlinx/dataframe/exceptions/DataFrameError {
55955613
public abstract fun getMessage ()Ljava/lang/String;
55965614
}
@@ -6781,11 +6799,14 @@ public final class org/jetbrains/kotlinx/dataframe/schema/CompareResult : java/l
67816799
public static final field Equals Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
67826800
public static final field IsDerived Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
67836801
public static final field IsSuper Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
6802+
public static final field Matches Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
67846803
public static final field None Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
67856804
public final fun combine (Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;)Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
67866805
public static fun getEntries ()Lkotlin/enums/EnumEntries;
67876806
public final fun isEqual ()Z
67886807
public final fun isSuperOrEqual ()Z
6808+
public final fun isSuperOrMatches ()Z
6809+
public final fun matches ()Z
67896810
public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
67906811
public static fun values ()[Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
67916812
}
@@ -6808,11 +6829,15 @@ public final class org/jetbrains/kotlinx/dataframe/schema/ComparisonMode : java/
68086829
}
68096830

68106831
public abstract interface class org/jetbrains/kotlinx/dataframe/schema/DataFrameSchema {
6832+
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/schema/DataFrameSchema$Companion;
68116833
public abstract fun compare (Lorg/jetbrains/kotlinx/dataframe/schema/DataFrameSchema;Lorg/jetbrains/kotlinx/dataframe/schema/ComparisonMode;)Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
68126834
public static synthetic fun compare$default (Lorg/jetbrains/kotlinx/dataframe/schema/DataFrameSchema;Lorg/jetbrains/kotlinx/dataframe/schema/DataFrameSchema;Lorg/jetbrains/kotlinx/dataframe/schema/ComparisonMode;ILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/schema/CompareResult;
68136835
public abstract fun getColumns ()Ljava/util/Map;
68146836
}
68156837

6838+
public final class org/jetbrains/kotlinx/dataframe/schema/DataFrameSchema$Companion {
6839+
}
6840+
68166841
public final class org/jetbrains/kotlinx/dataframe/util/DeprecationMessagesKt {
68176842
public static final field DF_READ_EXCEL Ljava/lang/String;
68186843
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2678,4 +2678,4 @@ public fun <T, C> Convert<T, List<List<C>>>.toDataFrames(containsColumns: Boolea
26782678
* @return A new [DataColumn] with the values converted to [DataFrame].
26792679
*/
26802680
public fun <T> DataColumn<List<List<T>>>.toDataFrames(containsColumns: Boolean = false): DataColumn<AnyFrame> =
2681-
map { it.toDataFrame(containsColumns) }
2681+
map { it.toDataFrame(containsColumns = containsColumns) }

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/insert.kt

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import org.jetbrains.kotlinx.dataframe.annotations.Refine
1111
import org.jetbrains.kotlinx.dataframe.columns.ColumnAccessor
1212
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
1313
import org.jetbrains.kotlinx.dataframe.documentation.SelectingColumns
14+
import org.jetbrains.kotlinx.dataframe.impl.api.afterImpl
15+
import org.jetbrains.kotlinx.dataframe.impl.api.beforeImpl
1416
import org.jetbrains.kotlinx.dataframe.impl.api.insertImpl
1517
import org.jetbrains.kotlinx.dataframe.impl.columnName
1618
import org.jetbrains.kotlinx.dataframe.impl.removeAt
@@ -446,10 +448,59 @@ public fun <T> InsertClause<T>.after(columnPath: ColumnPath): DataFrame<T> {
446448
return df.insertImpl(dstPath, column).move { dstPath }.after { columnPath }
447449
}
448450

449-
internal fun <T> InsertClause<T>.afterImpl(columnPath: ColumnPath): DataFrame<T> {
450-
val dstPath = ColumnPath(columnPath.removeAt(columnPath.size - 1) + column.name())
451-
return df.insertImpl(dstPath, column).move { dstPath }.after { columnPath }
452-
}
451+
// endregion
452+
453+
// region before
454+
455+
/**
456+
* Inserts the new column previously specified with [insert]
457+
* at the position immediately before the selected [column] (on the same level).
458+
*
459+
* For more information: [See `insert` on the documentation website.](https://kotlin.github.io/dataframe/insert.html)
460+
*
461+
* See [Grammar][InsertDocs.Grammar] for more details.
462+
*
463+
* See also: [SelectingColumns.Dsl].
464+
*
465+
* ### Examples:
466+
* ```kotlin
467+
* // Insert a new column "age" before the "name" column
468+
* df.insert(age).before { name }
469+
*
470+
* // Insert a new column "sum" before the nested "min" column (inside the "stats" column group)
471+
* val dfWithSum = df.insert("sum") { a + b }.before { stats.min }
472+
* ```
473+
*
474+
* @param [column] The [ColumnSelector] used to choose an existing column in this [DataFrame],
475+
* before which the new column will be inserted.
476+
* @return A new [DataFrame] with the inserted column placed before the selected column.
477+
*/
478+
@Refine
479+
@Interpretable("InsertBefore0")
480+
public fun <T> InsertClause<T>.before(column: ColumnSelector<T, *>): DataFrame<T> = beforeImpl(df.getColumnPath(column))
481+
482+
/**
483+
* Inserts the new column previously specified with [insert]
484+
* at the position immediately before the column with the given [name][column].
485+
*
486+
* For more information: [See `insert` on the documentation website.](https://kotlin.github.io/dataframe/insert.html)
487+
*
488+
* See [Grammar][InsertDocs.Grammar] for more details.
489+
*
490+
* See also: [SelectingColumns.ColumnNames].
491+
*
492+
* ### Example
493+
* ```kotlin
494+
* // Insert a new column "age" before the "name" column
495+
* df.insert(age).before("name")
496+
* ```
497+
*
498+
* @param [column] The [String] name of the column in this [DataFrame]
499+
* before which the new column will be inserted.
500+
* @return A new [DataFrame] with the inserted column placed before the specified column.
501+
*/
502+
public fun <T> InsertClause<T>.before(column: String): DataFrame<T> =
503+
df.add(this.column).move(this.column).before(column)
453504

454505
// endregion
455506

0 commit comments

Comments
 (0)