diff --git a/tests/unit/mazepa/test_id_generation.py b/tests/unit/mazepa/test_id_generation.py index b5e5b23e8..93626cd43 100644 --- a/tests/unit/mazepa/test_id_generation.py +++ b/tests/unit/mazepa/test_id_generation.py @@ -51,6 +51,10 @@ def __init__(self, a): def method(self, b): return self.a * b + @property + def prop(self): + return self.a + @taskable_operation_cls() @attrs.mutable diff --git a/zetta_utils/mazepa/id_generation.py b/zetta_utils/mazepa/id_generation.py index 12f202cf3..bfca9c256 100644 --- a/zetta_utils/mazepa/id_generation.py +++ b/zetta_utils/mazepa/id_generation.py @@ -53,7 +53,14 @@ def _get_code_hash( _visited.add(id(fn)) for attribute_name in {x for x in dir(fn) if not x.startswith("__")}: + attrib = getattr(fn.__class__, attribute_name, None) + + if attrib is not None and isinstance(attrib, property): + _get_code_hash(attrib, _hash, _visited) # type: ignore + continue + attrib = getattr(fn, attribute_name) + if callable(attrib): _get_code_hash(attrib, _hash, _visited) else: