From 47758b1250d885f0789dfd5a7441e7da7146636d Mon Sep 17 00:00:00 2001 From: Nico Kemnitz Date: Thu, 28 Dec 2023 19:51:50 +0100 Subject: [PATCH] hotfix(id_generation): handle properties --- tests/unit/mazepa/test_id_generation.py | 4 ++++ zetta_utils/mazepa/id_generation.py | 7 +++++++ 2 files changed, 11 insertions(+) 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: