Source code for todd.patches.py_.inspect
__all__ = [
'get_named_classes',
'get_classes',
]
import inspect
from types import ModuleType
from typing import Any
[docs]
def get_named_classes(module: ModuleType, *args) -> dict[str, type[Any]]:
named_classes = dict(inspect.getmembers(module, inspect.isclass))
if args:
named_classes = {
k: v
for k, v in named_classes.items()
if issubclass(v, args)
}
return named_classes
[docs]
def get_classes(*args, **kwargs) -> set[type[Any]]:
return set(get_named_classes(*args, **kwargs).values())