Skip to content

Commit b891d2e

Browse files
authored
Allow for positional arguments instead of str | list[str] (#284)
* make passing column names more ergonomic * syntax
1 parent 202a643 commit b891d2e

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

spec/API_specification/dataframe_api/dataframe_object.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ def shape(self) -> tuple[int, int]:
6464
Return number of rows and number of columns.
6565
"""
6666

67-
def group_by(self, keys: str | list[str], /) -> GroupBy:
67+
def group_by(self, *keys: str) -> GroupBy:
6868
"""
6969
Group the DataFrame by the given columns.
7070
7171
Parameters
7272
----------
73-
keys : str | list[str]
73+
*keys : str
7474
7575
Returns
7676
-------
@@ -179,7 +179,7 @@ def filter(self, mask: Column) -> DataFrame:
179179
"""
180180
...
181181

182-
def assign(self, columns: Column | Sequence[Column], /) -> DataFrame:
182+
def assign(self, *columns: Column) -> DataFrame:
183183
"""
184184
Insert new column(s), or update values in existing ones.
185185
@@ -197,7 +197,7 @@ def assign(self, columns: Column | Sequence[Column], /) -> DataFrame:
197197
198198
Parameters
199199
----------
200-
columns : Column | Sequence[Column]
200+
*columns : Column
201201
Column(s) to update/insert. If updating/inserting multiple columns,
202202
they must all have different names.
203203
@@ -207,13 +207,13 @@ def assign(self, columns: Column | Sequence[Column], /) -> DataFrame:
207207
"""
208208
...
209209

210-
def drop_columns(self, label: str | list[str]) -> DataFrame:
210+
def drop_columns(self, *labels: str) -> DataFrame:
211211
"""
212212
Drop the specified column(s).
213213
214214
Parameters
215215
----------
216-
label : str | list[str]
216+
*label : str
217217
Column name(s) to drop.
218218
219219
Returns
@@ -266,8 +266,7 @@ def schema(self) -> dict[str, Any]:
266266

267267
def sort(
268268
self,
269-
keys: str | list[str] | None = None,
270-
*,
269+
*keys: str,
271270
ascending: Sequence[bool] | bool = True,
272271
nulls_position: Literal['first', 'last'] = 'last',
273272
) -> DataFrame:
@@ -279,9 +278,9 @@ def sort(
279278
280279
Parameters
281280
----------
282-
keys : str | list[str], optional
281+
*keys : str
283282
Names of columns to sort by.
284-
If `None`, sort by all columns.
283+
If not specified, sort by all columns.
285284
ascending : Sequence[bool] or bool
286285
If `True`, sort by all keys in ascending order.
287286
If `False`, sort by all keys in descending order.
@@ -307,8 +306,7 @@ def sort(
307306

308307
def sorted_indices(
309308
self,
310-
keys: str | list[str] | None = None,
311-
*,
309+
*keys: str,
312310
ascending: Sequence[bool] | bool = True,
313311
nulls_position: Literal['first', 'last'] = 'last',
314312
) -> Column:
@@ -319,9 +317,9 @@ def sorted_indices(
319317
320318
Parameters
321319
----------
322-
keys : str | list[str], optional
320+
*keys : str
323321
Names of columns to sort by.
324-
If `None`, sort by all columns.
322+
If not specified, sort by all columns.
325323
ascending : Sequence[bool] or bool
326324
If `True`, sort by all keys in ascending order.
327325
If `False`, sort by all keys in descending order.
@@ -815,15 +813,15 @@ def is_nan(self) -> DataFrame:
815813
"""
816814
...
817815

818-
def unique_indices(self, keys: str | list[str] | None = None, *, skip_nulls: bool = True) -> Column:
816+
def unique_indices(self, *keys: str, skip_nulls: bool = True) -> Column:
819817
"""
820818
Return indices corresponding to unique values across selected columns.
821819
822820
Parameters
823821
----------
824-
keys : str | list[str], optional
822+
*keys : str
825823
Column names to consider when finding unique values.
826-
If `None`, all columns are considered.
824+
If not specified, all columns are considered.
827825
828826
Returns
829827
-------

0 commit comments

Comments
 (0)