pola-rs/polars · error · ArgumentRemovedError
the argument {param.name!r} for {func_name!r}{was_deprecated
Error message
the argument {param.name!r} for {func_name!r}{was_deprecated_and} has been removed in version {param.removed_in}. It was renamed to {param.new_name!r}. What it means
Raised by polars' removed-parameter decorator when only the old (renamed) parameter name is passed to a function whose parameter has since been removed. The message states the removal version and the new name to use, plus any hint.
Source
Thrown at py-polars/src/polars/_utils/expired.py:151
if param.deprecated_in is not None
else ""
)
if isinstance(param, RenamedParameter):
if param.name in kwargs and param.new_name in kwargs:
msg = (
f"{func_name!r} received both {param.name!r} and {param.new_name!r} as arguments;"
f" {param.name!r}{was_deprecated_and} has been renamed to"
f" {param.new_name!r} in version {param.removed_in}."
)
raise ArgumentRemovedError(msg)
else:
msg = (
f"the argument {param.name!r} for {func_name!r}{was_deprecated_and}"
f" has been removed in version {param.removed_in}."
f" It was renamed to {param.new_name!r}."
)
msg = msg if param.hint is None else f"{msg} {param.hint}"
raise ArgumentRemovedError(msg)
elif isinstance(param, RemovedParameter):
msg = (
f"the argument {param.name!r} for {func_name!r}{was_deprecated_and}"
f" has been removed in version {param.removed_in}."
)
msg = msg if param.hint is None else f"{msg} {param.hint}"
raise ArgumentRemovedError(msg)
else:
msg = f"Unexpected parameter type: {type(param)!r}"
raise TypeError(msg)
View on GitHub (pinned to 5d8ebabf11)
Solutions
- Rename the argument to the new name given in the message
- Apply a project-wide search-and-replace for the old parameter name
- Update the polars pin in CI and re-run tests to find remaining call sites
Example fix
# before
df.rolling_std('a', window_size=3, min_periods=1)
# after
df.rolling_std('a', window_size=3, min_samples=1) Defensive patterns
Strategy: validation
Validate before calling
RENAMES = {'min_periods': 'min_samples'}
for old, new in RENAMES.items():
if old in kwargs:
kwargs[new] = kwargs.pop(old) Prevention
- Keep a compatibility shim mapping old->new kwargs
- Upgrade via the migration guide in one pass
- Add smoke tests exercising each deprecated call site
When it happens
Trigger: Calling a decorated function with the old kwarg only, e.g. df.rolling_std('a', window_size=3, min_periods=2) after min_periods was removed in favor of min_samples.
Common situations: Old notebooks, tutorials, or un-migrated production code after a polars upgrade; CI failing after a dependency bump.
Related errors
- `{name}` was removed in version {version}
- the argument {param.name!r} for {func_name!r}{was_deprecated
- {func_name!r} received both {param.name!r} and {param.new_na
- `strict=False` is no longer supported for `how='horizontal'`
- the `dtypes` parameter for `read_csv` has been renamed to `s
AI-assisted analysis of pola-rs/polars@5d8ebabf11 (2026-08-28).
Data as JSON: /api/errors/6771e79306e312f9.
Report an issue: GitHub.