Skip to content

Commit 1915c4a

Browse files
committed
changed fillNulls and fillNA api to weaken type to be nullable.
1 parent e2e035f commit 1915c4a

File tree

1 file changed

+21
-14
lines changed
  • core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api

1 file changed

+21
-14
lines changed

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

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,27 @@ import kotlin.reflect.KProperty
1717

1818
// region fillNulls
1919

20-
public fun <T, C> DataFrame<T>.fillNulls(cols: ColumnsSelector<T, C>): Update<T, C> = update(cols).where { it == null }
20+
public fun <T, C> DataFrame<T>.fillNulls(cols: ColumnsSelector<T, C?>): Update<T, C?> =
21+
update(cols).where { it == null }
22+
2123
public fun <T> DataFrame<T>.fillNulls(vararg cols: String): Update<T, Any?> = fillNulls { cols.toColumns() }
22-
public fun <T, C> DataFrame<T>.fillNulls(vararg cols: KProperty<C>): Update<T, C> = fillNulls { cols.toColumns() }
23-
public fun <T, C> DataFrame<T>.fillNulls(vararg cols: ColumnReference<C>): Update<T, C> = fillNulls { cols.toColumns() }
24-
public fun <T, C> DataFrame<T>.fillNulls(cols: Iterable<ColumnReference<C>>): Update<T, C> = fillNulls { cols.toColumnSet() }
24+
public fun <T, C> DataFrame<T>.fillNulls(vararg cols: KProperty<C>): Update<T, C?> = fillNulls { cols.toColumns() }
25+
public fun <T, C> DataFrame<T>.fillNulls(vararg cols: ColumnReference<C>): Update<T, C?> =
26+
fillNulls { cols.toColumns() }
27+
28+
public fun <T, C> DataFrame<T>.fillNulls(cols: Iterable<ColumnReference<C>>): Update<T, C?> =
29+
fillNulls { cols.toColumnSet() }
2530

2631
// endregion
2732

2833
internal inline val Any?.isNaN: Boolean get() = (this is Double && isNaN()) || (this is Float && isNaN())
2934

30-
internal inline val Any?.isNA: Boolean get() = when (this) {
31-
null -> true
32-
is Double -> isNaN()
33-
is Float -> isNaN()
34-
is AnyRow -> allNA()
35+
internal inline val Any?.isNA: Boolean
36+
get() = when (this) {
37+
null -> true
38+
is Double -> isNaN()
39+
is Float -> isNaN()
40+
is AnyRow -> allNA()
3541
is AnyFrame -> isEmpty()
3642
else -> false
3743
}
@@ -50,17 +56,18 @@ public fun <T, C> DataFrame<T>.fillNaNs(cols: ColumnsSelector<T, C>): Update<T,
5056
public fun <T> DataFrame<T>.fillNaNs(vararg cols: String): Update<T, Any?> = fillNaNs { cols.toColumns() }
5157
public fun <T, C> DataFrame<T>.fillNaNs(vararg cols: KProperty<C>): Update<T, C> = fillNaNs { cols.toColumns() }
5258
public fun <T, C> DataFrame<T>.fillNaNs(vararg cols: ColumnReference<C>): Update<T, C> = fillNaNs { cols.toColumns() }
53-
public fun <T, C> DataFrame<T>.fillNaNs(cols: Iterable<ColumnReference<C>>): Update<T, C> = fillNaNs { cols.toColumnSet() }
59+
public fun <T, C> DataFrame<T>.fillNaNs(cols: Iterable<ColumnReference<C>>): Update<T, C> =
60+
fillNaNs { cols.toColumnSet() }
5461

5562
// endregion
5663

5764
// region fillNA
5865

59-
public fun <T, C> DataFrame<T>.fillNA(cols: ColumnsSelector<T, C>): Update<T, C> = update(cols).where { it.isNA }
66+
public fun <T, C> DataFrame<T>.fillNA(cols: ColumnsSelector<T, C?>): Update<T, C?> = update(cols).where { it.isNA }
6067
public fun <T> DataFrame<T>.fillNA(vararg cols: String): Update<T, Any?> = fillNA { cols.toColumns() }
61-
public fun <T, C> DataFrame<T>.fillNA(vararg cols: KProperty<C>): Update<T, C> = fillNA { cols.toColumns() }
62-
public fun <T, C> DataFrame<T>.fillNA(vararg cols: ColumnReference<C>): Update<T, C> = fillNA { cols.toColumns() }
63-
public fun <T, C> DataFrame<T>.fillNA(cols: Iterable<ColumnReference<C>>): Update<T, C> = fillNA { cols.toColumnSet() }
68+
public fun <T, C> DataFrame<T>.fillNA(vararg cols: KProperty<C>): Update<T, C?> = fillNA { cols.toColumns() }
69+
public fun <T, C> DataFrame<T>.fillNA(vararg cols: ColumnReference<C>): Update<T, C?> = fillNA { cols.toColumns() }
70+
public fun <T, C> DataFrame<T>.fillNA(cols: Iterable<ColumnReference<C>>): Update<T, C?> = fillNA { cols.toColumnSet() }
6471

6572
// endregion
6673

0 commit comments

Comments
 (0)