Coverage for .nox/test-3-9/lib/python3.9/site-packages/nskit/common/lazy.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.4.2, created at 2024-02-25 17:38 +0000

1"""Lazy import handlers.""" 

2import importlib.util 

3import sys 

4 

5 

6def lazy_import(name): 

7 """Lazy import to resolve circular behaviours.""" 

8 spec = importlib.util.find_spec(name) 

9 loader = importlib.util.LazyLoader(spec.loader) 

10 spec.loader = loader 

11 module = importlib.util.module_from_spec(spec) 

12 sys.modules[name] = module 

13 loader.exec_module(module) 

14 return module