diff --git a/autoconf/dictable.py b/autoconf/dictable.py index 225e953..50b7ed6 100644 --- a/autoconf/dictable.py +++ b/autoconf/dictable.py @@ -64,6 +64,12 @@ def compound_key_dict(obj): def to_dict(obj, filter_args: Tuple[str, ...] = ()) -> dict: + if hasattr(obj, "dict"): + try: + return obj.dict() + except TypeError as e: + logger.debug(e) + if isinstance(obj, (int, float, str, bool, type(None))): return obj @@ -88,12 +94,6 @@ def to_dict(obj, filter_args: Tuple[str, ...] = ()) -> dict: "class_path": obj.__module__ + "." + obj.__qualname__, } - if hasattr(obj, "dict"): - try: - return obj.dict() - except TypeError as e: - logger.debug(e) - if is_array(obj): try: return nd_array_as_dict(obj)