1from types import ModuleType
2
3from plain.runtime import settings
4
5from . import exceptions
6from .flags import Flag
7
8
9def get_flags_module() -> ModuleType:
10 flags_module = settings.FLAGS_MODULE
11
12 try:
13 return __import__(flags_module)
14 except ImportError as e:
15 raise exceptions.FlagImportError(
16 f"Could not import {flags_module} module"
17 ) from e
18
19
20def get_flag_class(flag_name: str) -> Flag:
21 flags_module = get_flags_module()
22
23 try:
24 flag_class = getattr(flags_module, flag_name)
25 except AttributeError as e:
26 raise exceptions.FlagImportError(
27 f"Could not find {flag_name} in {flags_module} module"
28 ) from e
29
30 return flag_class