summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/__init__.py
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-03-26 07:10:01 +0100
committerRobert Honz <exislow+github@gmail.com>2024-03-26 07:10:01 +0100
commit6e050be9d62522e91152aa3c22ca5127bb0462ef (patch)
tree720c4d2ad0e1a143f78013220bf425464f73a3b0 /tidal_dl_ng/__init__.py
parent2340850c8d4eeb05953308b79ffffdf7da59a8fa (diff)
downloadtidal-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__.py49
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()