diff --git a/pyproject.toml b/pyproject.toml index 46aaf259..9eb1a07a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] -requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" +requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"] +build-backend = "poetry_dynamic_versioning.backend" [tool.poetry] name = "pineko" diff --git a/src/pineko/__init__.py b/src/pineko/__init__.py index 4b2068e6..884fc4b9 100644 --- a/src/pineko/__init__.py +++ b/src/pineko/__init__.py @@ -1,2 +1,3 @@ """pineko = PineAPPL + EKO.""" from .cli import command +from .version import __version__ diff --git a/src/pineko/evolve.py b/src/pineko/evolve.py index f2b884c1..86adac06 100644 --- a/src/pineko/evolve.py +++ b/src/pineko/evolve.py @@ -3,6 +3,7 @@ import logging import os import pathlib +from importlib import metadata import eko import eko.basis_rotation as br @@ -136,6 +137,11 @@ def write_operator_card(pineappl_grid, default_card, card_path, tcard): operators_card["configs"]["interpolation_polynomial_degree"] = 1 operators_card["xgrid"] = x_grid.tolist() + # Add the version of eko and pineko to the operator card + # using importlib.metadata.version to get the correct tag in editable mode + operators_card["eko_version"] = metadata.version("eko") + pineko_version = metadata.version("pineko") + # Some safety checks if ( operators_card["configs"]["evolution_method"] == "truncated" @@ -147,6 +153,8 @@ def write_operator_card(pineappl_grid, default_card, card_path, tcard): with open(card_path, "w", encoding="UTF-8") as f: yaml.safe_dump(operators_card, f) + f.write(f"# {pineko_version=}") + return operators_card["xgrid"], q2_grid