diff --git a/connectomics/volume/subvolume_processor.py b/connectomics/volume/subvolume_processor.py index 569b231..b325498 100644 --- a/connectomics/volume/subvolume_processor.py +++ b/connectomics/volume/subvolume_processor.py @@ -18,7 +18,8 @@ import dataclasses import enum import importlib -from typing import Any, List, Tuple, Optional, Union +import inspect +from typing import Any, List, Optional, Tuple, Type, Union from connectomics.common import array from connectomics.common import bounding_box @@ -42,6 +43,13 @@ timer_counter = COUNTER_STORE.timer_counter +def dataclass_configuration(cls: ...) -> Optional[Type]: # pylint:disable=g-bare-generic + init_params = inspect.signature(cls.__init__).parameters + if 'config' in init_params: + # TODO(timblakely): Also check to see if the class is an actual dataclass. + return init_params['config'].annotation + + @dataclasses.dataclass class SubvolumeProcessorConfig(dataclasses_json.DataClassJsonMixin): """Configuration for a given subvolume processor."""