{"record":{"id":"82f4eb4f1a2d825d","repo":"pola-rs/polars","slug":"unexpected-parameter-type-type-param-r","errorCode":null,"errorMessage":"Unexpected parameter type: {type(param)!r}","messagePattern":"Unexpected parameter type: (.+?)","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"py-polars/src/polars/_utils/expired.py","lineNumber":161,"sourceCode":"            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)\n","sourceCodeStart":143,"sourceCodeEnd":162,"githubUrl":"https://github.com/pola-rs/polars/blob/5d8ebabf11caea54a5c29178a64a058762f49766/py-polars/src/polars/_utils/expired.py#L143-L162","documentation":"Defensive TypeError inside polars' _raise_removed_argument_error indicating that the parameter object passed to the removed_parameters decorator machinery is neither RenamedParameter nor RemovedParameter. It signals an internal programming error in polars or a misuse of the private decorator API, not a user data problem.","triggerScenarios":"Registering a custom or unsupported parameter class with polars' removed_parameters decorator, or monkeypatching the private expired module's parameter types; unreachable through normal public API calls.","commonSituations":"Library developers copying polars' expired-parameter helpers; polars contributors adding a new parameter type without extending the isinstance chain.","solutions":["If extending the decorator, add your branch before the else in _raise_removed_argument_error (contribute upstream)","Do not rely on private polars internals; vendor your own decorator","Report as a polars bug if reached without touching private APIs"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    fn(**kwargs)\nexcept TypeError as e:\n    if 'Unexpected parameter type' in str(e):\n        # internal misuse; report upstream\n        raise","preventionTips":["Do not depend on private polars internals","Vendor your own parameter decorator if you need similar behavior"],"tags":["python","polars","internal","defensive-check"],"backgroundTag":"library-internal-error","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"}