Skip to content

Commit f7936f2

Browse files
committed
update doc; use kw-only
1 parent 54fdb4a commit f7936f2

File tree

4 files changed

+25
-11
lines changed

4 files changed

+25
-11
lines changed

pandas/core/apply.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -994,7 +994,7 @@ def wrapper(*args, **kwargs):
994994
self.func, # type: ignore[arg-type]
995995
self.args,
996996
self.kwargs,
997-
1,
997+
num_required_args=1,
998998
)
999999
# error: Argument 1 to "__call__" of "_lru_cache_wrapper" has
10001000
# incompatible type "Callable[..., Any] | str | list[Callable
@@ -1159,7 +1159,9 @@ def numba_func(values, col_names, df_index, *args):
11591159

11601160
def apply_with_numba(self) -> dict[int, Any]:
11611161
func = cast(Callable, self.func)
1162-
args, kwargs = prepare_function_arguments(func, self.args, self.kwargs, 1)
1162+
args, kwargs = prepare_function_arguments(
1163+
func, self.args, self.kwargs, num_required_args=1
1164+
)
11631165
nb_func = self.generate_numba_apply_func(
11641166
func, **get_jit_arguments(self.engine_kwargs)
11651167
)
@@ -1299,7 +1301,9 @@ def numba_func(values, col_names_index, index, *args):
12991301

13001302
def apply_with_numba(self) -> dict[int, Any]:
13011303
func = cast(Callable, self.func)
1302-
args, kwargs = prepare_function_arguments(func, self.args, self.kwargs, 1)
1304+
args, kwargs = prepare_function_arguments(
1305+
func, self.args, self.kwargs, num_required_args=1
1306+
)
13031307
nb_func = self.generate_numba_apply_func(
13041308
func, **get_jit_arguments(self.engine_kwargs)
13051309
)

pandas/core/groupby/groupby.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,7 +1276,9 @@ def _transform_with_numba(self, func, *args, engine_kwargs=None, **kwargs):
12761276

12771277
starts, ends, sorted_index, sorted_data = self._numba_prep(df)
12781278
numba_.validate_udf(func)
1279-
args, kwargs = prepare_function_arguments(func, args, kwargs, 2)
1279+
args, kwargs = prepare_function_arguments(
1280+
func, args, kwargs, num_required_args=2
1281+
)
12801282
numba_transform_func = numba_.generate_numba_transform_func(
12811283
func, **get_jit_arguments(engine_kwargs)
12821284
)
@@ -1313,7 +1315,9 @@ def _aggregate_with_numba(self, func, *args, engine_kwargs=None, **kwargs):
13131315

13141316
starts, ends, sorted_index, sorted_data = self._numba_prep(df)
13151317
numba_.validate_udf(func)
1316-
args, kwargs = prepare_function_arguments(func, args, kwargs, 2)
1318+
args, kwargs = prepare_function_arguments(
1319+
func, args, kwargs, num_required_args=2
1320+
)
13171321
numba_agg_func = numba_.generate_numba_agg_func(
13181322
func, **get_jit_arguments(engine_kwargs)
13191323
)

pandas/core/util/numba_.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def jit_user_function(func: Callable) -> Callable:
9595

9696

9797
def prepare_function_arguments(
98-
func: Callable, args: tuple, kwargs: dict, num_required_args: int
98+
func: Callable, args: tuple, kwargs: dict, *, num_required_args: int
9999
) -> tuple[tuple, dict]:
100100
"""
101101
Prepare arguments for jitted function. As numba functions do not support kwargs,
@@ -104,13 +104,17 @@ def prepare_function_arguments(
104104
Parameters
105105
----------
106106
func : function
107-
user defined function
107+
User defined function
108108
args : tuple
109-
user input positional arguments
109+
User input positional arguments
110110
kwargs : dict
111-
user input keyword arguments
111+
User input keyword arguments
112112
num_required_args : int
113-
the number of required leading positional arguments for udf.
113+
The number of leading positional arguments we will pass to udf.
114+
These are not supplied by the user.
115+
e.g. for groupby we require "values", "index" as the first two arguments:
116+
`numba_func(group, group_index, *args)`, in this case num_required_args=2.
117+
See :func:`pandas.core.groupby.numba_.generate_numba_agg_func`
114118
115119
Returns
116120
-------

pandas/core/window/rolling.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1473,7 +1473,9 @@ def apply(
14731473
if maybe_use_numba(engine):
14741474
if raw is False:
14751475
raise ValueError("raw must be `True` when using the numba engine")
1476-
numba_args, kwargs = prepare_function_arguments(func, args, kwargs, 1)
1476+
numba_args, kwargs = prepare_function_arguments(
1477+
func, args, kwargs, num_required_args=1
1478+
)
14771479
if self.method == "single":
14781480
apply_func = generate_numba_apply_func(
14791481
func, **get_jit_arguments(engine_kwargs)

0 commit comments

Comments
 (0)