class_loader.py 657 B

12345678910111213141516171819202122232425
  1. import importlib
  2. import logging
  3. def load_class(name: str):
  4. """
  5. load class by name
  6. """
  7. name_components = name.split(".")
  8. if not name_components:
  9. logging.error("Invalid class name: %s", name)
  10. return
  11. module_name = ".".join(name_components[:-1])
  12. class_name = name_components[-1]
  13. try:
  14. module = importlib.import_module(module_name)
  15. a_class = getattr(module, class_name)
  16. logging.info("load class: %s", a_class)
  17. return a_class
  18. except ImportError:
  19. logging.error("Module not found: %s", name)
  20. except AttributeError:
  21. logging.error("Class not found: %s", name)