diff --git a/mlair/helpers/datastore.py b/mlair/helpers/datastore.py index d6c977c717c5ef869fdba517fb36fcd55cfe3961..85de021e21deb93b481905a80e4a69ff9774b418 100644 --- a/mlair/helpers/datastore.py +++ b/mlair/helpers/datastore.py @@ -111,8 +111,15 @@ class TrackParameter: """ Call method of decorator. """ - self.track(*args) - return self.__wrapped__(*args, **kwargs) + name, obj, scope = self.track(*args) + f_name = self.__wrapped__.__name__ + try: + res = self.__wrapped__(*args, **kwargs) + logging.debug(f"{f_name}: {name}({scope})={res if obj is None else obj}") + except Exception as e: + logging.debug(f"{f_name}: {name}({scope})={obj}") + raise + return res def __get__(self, instance, cls): """Create bound method object and supply self argument to the decorated method. <Python Cookbook, p.347>""" @@ -120,13 +127,13 @@ class TrackParameter: def track(self, tracker_obj, *args): name, obj, scope = self._decrypt_args(*args) - logging.debug(f"{self.__wrapped__.__name__}: {name}({scope})={obj}") tracker = tracker_obj.tracker[-1] new_entry = {"method": self.__wrapped__.__name__, "scope": scope} if name in tracker: tracker[name].append(new_entry) else: tracker[name] = [new_entry] + return name, obj, scope @staticmethod def _decrypt_args(*args):