Skip to content

Commit 3d43035

Browse files
filterBy deprecated
1 parent 0a12bd0 commit 3d43035

File tree

4 files changed

+10
-43
lines changed

4 files changed

+10
-43
lines changed

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import org.jetbrains.kotlinx.dataframe.impl.columns.TransformableColumnSet
2424
import org.jetbrains.kotlinx.dataframe.impl.getTrueIndices
2525
import org.jetbrains.kotlinx.dataframe.indices
2626
import org.jetbrains.kotlinx.dataframe.util.DEPRECATED_ACCESS_API
27+
import org.jetbrains.kotlinx.dataframe.util.FILTER_BY
28+
import org.jetbrains.kotlinx.dataframe.util.FILTER_BY_REPLACE
2729
import kotlin.reflect.KProperty
2830

2931
// region DataColumn
@@ -55,7 +57,6 @@ public inline fun <T> DataColumn<T>.filter(predicate: Predicate<T>): DataColumn<
5557
* For more information, see: {@include [DocumentationUrls.Filter]}
5658
*
5759
* See also:
58-
* - [filterBy], which filters rows based on the values in a given [Boolean] column.
5960
* - [drop][DataFrame.drop], which drops rows based on values within the row.
6061
* - [distinct][DataFrame.distinct], which filters rows with duplicated values.
6162
*
@@ -109,6 +110,7 @@ internal interface FilterByDocs
109110
* Only rows where the value in this column is `true` will be included.
110111
* @return A new [DataFrame] containing only the rows where the selected column is `true`.
111112
*/
113+
@Deprecated(message = FILTER_BY, replaceWith = ReplaceWith(FILTER_BY_REPLACE), level = DeprecationLevel.ERROR)
112114
public fun <T> DataFrame<T>.filterBy(column: ColumnSelector<T, Boolean>): DataFrame<T> =
113115
getRows(getColumn(column).toList().getTrueIndices())
114116

@@ -126,12 +128,16 @@ public fun <T> DataFrame<T>.filterBy(column: ColumnSelector<T, Boolean>): DataFr
126128
* Only rows where the value in this column is `true` will be included.
127129
* @return A new [DataFrame] containing only the rows where the specified column is `true`.
128130
*/
131+
@Suppress("DEPRECATION_ERROR")
132+
@Deprecated(message = FILTER_BY, replaceWith = ReplaceWith(FILTER_BY_REPLACE), level = DeprecationLevel.ERROR)
129133
public fun <T> DataFrame<T>.filterBy(column: String): DataFrame<T> = filterBy { column.toColumnOf() }
130134

135+
@Suppress("DEPRECATION_ERROR")
131136
@Deprecated(DEPRECATED_ACCESS_API)
132137
@AccessApiOverload
133138
public fun <T> DataFrame<T>.filterBy(column: ColumnReference<Boolean>): DataFrame<T> = filterBy { column }
134139

140+
@Suppress("DEPRECATION_ERROR")
135141
@Deprecated(DEPRECATED_ACCESS_API)
136142
@AccessApiOverload
137143
public fun <T> DataFrame<T>.filterBy(column: KProperty<Boolean>): DataFrame<T> = filterBy { column.toColumnAccessor() }

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/util/deprecationMessages.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ internal const val CONVERT_TO_URL_REPLACE = "convertToUrl()"
110110
internal const val TO_URL = "This function is replaced by `toUrl()`. $MESSAGE_1_0"
111111
internal const val TO_URL_REPLACE = "toUrl()"
112112

113+
internal const val FILTER_BY = "This function is deprecated in favor of `filter { }`. $MESSAGE_1_0"
114+
internal const val FILTER_BY_REPLACE = "filter { column }"
115+
113116
// endregion
114117

115118
// region WARNING in 1.0, ERROR in 1.1

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Access.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import org.jetbrains.kotlinx.dataframe.api.dropNulls
2020
import org.jetbrains.kotlinx.dataframe.api.dropWhile
2121
import org.jetbrains.kotlinx.dataframe.api.fillNaNs
2222
import org.jetbrains.kotlinx.dataframe.api.filter
23-
import org.jetbrains.kotlinx.dataframe.api.filterBy
2423
import org.jetbrains.kotlinx.dataframe.api.first
2524
import org.jetbrains.kotlinx.dataframe.api.forEach
2625
import org.jetbrains.kotlinx.dataframe.api.gather
@@ -324,22 +323,6 @@ class Access : TestBase() {
324323
// SampleEnd
325324
}
326325

327-
@Test
328-
@TransformDataFrameExpressions
329-
fun filterBy_properties() {
330-
// SampleStart
331-
df.filterBy { isHappy }
332-
// SampleEnd
333-
}
334-
335-
@Test
336-
@TransformDataFrameExpressions
337-
fun filterBy_strings() {
338-
// SampleStart
339-
df.filterBy("isHappy")
340-
// SampleEnd
341-
}
342-
343326
@Test
344327
@TransformDataFrameExpressions
345328
fun dropWhere_properties() {

docs/StardustDocs/topics/filter.md

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,3 @@ df.filter { "age"<Int>() > 18 && "name"["firstName"]<String>().startsWith("A") }
2222
</tab></tabs>
2323
<inline-frame src="resources/org.jetbrains.kotlinx.dataframe.samples.api.Access.filter.html" width="100%"/>
2424
<!---END-->
25-
26-
## filterBy
27-
28-
Returns [`DataFrame`](DataFrame.md) with rows that have value `true` in the given column of type `Boolean`.
29-
30-
See [column selectors](ColumnSelectors.md) for how to select the column for this operation.
31-
32-
<!---FUN filterBy-->
33-
<tabs>
34-
<tab title="Properties">
35-
36-
```kotlin
37-
df.filterBy { isHappy }
38-
```
39-
40-
</tab>
41-
<tab title="Strings">
42-
43-
```kotlin
44-
df.filterBy("isHappy")
45-
```
46-
47-
</tab></tabs>
48-
<inline-frame src="resources/org.jetbrains.kotlinx.dataframe.samples.api.Access.filterBy.html" width="100%"/>
49-
<!---END-->

0 commit comments

Comments
 (0)