Coverage for src/lpip/__init__.py: 55%

18 statements  

« prev     ^ index     » next       coverage.py v7.16.1, created at 2026-09-17 20:20 +0000

1"""lpip — installable package.""" 

2 

3from __future__ import annotations 

4 

5import re 

6from importlib.metadata import PackageNotFoundError, version 

7from pathlib import Path 

8 

9DISTRIBUTION_NAME = "esys-lpip" 

10_PROJECT_VERSION = re.compile(r'^version\s*=\s*"(?P<version>[^"]+)"\s*$', re.MULTILINE) 

11 

12 

13def _pyproject_version() -> str: 

14 pyproject = Path(__file__).resolve().parents[2] / "pyproject.toml" 

15 match = _PROJECT_VERSION.search(pyproject.read_text(encoding="utf-8")) 

16 if match is None: 

17 raise RuntimeError(f"missing [project].version in {pyproject}") 

18 return match.group("version") 

19 

20 

21try: 

22 __version__ = version(DISTRIBUTION_NAME) 

23except PackageNotFoundError: 

24 __version__ = _pyproject_version() 

25 

26 

27def format_cli_version() -> str: 

28 return f"lpip {__version__}"