@@ -65,24 +65,23 @@ public interface ColsAtAnyDepthColumnsSelectionDsl {
65
65
/* *
66
66
* ## Cols At Any Depth
67
67
*
68
- * Returns all columns in [this\] at any depth (so also inside [Column Groups][ColumnGroup]) if they satisfy the
69
- * optional given predicate.
68
+ * Returns all columns in [this\] at any depth (so also inside [Column Groups][ColumnGroup])
70
69
*
71
70
* This function can also be followed by another [ColumnSet] filter function like
72
71
* [colsOf][ColumnsSelectionDsl.colsOf], [single][ColumnsSelectionDsl.single], or [valueCols][ColumnsSelectionDsl.valueCols].
73
72
* ### Check out: [Grammar]
74
73
* #### For example:
75
74
* `// Depth-first search to a column containing the value "Alice"`
76
75
*
77
- * `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]`().`[first][ColumnsSelectionDsl.firstCol ]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
76
+ * `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]`().`[filter][FilterColumnsSelectionDsl.filter ]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() }.`[first][ColumnsSelectionDsl.firstCol]`() }`
78
77
* {@include [LineBreak]}
79
78
* `// The columns at any depth excluding the top-level`
80
79
*
81
80
* `df.`[select][DataFrame.select]` { `[colGroups][ColumnsSelectionDsl.colGroups]`().`[colsAtAnyDepth][ColumnSet.colsAtAnyDepth]`() }`
82
81
* {@include [LineBreak]}
83
82
* `// All value- and frame columns at any depth`
84
83
*
85
- * `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { !it.`[isColumnGroup][DataColumn.isColumnGroup]` } }`
84
+ * `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]`().`[filter][FilterColumnsSelectionDsl.filter]` { !it.`[isColumnGroup][DataColumn.isColumnGroup]` } }`
86
85
* {@include [LineBreak]}
87
86
* `// All value columns at any depth nested under a column group named "myColGroup"`
88
87
*
@@ -94,13 +93,13 @@ public interface ColsAtAnyDepthColumnsSelectionDsl {
94
93
*
95
94
* #### Converting from deprecated syntax:
96
95
*
97
- * `dfs { condition } -> `[colsAtAnyDepth][colsAtAnyDepth]` { condition }`
96
+ * `dfs { condition } -> `[colsAtAnyDepth][colsAtAnyDepth]`().`[filter][FilterColumnsSelectionDsl.filter]` { condition }`
98
97
*
99
- * `allDfs(includeGroups = false) -> `[colsAtAnyDepth][colsAtAnyDepth]` { includeGroups || !it.`[isColumnGroup][DataColumn.isColumnGroup]`() }`
98
+ * `allDfs(includeGroups = false) -> `[colsAtAnyDepth][colsAtAnyDepth]`().`[filter][FilterColumnsSelectionDsl.filter]` { includeGroups || !it.`[isColumnGroup][DataColumn.isColumnGroup]`() }`
100
99
*
101
100
* `dfsOf<Type> { condition } -> `[colsAtAnyDepth][colsAtAnyDepth]`().`[colsOf][ColumnsSelectionDsl.colsOf]`<Type> { condition }`
102
101
*
103
- * [cols][ColumnsSelectionDsl.cols]` { condition }.`[recursively][recursively]`() -> `[colsAtAnyDepth][colsAtAnyDepth]` { condition }`
102
+ * [cols][ColumnsSelectionDsl.cols]` { condition }.`[recursively][recursively]`() -> `[colsAtAnyDepth][colsAtAnyDepth]`().`[filter][FilterColumnsSelectionDsl.filter]` { condition }`
104
103
*
105
104
* [first][ColumnsSelectionDsl.first]` { condition }.`[rec][rec]`() -> `[colsAtAnyDepth][colsAtAnyDepth]` { condition }.`[first][ColumnsSelectionDsl.first]`()`
106
105
*
@@ -122,40 +121,82 @@ public interface ColsAtAnyDepthColumnsSelectionDsl {
122
121
* `df.`[select][DataFrame.select]` { `[colGroups][ColumnsSelectionDsl.colGroups]`().`[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
123
122
*/
124
123
@Interpretable(" ColsAtAnyDepth0" )
124
+ @Deprecated(" " , replaceWith = ReplaceWith (" colsAtAnyDepth().filter(predicate)" ))
125
125
public fun ColumnSet <* >.colsAtAnyDepth (predicate : ColumnFilter <* > = { true }): ColumnSet <* > =
126
126
colsAtAnyDepthInternal(predicate)
127
127
128
128
/* *
129
129
* @include [CommonAtAnyDepthDocs]
130
130
* @set [CommonAtAnyDepthDocs.Examples]
131
131
*
132
- * `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() }.`[first][ColumnsSelectionDsl.first]`() }`
132
+ * `df.`[select][DataFrame.select]` { `[colGroups][ColumnsSelectionDsl.colGroups]`().`[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]`().filter { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
133
+ */
134
+ @Interpretable(" ColsAtAnyDepth0" )
135
+ public fun ColumnSet <* >.colsAtAnyDepth (): ColumnSet <* > = colsAtAnyDepthInternal { true }
136
+
137
+ /* *
138
+ * @include [CommonAtAnyDepthDocs]
139
+ * @set [CommonAtAnyDepthDocs.Examples]
140
+ *
141
+ * `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() }.`[first][ColumnsSelectionDsl.first]`() }`
133
142
*
134
143
* `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { !it.`[isColumnGroup][DataColumn.isColumnGroup]` } }`
135
144
*/
136
145
@Interpretable(" ColsAtAnyDepth1" )
146
+ @Deprecated(" " , replaceWith = ReplaceWith (" colsAtAnyDepth().filter(predicate)" ))
137
147
public fun ColumnsSelectionDsl <* >.colsAtAnyDepth (predicate : ColumnFilter <* > = { true }): ColumnSet <* > =
138
148
asSingleColumn().colsAtAnyDepthInternal(predicate)
139
149
150
+ /* *
151
+ * @include [CommonAtAnyDepthDocs]
152
+ * @set [CommonAtAnyDepthDocs.Examples]
153
+ *
154
+ * `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]`().filter { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() }.`[first][ColumnsSelectionDsl.first]`() }`
155
+ *
156
+ * `df.`[select][DataFrame.select]` { `[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]`().filter { !it.`[isColumnGroup][DataColumn.isColumnGroup]` } }`
157
+ */
158
+ @Interpretable(" ColsAtAnyDepth1" )
159
+ public fun ColumnsSelectionDsl <* >.colsAtAnyDepth (): ColumnSet <* > = asSingleColumn().colsAtAnyDepthInternal { true }
160
+
140
161
/* *
141
162
* @include [CommonAtAnyDepthDocs]
142
163
* @set [CommonAtAnyDepthDocs.Examples]
143
164
*
144
165
* `df.`[select][DataFrame.select]` { myColGroup.`[colsAtAnyDepth][SingleColumn.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
145
166
*/
146
167
@Interpretable(" ColsAtAnyDepth2" )
168
+ @Deprecated(" " , replaceWith = ReplaceWith (" colsAtAnyDepth().filter(predicate)" ))
147
169
public fun SingleColumn <DataRow <* >>.colsAtAnyDepth (predicate : ColumnFilter <* > = { true }): ColumnSet <* > =
148
170
ensureIsColumnGroup().colsAtAnyDepthInternal(predicate)
149
171
172
+ /* *
173
+ * @include [CommonAtAnyDepthDocs]
174
+ * @set [CommonAtAnyDepthDocs.Examples]
175
+ *
176
+ * `df.`[select][DataFrame.select]` { myColGroup.`[colsAtAnyDepth][SingleColumn.colsAtAnyDepth]`().filter { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
177
+ */
178
+ @Interpretable(" ColsAtAnyDepth2" )
179
+ public fun SingleColumn <DataRow <* >>.colsAtAnyDepth (): ColumnSet <* > =
180
+ ensureIsColumnGroup().colsAtAnyDepthInternal { true }
181
+
150
182
/* *
151
183
* @include [CommonAtAnyDepthDocs]
152
184
* @set [CommonAtAnyDepthDocs.Examples]
153
185
*
154
186
* `df.`[select][DataFrame.select]` { "myColumnGroup".`[colsAtAnyDepth][String.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
155
187
*/
188
+ @Deprecated(" " , replaceWith = ReplaceWith (" colsAtAnyDepth().filter(predicate)" ))
156
189
public fun String.colsAtAnyDepth (predicate : ColumnFilter <* > = { true }): ColumnSet <* > =
157
190
columnGroup(this ).colsAtAnyDepth(predicate)
158
191
192
+ /* *
193
+ * @include [CommonAtAnyDepthDocs]
194
+ * @set [CommonAtAnyDepthDocs.Examples]
195
+ *
196
+ * `df.`[select][DataFrame.select]` { "myColumnGroup".`[colsAtAnyDepth][String.colsAtAnyDepth]`().filter { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
197
+ */
198
+ public fun String.colsAtAnyDepth (): ColumnSet <* > = columnGroup(this ).colsAtAnyDepth { true }
199
+
159
200
/* *
160
201
* @include [CommonAtAnyDepthDocs]
161
202
* @set [CommonAtAnyDepthDocs.Examples]
@@ -175,9 +216,18 @@ public interface ColsAtAnyDepthColumnsSelectionDsl {
175
216
*
176
217
* `df.`[select][DataFrame.select]` { "pathTo"["myGroupCol"].`[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]` { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
177
218
*/
219
+ @Deprecated(" " , replaceWith = ReplaceWith (" colsAtAnyDepth().filter(predicate)" ))
178
220
public fun ColumnPath.colsAtAnyDepth (predicate : ColumnFilter <* > = { true }): ColumnSet <* > =
179
221
columnGroup(this ).colsAtAnyDepth(predicate)
180
222
223
+ /* *
224
+ * @include [CommonAtAnyDepthDocs]
225
+ * @set [CommonAtAnyDepthDocs.Examples]
226
+ *
227
+ * `df.`[select][DataFrame.select]` { "pathTo"["myGroupCol"].`[colsAtAnyDepth][ColumnsSelectionDsl.colsAtAnyDepth]`().filter { "Alice" `[in][Iterable.contains]` it.`[values][DataColumn.values]`() } }`
228
+ */
229
+ public fun ColumnPath.colsAtAnyDepth (): ColumnSet <* > = columnGroup(this ).colsAtAnyDepth { true }
230
+
181
231
// endregion
182
232
}
183
233
0 commit comments