{"record":{"id":"4c59d6a9c629afdf","repo":"pola-rs/polars","slug":"func-name-r-received-both-param-name-r-and-pa","errorCode":null,"errorMessage":"{func_name!r} received both {param.name!r} and {param.new_name!r} as arguments; {param.name!r}{was_deprecated_and} has been renamed to {param.new_name!r} in version {param.removed_in}.","messagePattern":"(.+?) received both (.+?) and (.+?) as arguments; (.+?)(.+?) has been renamed to (.+?) in version (.+?)\\.","errorType":"exception","errorClass":"ArgumentRemovedError","httpStatus":null,"severity":"error","filePath":"py-polars/src/polars/_utils/expired.py","lineNumber":143,"sourceCode":"def _raise_removed_argument_error(\n    param: RemovedParameter | RenamedParameter,\n    *,\n    func_name: str,\n    kwargs: dict[str, object],\n) -> NoReturn:\n    was_deprecated_and = (\n        f\" was deprecated in version {param.deprecated_in} and\"\n        if param.deprecated_in is not None\n        else \"\"\n    )\n    if isinstance(param, RenamedParameter):\n        if param.name in kwargs and param.new_name in kwargs:\n            msg = (\n                f\"{func_name!r} received both {param.name!r} and {param.new_name!r} as arguments;\"\n                f\" {param.name!r}{was_deprecated_and} has been renamed to\"\n                f\" {param.new_name!r} in version {param.removed_in}.\"\n            )\n            raise ArgumentRemovedError(msg)\n        else:\n            msg = (\n                f\"the argument {param.name!r} for {func_name!r}{was_deprecated_and}\"\n                f\" has been removed in version {param.removed_in}.\"\n                f\" It was renamed to {param.new_name!r}.\"\n            )\n            msg = msg if param.hint is None else f\"{msg} {param.hint}\"\n            raise ArgumentRemovedError(msg)\n    elif isinstance(param, RemovedParameter):\n        msg = (\n            f\"the argument {param.name!r} for {func_name!r}{was_deprecated_and}\"\n            f\" has been removed in version {param.removed_in}.\"\n        )\n        msg = msg if param.hint is None else f\"{msg} {param.hint}\"\n        raise ArgumentRemovedError(msg)\n    else:\n        msg = f\"Unexpected parameter type: {type(param)!r}\"\n        raise TypeError(msg)","sourceCodeStart":125,"sourceCodeEnd":161,"githubUrl":"https://github.com/pola-rs/polars/blob/5d8ebabf11caea54a5c29178a64a058762f49766/py-polars/src/polars/_utils/expired.py#L125-L161","documentation":"Raised by polars' removed-parameter decorator when a function call passes BOTH the old, removed parameter name and its new name simultaneously. Passing both is ambiguous, so polars raises ArgumentRemovedError explaining the rename and the version it took effect.","triggerScenarios":"Calling a decorated polars function (e.g. rolling_* functions after min_periods was renamed to min_samples) with both kwargs at once: df.rolling_mean('a', min_periods=2, min_samples=2).","commonSituations":"Copy-pasted calls that append the new parameter while leaving the old one in place; merge conflicts during migration; wrapper functions forwarding **kwargs plus an explicit new argument.","solutions":["Delete the old parameter name from the call and keep only the new one","Audit wrapper functions that forward **kwargs alongside explicit keyword arguments","Grep the codebase for the old parameter name to catch other call sites"],"exampleFix":"# before\ndf.rolling_mean('a', window_size=3, min_periods=2, min_samples=2)\n# after\ndf.rolling_mean('a', window_size=3, min_samples=2)","handlingStrategy":"validation","validationCode":"old, new = 'min_periods', 'min_samples'\nif old in kwargs and new in kwargs:\n    kwargs.pop(old)  # or raise in your own wrapper","typeGuard":null,"tryCatchPattern":"try:\n    fn(**kwargs)\nexcept Exception as e:\n    if 'received both' in str(e):\n        kwargs.pop('min_periods', None)\n        return fn(**kwargs)\n    raise","preventionTips":["Never forward **kwargs together with explicit renamed kwargs","Lint for known removed parameter names","Clean up old names immediately after a rename"],"tags":["python","polars","deprecated-parameter","rename","migration"],"backgroundTag":"renamed-parameter-conflict","analyzedSha":"5d8ebabf11caea54a5c29178a64a058762f49766","analyzedAt":"2026-08-28T18:02:35.179Z","contentChangedAt":"2026-08-28T18:02:35.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}