improve dynamic version handling

This commit is contained in:
sebthom
2024-01-12 11:05:54 +01:00
parent 11f47140dc
commit 9d1ecb2882
5 changed files with 12 additions and 5 deletions

3
.gitignore vendored
View File

@@ -8,7 +8,7 @@ _LOCAL/
/config.yaml /config.yaml
/data /data
/*.log /*.log
kleinanzeigen_bot/version.py kleinanzeigen_bot/_version.py
downloaded-ads downloaded-ads
# python # python
@@ -19,6 +19,7 @@ __pycache__
/.eggs /.eggs
/*.egg-info /*.egg-info
/.mypy_cache /.mypy_cache
/.pdm-build/
/.pdm-python /.pdm-python
# Eclipse # Eclipse

View File

@@ -21,6 +21,7 @@ from wcmatch import glob
from . import utils, resources, extract # pylint: disable=W0406 from . import utils, resources, extract # pylint: disable=W0406
from .utils import abspath, apply_defaults, ensure, is_frozen, pause, pluralize, safe_get, parse_datetime from .utils import abspath, apply_defaults, ensure, is_frozen, pause, pluralize, safe_get, parse_datetime
from .selenium_mixin import SeleniumMixin from .selenium_mixin import SeleniumMixin
from ._version import __version__
# W0406: possibly a bug, see https://github.com/PyCQA/pylint/issues/3933 # W0406: possibly a bug, see https://github.com/PyCQA/pylint/issues/3933
@@ -65,7 +66,7 @@ class KleinanzeigenBot(SeleniumMixin):
self.webdriver = None self.webdriver = None
def get_version(self) -> str: def get_version(self) -> str:
return importlib.metadata.version(__package__).removesuffix(".editable") return __version__
def run(self, args:list[str]) -> None: def run(self, args:list[str]) -> None:
self.parse_args(args) self.parse_args(args)

2
pdm.lock generated
View File

@@ -5,7 +5,7 @@
groups = ["default", "dev"] groups = ["default", "dev"]
strategy = ["cross_platform"] strategy = ["cross_platform"]
lock_version = "4.4" lock_version = "4.4"
content_hash = "sha256:930f2d57b643fd0760e15f2d6122924b5b852854847f60930b3c560245ec9565" content_hash = "sha256:31e08632466483bf5426a94adae78e76efb6f9a2473c3a3952b74ca41ee3602d"
[[package]] [[package]]
name = "altgraph" name = "altgraph"

View File

@@ -6,12 +6,15 @@ SPDX-ArtifactOfProjectHomePage: https://github.com/Second-Hand-Friends/kleinanze
PyInstaller config file, see https://pyinstaller.readthedocs.io/en/stable/spec-files.html PyInstaller config file, see https://pyinstaller.readthedocs.io/en/stable/spec-files.html
""" """
from PyInstaller.utils.hooks import copy_metadata, collect_data_files from PyInstaller.utils.hooks import collect_data_files
datas = [ datas = [
* copy_metadata('kleinanzeigen_bot'), # required to get version info
* collect_data_files("kleinanzeigen_bot"), # embeds *.yaml files * collect_data_files("kleinanzeigen_bot"), # embeds *.yaml files
* collect_data_files("selenium_stealth"), # embeds *.js files * collect_data_files("selenium_stealth"), # embeds *.js files
# required to get version info via 'importlib.metadata.version(__package__)'
# but we use https://backend.pdm-project.org/metadata/#writing-dynamic-version-to-file
# * copy_metadata('kleinanzeigen_bot'),
] ]
excluded_modules = [ excluded_modules = [

View File

@@ -56,6 +56,8 @@ Issues = "https://github.com/Second-Hand-Friends/kleinanzeigen-bot/issues"
[tool.pdm.version] # https://backend.pdm-project.org/metadata/#dynamic-project-version [tool.pdm.version] # https://backend.pdm-project.org/metadata/#dynamic-project-version
source = "call" source = "call"
getter = "version:get_version" getter = "version:get_version"
write_to = "kleinanzeigen_bot/_version.py"
write_template = "__version__ = '{}'\n"
[tool.pdm.dev-dependencies] [tool.pdm.dev-dependencies]
dev = [ dev = [