You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

_data_preprocessor_registry.py 1.1 kB

12345678910111213141516171819202122232425262728
  1. import typing
  2. from autogl.utils import universal_registry
  3. from . import _data_preprocessor
  4. class DataPreprocessorUniversalRegistry(universal_registry.UniversalRegistryBase):
  5. @classmethod
  6. def register_data_preprocessor(cls, name: str) -> typing.Callable[
  7. [typing.Type[_data_preprocessor.DataPreprocessor]],
  8. typing.Type[_data_preprocessor.DataPreprocessor]
  9. ]:
  10. def register_data_preprocessor(
  11. data_preprocessor: typing.Type[_data_preprocessor.DataPreprocessor]
  12. ) -> typing.Type[_data_preprocessor.DataPreprocessor]:
  13. if not issubclass(data_preprocessor, _data_preprocessor.DataPreprocessor):
  14. raise TypeError
  15. else:
  16. cls[name] = data_preprocessor
  17. return data_preprocessor
  18. return register_data_preprocessor
  19. @classmethod
  20. def get_data_preprocessor(cls, name: str) -> typing.Type[_data_preprocessor.DataPreprocessor]:
  21. if name not in cls:
  22. raise ValueError(f"Data Preprocessor with name \"{name}\" not exist")
  23. else:
  24. return cls[name]