Skip to content

Commit

Permalink
fix(core): fix get_params() when using deferreds
Browse files Browse the repository at this point in the history
  • Loading branch information
deepyaman committed Sep 13, 2024
1 parent 32dc26e commit 6c8c815
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions ibis_ml/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import ibis
import ibis.expr.operations as ops
import ibis.expr.types as ir
from ibis.common.deferred import Deferred
from ibis.common.dispatch import lazy_singledispatch

if TYPE_CHECKING:
Expand Down Expand Up @@ -363,7 +364,7 @@ def get_params(self, deep=True) -> dict[str, Any]:
Notes
-----
Copied from [1]_.
Derived from [1]_.
References
----------
Expand All @@ -372,7 +373,12 @@ def get_params(self, deep=True) -> dict[str, Any]:
out = {}
for key in self._get_param_names():
value = getattr(self, key)
if deep and hasattr(value, "get_params") and not isinstance(value, type):
if (
deep
and hasattr(value, "get_params")
# `hasattr()` always returns `True` for deferred objects
and not isinstance(value, (type, Deferred))
):
deep_items = value.get_params().items()
out.update((key + "__" + k, val) for k, val in deep_items)
out[key] = value
Expand Down

0 comments on commit 6c8c815

Please sign in to comment.