Skip to content

Commit 7b55d06

Browse files
committed
Add type argument for emptyDataFrame()
1 parent 58340a7 commit 7b55d06

File tree

8 files changed

+16
-16
lines changed

8 files changed

+16
-16
lines changed

src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/concat.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ public fun <T> Iterable<DataColumn<T>>.concat(): DataColumn<T> {
4848
}
4949

5050
@JvmName("concatRows")
51-
public fun <T> Iterable<DataRow<T>?>.concat(): DataFrame<T> = concatImpl(map { it?.toDataFrame() ?: emptyDataFrame(1).cast() })
51+
public fun <T> Iterable<DataRow<T>?>.concat(): DataFrame<T> = concatImpl(map { it?.toDataFrame() ?: emptyDataFrame(1) })
5252

5353
// endregion

src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/constructors.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ public class DataFrameBuilder(private val header: List<String>) {
271271
public fun randomBoolean(nrow: Int): AnyFrame = fillNotNull(nrow) { Random.nextBoolean() }
272272
}
273273

274-
public fun emptyDataFrame(nrow: Int = 0): AnyFrame = DataFrame.empty(nrow)
274+
public fun <T> emptyDataFrame(nrow: Int = 0): DataFrame<T> = DataFrame.empty(nrow).cast()
275275

276276
// endregion
277277

src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/concat.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ internal fun <T> concatImpl(name: String, columns: List<DataColumn<T>?>, columnS
7070

7171
internal fun <T> concatImpl(dataFrames: List<DataFrame<T>>): DataFrame<T> {
7272
when (dataFrames.size) {
73-
0 -> return emptyDataFrame().cast()
73+
0 -> return emptyDataFrame()
7474
1 -> return dataFrames[0]
7575
}
7676

src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/api/remove.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import org.jetbrains.kotlinx.dataframe.AnyFrame
55
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
66
import org.jetbrains.kotlinx.dataframe.DataFrame
77
import org.jetbrains.kotlinx.dataframe.api.cast
8-
import org.jetbrains.kotlinx.dataframe.api.emptyDataFrame
98
import org.jetbrains.kotlinx.dataframe.api.name
109
import org.jetbrains.kotlinx.dataframe.api.toDataFrame
1110
import org.jetbrains.kotlinx.dataframe.columns.ColumnGroup
@@ -58,7 +57,7 @@ internal fun <T> DataFrame<T>.removeImpl(allowMissingColumns: Boolean = false, c
5857
return newCols.toDataFrame()
5958
}
6059

61-
val newDf = dfs(columns(), colWithPaths, root) ?: emptyDataFrame(nrow)
60+
val newDf = dfs(columns(), colWithPaths, root) ?: DataFrame.empty(nrow)
6261

6362
val removedColumns = root.allRemovedColumns().map { it.pathFromRoot() to it }.sortedBy { originalOrder[it.first] }.map { it.second }
6463

src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/common.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.jetbrains.kotlinx.dataframe.io
33
import com.github.kittinunf.fuel.httpGet
44
import org.jetbrains.kotlinx.dataframe.AnyFrame
55
import org.jetbrains.kotlinx.dataframe.DataFrame
6-
import org.jetbrains.kotlinx.dataframe.api.emptyDataFrame
76
import org.jetbrains.kotlinx.dataframe.api.toDataFrame
87
import org.jetbrains.kotlinx.dataframe.impl.columns.guessColumnType
98
import java.io.File
@@ -36,7 +35,7 @@ public fun <T> List<List<T>>.toDataFrame(containsColumns: Boolean = false): AnyF
3635
guessColumnType(name, values)
3736
}.toDataFrame()
3837
}
39-
isEmpty() -> emptyDataFrame(0)
38+
isEmpty() -> DataFrame.Empty
4039
else -> {
4140
val header = get(0).map { it.toString() }
4241
val data = drop(1)
@@ -50,12 +49,12 @@ public fun <T> List<List<T>>.toDataFrame(containsColumns: Boolean = false): AnyF
5049
}
5150
}
5251

53-
internal fun String.isURL(): Boolean = listOf("http:", "https:", "ftp:").any { startsWith(it) }
52+
public fun isURL(path: String): Boolean = listOf("http:", "https:", "ftp:").any { path.startsWith(it) }
5453

55-
internal fun URL.isFile(): Boolean = protocol == "file"
54+
public fun isFile(url: URL): Boolean = url.protocol == "file"
5655

57-
internal fun URL.asFileOrNull(): File? = if (isFile()) File(path) else null
56+
public fun asFileOrNull(url: URL): File? = if (isFile(url)) File(url.path) else null
5857

59-
internal fun URL.asFile(): File = asFileOrNull()!!
58+
public fun urlAsFile(url: URL): File = File(url.path)
6059

61-
internal fun URL.isProtocolSupported(): Boolean = protocol in setOf("http", "https", "ftp")
60+
public fun isProtocolSupported(url: URL): Boolean = url.protocol in setOf("http", "https", "ftp")

src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/get.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.jetbrains.kotlinx.dataframe.api
22

33
import io.kotest.assertions.throwables.shouldThrow
44
import io.kotest.matchers.shouldBe
5+
import org.jetbrains.kotlinx.dataframe.DataFrame
56
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
67
import org.junit.Test
78
import java.lang.ClassCastException
@@ -11,7 +12,7 @@ class GetTests {
1112

1213
@Test
1314
fun `exceptions from empty dataframe`() {
14-
val empty = emptyDataFrame()
15+
val empty = DataFrame.Empty
1516
shouldThrow<NoSuchElementException> {
1617
empty.first()
1718
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package org.jetbrains.kotlinx.dataframe.api
22

33
import io.kotest.matchers.shouldBe
4+
import org.jetbrains.kotlinx.dataframe.DataFrame
45
import org.junit.Test
56

67
class MapTests {
78

89
@Test
910
fun `map frame column with empty frames`() {
10-
val frames by columnOf(dataFrameOf("a")(1), emptyDataFrame(0))
11+
val frames by columnOf(dataFrameOf("a")(1), DataFrame.Empty)
1112
frames.map { it.firstOrNull() }.size() shouldBe frames.size()
1213
}
1314
}

src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/DataFrameTreeTests.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -518,8 +518,8 @@ class DataFrameTreeTests : BaseTest() {
518518
val groupCol = grouped.groups.toColumnAccessor()
519519
val plain = grouped.toDataFrame()
520520
.update { groupCol }.at(1).withNull()
521-
.update { groupCol }.at(2).with { emptyDataFrame(0).cast() }
522-
.update { groupCol }.at(3).with { it?.filter { false } }
521+
.update { groupCol }.at(2).with { emptyDataFrame() }
522+
.update { groupCol }.at(3).with { it.filter { false } }
523523
val res = plain.explode(dropEmpty = false) { groupCol }
524524
val expected = plain[groupCol.name()].sumOf { Math.max((it as AnyFrame?)?.nrow ?: 0, 1) }
525525
res.nrow shouldBe expected

0 commit comments

Comments
 (0)