Plain is headed towards 1.0! Subscribe for development updates →

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