from importlib import import_module from inspect import isclass from pathlib import Path from pkgutil import iter_modules from .base import BaseSession sessions_class = [] sessions_names = [] package_dir = Path(__file__).resolve().parent for _b, module_name, _p in iter_modules([str(package_dir)]): module = import_module(f"{__name__}.{module_name}") for attribute_name in dir(module): attribute = getattr(module, attribute_name) if ( isclass(attribute) and issubclass(attribute, BaseSession) and attribute != BaseSession ): sessions_class.append(attribute) sessions_names.append(attribute.name())