2023-12-19 23:58:57 +01:00
|
|
|
#!/usr/bin/env python
|
2024-03-26 07:10:01 +01:00
|
|
|
import importlib.metadata
|
|
|
|
|
import sys
|
|
|
|
|
from pathlib import Path
|
2023-12-19 23:58:57 +01:00
|
|
|
|
2024-03-26 07:10:01 +01:00
|
|
|
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()
|