lpip

src/lpip/__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"""lpip — installable package."""

from __future__ import annotations

import re
from importlib.metadata import PackageNotFoundError, version
from pathlib import Path

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


def _pyproject_version() -> str:
    pyproject = Path(__file__).resolve().parents[2] / "pyproject.toml"
    match = _PROJECT_VERSION.search(pyproject.read_text(encoding="utf-8"))
    if match is None:
        raise RuntimeError(f"missing [project].version in {pyproject}")
    return match.group("version")


try:
    __version__ = version(DISTRIBUTION_NAME)
except PackageNotFoundError:
    __version__ = _pyproject_version()


def format_cli_version() -> str:
    return f"lpip {__version__}"