diff --git a/private_gpt/utils/runner.py b/private_gpt/utils/runner.py index 0d2a1820..50c45559 100644 --- a/private_gpt/utils/runner.py +++ b/private_gpt/utils/runner.py @@ -1,8 +1,15 @@ +from __future__ import annotations + +from importlib.metadata import PackageNotFoundError, version +from pathlib import Path + + def get_version() -> str: - with open("version.txt", "r+") as version_file: + try: + return version("private-gpt") + except PackageNotFoundError: + version_file = Path(__file__).resolve().parents[2] / "version.txt" try: - release_version = version_file.read() - version_file.close() - return release_version - except OSError as e: - raise ImportError("Version file not found") from e + return version_file.read_text(encoding="utf-8").strip() + except OSError as exc: + raise ImportError("Version metadata not found") from exc diff --git a/pyproject.toml b/pyproject.toml index b5f95cae..22bce5a4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -348,6 +348,7 @@ packages = ["private_gpt"] [tool.hatch.build.targets.wheel.force-include] "settings.yaml" = "settings.yaml" +"version.txt" = "version.txt" "ui" = "ui" "scripts" = "scripts"