| from __future__ import annotations | |
| import re | |
| from importlib.metadata import PackageNotFoundError, version as distribution_version | |
| from pathlib import Path | |
| DISTRIBUTION_NAME = "openai-codex" | |
| UNKNOWN_VERSION = "0+unknown" | |
| def package_version() -> str: | |
| source_version = _source_tree_project_version() | |
| if source_version is not None: | |
| return source_version | |
| try: | |
| return distribution_version(DISTRIBUTION_NAME) | |
| except PackageNotFoundError: | |
| return UNKNOWN_VERSION | |
| def _source_tree_project_version() -> str | None: | |
| pyproject_path = Path(__file__).resolve().parents[2] / "pyproject.toml" | |
| if not pyproject_path.exists(): | |
| return None | |
| match = re.search( | |
| r'(?m)^version = "([^"]+)"$', | |
| pyproject_path.read_text(encoding="utf-8"), | |
| ) | |
| if match is None: | |
| return None | |
| return match.group(1) | |
| __version__ = package_version() | |