Source code for sdgx.data_models.inspectors.manager

from __future__ import annotations

from typing import Any, Iterable

from sdgx.data_models import inspectors
from sdgx.data_models.inspectors import extension
from sdgx.data_models.inspectors.base import Inspector
from sdgx.data_models.inspectors.extension import project_name as PROJECT_NAME
from sdgx.manager import Manager


[docs] class InspectorManager(Manager): register_type = Inspector project_name = PROJECT_NAME hookspecs_model = extension @property def registed_inspectors(self): return self.registed_cls
[docs] def load_all_local_model(self): self._load_dir(inspectors)
[docs] def init_all_inspectors(self, **kwargs: Any) -> list[Inspector]: return [ self.init(inspector_name, **kwargs) for inspector_name in self.registed_inspectors.keys() ]
[docs] def init_inspcetors( self, includes: Iterable[str] | None = None, excludes: Iterable[str] | None = None, **kwargs: Any, ) -> list[Inspector]: includes = includes or self.registed_inspectors.keys() if excludes: includes = list(set(includes) - set(excludes)) return [self.init(inspector_name, **kwargs) for inspector_name in includes]