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

  1. Rename the argument to the new name given in the message
  2. Apply a project-wide search-and-replace for the old parameter name
  3. 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

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


AI-assisted analysis of pola-rs/polars@5d8ebabf11 (2026-08-28). Data as JSON: /api/errors/6771e79306e312f9. Report an issue: GitHub.