Spaces:
Paused
Paused
Download src/version.py from ThomasHeisig/Brain-5D-Space: direct link, hf CLI and curl.
- Browser
- Download file 2.7 kB
-
https://huggingface.co/spaces/ThomasHeisig/Brain-5D-Space/resolve/main/src/version.py
- Command line
-
hf download hf://spaces/ThomasHeisig/Brain-5D-Space/src/version.py
-
curl -L -o version.py https://huggingface.co/spaces/ThomasHeisig/Brain-5D-Space/resolve/main/src/version.py
2.7 kB
| """Canonical Brain-5D version source. | |
| All version strings in the project should derive from this single source. | |
| Use ``BRAIN5D_VERSION`` for the PEP-440 compatible version string and | |
| ``BRAIN5D_VERSION_DISPLAY`` for human-readable display. | |
| Usage: | |
| >>> from src.version import BRAIN5D_VERSION, BRAIN5D_VERSION_DISPLAY | |
| >>> print(BRAIN5D_VERSION) | |
| 0.5.0a7 | |
| >>> print(BRAIN5D_VERSION_DISPLAY) | |
| 0.5.0-alpha.7 | |
| """ | |
| from __future__ import annotations | |
| from importlib.metadata import PackageNotFoundError | |
| from importlib.metadata import version as _pkg_version | |
| # ============================================================================ | |
| # Canonical version — single source of truth | |
| # ============================================================================ | |
| # The authoritative version is in pyproject.toml. At runtime we attempt to | |
| # read it from the installed package metadata. If the package is not | |
| # installed (e.g. running from source), we fall back to a hardcoded value | |
| # that MUST match pyproject.toml. | |
| # The authoritative version is in pyproject.toml. We attempt to read it | |
| # from the installed package metadata, but fall back to pyproject.toml | |
| # directly if the package is not installed or the version is stale. | |
| _pyproject_version: str | None = None | |
| try: | |
| import re as _re | |
| from pathlib import Path as _Path | |
| _src_dir = _Path(__file__).resolve().parent | |
| _project_root = _src_dir.parent | |
| _pyproject_path = _project_root / "pyproject.toml" | |
| if _pyproject_path.exists(): | |
| _text = _pyproject_path.read_text(encoding="utf-8") | |
| _match = _re.search(r'^version\s*=\s*"([^"]+)"', _text, _re.MULTILINE) | |
| if _match: | |
| _pyproject_version = _match.group(1) | |
| except Exception: | |
| pass | |
| try: | |
| _pkg_version_str: str = _pkg_version("brain5d-core") | |
| # If the installed version is older than the pyproject.toml version, | |
| # prefer pyproject.toml (likely running from source with stale install) | |
| if _pyproject_version is not None and _pkg_version_str != _pyproject_version: | |
| _pkg_version_str = _pyproject_version | |
| except PackageNotFoundError: | |
| _pkg_version_str = _pyproject_version or "0.5.0a7" | |
| BRAIN5D_VERSION: str = _pkg_version_str | |
| """PEP-440 compatible version string (e.g. '0.5.0a7').""" | |
| # Normalize for human-readable display | |
| # PEP-440: 0.5.0a5 -> 0.5.0-alpha.5 | |
| _BASE = BRAIN5D_VERSION | |
| if "a" in _BASE: | |
| _parts = _BASE.split("a", 1) | |
| _display: str = f"{_parts[0]}-alpha.{_parts[1]}" | |
| elif "b" in _BASE: | |
| _parts = _BASE.split("b", 1) | |
| _display = f"{_parts[0]}-beta.{_parts[1]}" | |
| else: | |
| _display = _BASE | |
| BRAIN5D_VERSION_DISPLAY: str = _display | |
| """Human-readable version string (e.g. '0.5.0-alpha.7').""" | |