|
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()) |
|
|