diff options
| author | Robert Honz <exislow+github@gmail.com> | 2024-03-26 07:10:01 +0100 |
|---|---|---|
| committer | Robert Honz <exislow+github@gmail.com> | 2024-03-26 07:10:01 +0100 |
| commit | 6e050be9d62522e91152aa3c22ca5127bb0462ef (patch) | |
| tree | 720c4d2ad0e1a143f78013220bf425464f73a3b0 /tidal_dl_ng/__init__.py | |
| parent | 2340850c8d4eeb05953308b79ffffdf7da59a8fa (diff) | |
| download | tidal-dl-ng-6e050be9d62522e91152aa3c22ca5127bb0462ef.tar.gz | |
✨ Version is correctly shown in PyInstaller running mode. Running the app from source code points to dev config dir (`~/.config/tidal_dl_ng-dev`).
Diffstat (limited to 'tidal_dl_ng/__init__.py')
| -rw-r--r-- | tidal_dl_ng/__init__.py | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/tidal_dl_ng/__init__.py b/tidal_dl_ng/__init__.py index 8ae40cf..93add50 100644 --- a/tidal_dl_ng/__init__.py +++ b/tidal_dl_ng/__init__.py @@ -1,5 +1,48 @@ #!/usr/bin/env python -from usingversion import getattr_with_version +import importlib.metadata +import sys +from pathlib import Path -__getattr__ = getattr_with_version("mypackage", __file__, __name__) -__name_display__ = __package__ or __name__ +import toml + + +def get_version_app() -> str: + file_path: Path = Path(__file__) + + paths: [Path] = [ + file_path.parent, + file_path.parent.parent, + file_path.parent.parent.parent, + ] + version: str = "0.0.0" + + for pyproject_toml_dir in paths: + pyproject_toml_file: Path = pyproject_toml_dir / "pyproject.toml" + + if pyproject_toml_file.exists() and pyproject_toml_file.is_file(): + package_version: str = toml.load(pyproject_toml_file)["tool"]["poetry"]["version"] + + version = package_version + + break + + return version + + +def get_name_app() -> str: + name_app: str = __package__ or __name__ + + # Check if package is running from source code == dev mode + # If package is not running in PyInstaller environment. + if getattr(sys, "frozen", True) and not hasattr(sys, "_MEIPASS"): + try: + importlib.metadata.version(name_app) + except: + # If package is not installed + name_app = name_app + "-dev" + + return name_app + + +__name_display__ = get_name_app() +__version__ = get_version_app() |
