Coverage for /Users/davegaeddert/Developer/dropseed/plain/plain-flags/plain/flags/bridge.py: 31%

16 statements  

« prev     ^ index     » next       coverage.py v7.6.9, created at 2024-12-23 11:16 -0600

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