Coverage for src/loman/_extras.py: 100%

8 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-09-07 00:32 +0000

1"""Helpers for optional Loman features.""" 

2 

3from importlib import import_module 

4from types import ModuleType 

5 

6 

7def require(module: str, extra: str) -> ModuleType: 

8 """Import an optional dependency or explain how to install its extra.""" 

9 try: 

10 return import_module(module) 

11 except ImportError as exc: 

12 msg = f"'{module}' is required for loman's '{extra}' extra.\nInstall it with: pip install 'loman[{extra}]'" 

13 raise ImportError(msg) from exc