From 9a4fa2e98a505e298ac9e36572a923c484e2004d Mon Sep 17 00:00:00 2001 From: Ludwig Neste <31670556+The-Ludwig@users.noreply.github.com> Date: Wed, 8 Nov 2023 12:53:19 -0500 Subject: [PATCH] add --version flag and upgrade version handling (#88) * add --version flag and upgrade version handling --- panama/__init__.py | 4 ++-- panama/cli/cli.py | 6 +++--- panama/cli/corsika_to_hdf5.py | 4 ++-- panama/cli/run.py | 4 ++-- panama/{_logo.py => version.py} | 11 ++++++----- pyproject.toml | 4 ++-- tests/test_logo.py | 6 ------ tests/test_meta.py | 11 +++++++++++ 8 files changed, 28 insertions(+), 22 deletions(-) rename panama/{_logo.py => version.py} (85%) delete mode 100644 tests/test_logo.py create mode 100644 tests/test_meta.py diff --git a/panama/__init__.py b/panama/__init__.py index 19c74ae..44f8115 100644 --- a/panama/__init__.py +++ b/panama/__init__.py @@ -2,10 +2,9 @@ from .constants import PDGID_ERROR_VAL from .read import read_DAT from .run import CorsikaRunner +from .version import __logo__, __version__ from .weights import add_weight_prompt, add_weight_prompt_per_event, get_weights -__version__ = "0.7.1" - __all__ = ( "read_DAT", "get_weights", @@ -15,4 +14,5 @@ "cli", "PDGID_ERROR_VAL", "__version__", + "__logo__", ) diff --git a/panama/cli/cli.py b/panama/cli/cli.py index e9bbba4..944cf0d 100755 --- a/panama/cli/cli.py +++ b/panama/cli/cli.py @@ -2,15 +2,15 @@ import click +from ..version import __logo__ from .corsika_to_hdf5 import hdf5 from .run import run @click.group() @click.option("--debug", "-d", default=False, is_flag=True, help="Enable debug output") -def cli( - debug: bool, -) -> None: +@click.version_option(version=__logo__) +def cli(debug: bool) -> None: """ Command line interface for PANAMA, providing useful CORSIKA utilities. diff --git a/panama/cli/corsika_to_hdf5.py b/panama/cli/corsika_to_hdf5.py index 32aa46b..c462bc9 100644 --- a/panama/cli/corsika_to_hdf5.py +++ b/panama/cli/corsika_to_hdf5.py @@ -5,8 +5,8 @@ import click -from .._logo import get_logo from ..read import read_DAT +from ..version import __logo__ @click.command(context_settings={"show_default": True}) @@ -64,7 +64,7 @@ def hdf5( logger.setLevel(logging.DEBUG) logger.debug("debug log level activated") - logger.info(get_logo()) + logger.info(__logo__) files = list(input) diff --git a/panama/cli/run.py b/panama/cli/run.py index 741a3fa..9a6f92b 100644 --- a/panama/cli/run.py +++ b/panama/cli/run.py @@ -7,8 +7,8 @@ import click -from .._logo import get_logo from ..run import CorsikaRunner +from ..version import __logo__ DEFAULT_TMP_DIR = environ.get("TMP_DIR", "/tmp/PANAMA") CORSIKA_PATH = environ.get( @@ -133,7 +133,7 @@ def run( logger.setLevel(logging.DEBUG) logger.debug("debug log level activated") - logger.info(get_logo()) + logger.info(__logo__) n = 0 p = Path(tmp) diff --git a/panama/_logo.py b/panama/version.py similarity index 85% rename from panama/_logo.py rename to panama/version.py index dcb9cf5..1c896f1 100644 --- a/panama/_logo.py +++ b/panama/version.py @@ -1,3 +1,8 @@ +# from importlib.metadata import version, packages_distributions +# __version__ = version(__distribution__) +# __distribution__ = packages_distributions["panama"][0] +__version__ = "0.8.0" + LOGO_TEMPLATE = r""" ,-.----. ,--.das nd ____ ulticore utils for corsik 7 \ / \ ,---, ,--.'| ,---, ,' , `. ,---, @@ -15,8 +20,4 @@ `---` '---' '---' {} """ - -def get_logo() -> str: - from . import __version__ - - return LOGO_TEMPLATE.format(f"v{__version__}") +__logo__ = LOGO_TEMPLATE.format(f"v{__version__}") diff --git a/pyproject.toml b/pyproject.toml index 1042e1e..aa01a4b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] authors = [ - {name = "Ludwig Neste", email = "ludwig.neste@tu-dortmund.de"}, + {name = "Ludwig Neste", email = "ludwig.neste@fysik.su.se"}, ] license = {text = "MIT"} requires-python = ">= 3.8,<3.12" @@ -104,7 +104,7 @@ strict = false plugins = [ "sync-pre-commit-lock" ] -version = { source = "file", path = "panama/__init__.py" } +version = { source = "file", path = "panama/version.py" } [tool.pdm.dev-dependencies] dev = [ diff --git a/tests/test_logo.py b/tests/test_logo.py deleted file mode 100644 index 41bbb5d..0000000 --- a/tests/test_logo.py +++ /dev/null @@ -1,6 +0,0 @@ -from panama._logo import get_logo - -def test_logo(): - logo = get_logo() - assert len(logo) > 500 - assert "v" in logo diff --git a/tests/test_meta.py b/tests/test_meta.py new file mode 100644 index 0000000..64fcc46 --- /dev/null +++ b/tests/test_meta.py @@ -0,0 +1,11 @@ +from panama import __logo__, __version__ +from importlib.metadata import version + +def test_logo(): + logo = __logo__ + assert len(logo) > 500 + assert "v" in logo + + +def test_version(): + assert __version__ == version("corsika-panama").replace("+editable", "")