{"record":{"id":"55aa78868f8cb4cb","repo":"pola-rs/polars","slug":"from-lazyframe-resolver-expected-instance-of-la","errorCode":null,"errorMessage":"from_lazyframe.resolver(): expected instance of LazyFrameResolver, got: {resolver = } {type(resolver) = }","messagePattern":"from_lazyframe\\.resolver\\(\\): expected instance of LazyFrameResolver, got: (.+?) (.+?)","errorType":"validation","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"py-polars/src/polars/lazyframe/frame.py","lineNumber":393,"sourceCode":"            .lazy()\n            ._ldf\n        )\n\n    @classmethod\n    def from_lazyframe_resolver(cls, resolver: LazyFrameResolver) -> LazyFrame:\n        \"\"\"\n        Create a LazyFrame from a LazyFrame resolver.\n\n        .. warning::\n                This functionality is considered **unstable**. It may be changed\n                at any point without it being considered a breaking change.\n        \"\"\"\n        if not isinstance(resolver, LazyFrameResolver):\n            msg = (\n                \"from_lazyframe.resolver(): expected instance of LazyFrameResolver, \"\n                f\"got: {resolver = } {type(resolver) = }\"\n            )\n            raise TypeError(msg)\n\n        return wrap_ldf(PyLazyFrame.from_lazyframe_resolver(resolver))\n\n    @classmethod\n    def _from_pyldf(cls, ldf: PyLazyFrame) -> LazyFrame:\n        self = cls.__new__(cls)\n        self._ldf = ldf\n        return self\n\n    def _with_height_column(self) -> LazyFrame:\n        \"\"\"Add a private dummy column that preserves the input height.\"\"\"\n        return self.with_columns(F.lit({}, dtype=Struct({})).alias(_HEIGHT_COLUMN))\n\n    def _drop_height_column(self) -> LazyFrame:\n        \"\"\"Drop the dummy column added by `_with_height_column()`.\"\"\"\n        return self.drop(_HEIGHT_COLUMN)\n\n    def _height_preserving(self, op: Callable[[LazyFrame], LazyFrame]) -> LazyFrame:","sourceCodeStart":375,"sourceCodeEnd":411,"githubUrl":"https://github.com/pola-rs/polars/blob/68506541d2de983056c9eb244e1ea05fab377dfc/py-polars/src/polars/lazyframe/frame.py#L375-L411","documentation":"LazyFrame.from_lazyframe(...) with a resolver argument requires `resolver` to be an actual LazyFrameResolver instance. Any other object (None, a string, a callable, a wrapped proxy) raises this TypeError, echoing the value and its type to help identify what was passed.","triggerScenarios":"Calling LazyFrame.from_lazyframe(lf, resolver=<x>) where x is not an instance of polars.lazyframe.frame.LazyFrameResolver — e.g. passing a plain function, a string name of a resolver, None, or a resolver class instead of an instance.","commonSituations":"Confusing the resolver class with an instance; passing an older-style callback; mixing polars versions where the resolver type lives in a different module so isinstance fails across duplicate imports.","solutions":["Construct and pass a LazyFrameResolver instance (e.g. LazyFrameResolver(...) or the factory that produces one), not a class or callable.","Check `isinstance(resolver, LazyFrameResolver)` before the call; inspect the printed type(resolver) in the message to see what you actually passed.","Ensure a single polars installation is imported (no duplicated/aliased polars packages) so the isinstance check matches."],"exampleFix":"// before\nlf2 = LazyFrame.from_lazyframe(lf, resolver=my_resolver_fn)\n// after\nresolver = LazyFrameResolver(my_resolver_fn)\nlf2 = LazyFrame.from_lazyframe(lf, resolver=resolver)","handlingStrategy":"type-guard","validationCode":"from polars.lazyframe.frame import LazyFrameResolver\nif not isinstance(resolver, LazyFrameResolver):\n    raise TypeError(f\"resolver must be LazyFrameResolver, got {type(resolver)}\")","typeGuard":"def is_lazyframe_resolver(resolver) -> bool:\n    from polars.lazyframe.frame import LazyFrameResolver\n    return isinstance(resolver, LazyFrameResolver)","tryCatchPattern":"try:\n    out = LazyFrame.from_lazyframe(lf, resolver=resolver)\nexcept TypeError as e:\n    if \"expected instance of LazyFrameResolver\" in str(e):\n        resolver = LazyFrameResolver(resolver)\n        out = LazyFrame.from_lazyframe(lf, resolver=resolver)\n    else:\n        raise","preventionTips":["Pass instances, not classes or callables","Import LazyFrameResolver from a single canonical module path","Pin one polars version to avoid isinstance failing across duplicate installs","Assert resolver type in tests around from_lazyframe"],"tags":["python","types","lazyframe","type-error"],"backgroundTag":"type-mismatch","analyzedSha":"68506541d2de983056c9eb244e1ea05fab377dfc","analyzedAt":"2026-09-10T10:08:55.499Z","contentChangedAt":"2026-09-10T10:08:55.499Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}