# HG changeset patch # User Vincent Hatakeyama <vincent.hatakeyama@xcg-consulting.fr> # Date 1698314055 -7200 # Thu Oct 26 11:54:15 2023 +0200 # Node ID e97dd245ce65193fd4c28effbca7008127efc01b # Parent 1374d9e0e7cedf010163a142c8d52ff4b16a910f ✨ add version mismatch detection diff --git a/NEWS.rst b/NEWS.rst --- a/NEWS.rst +++ b/NEWS.rst @@ -2,6 +2,11 @@ History ======= +20.13.0 +------- + +Add version detection. + 20.12.2 ------- diff --git a/odoo_scripts/config.py b/odoo_scripts/config.py --- a/odoo_scripts/config.py +++ b/odoo_scripts/config.py @@ -10,6 +10,9 @@ from glob import glob from typing import Any, Callable, Dict, List, Optional, Tuple, Union +from packaging.version import Version, parse + +from . import __version__ as version from .toml import loads as toml_loads SECTION = "odoo_scripts" @@ -193,16 +196,10 @@ if toread(key): setattr(self, key, value) - def version_formatter(value: str) -> Tuple[int, int, int]: - version_tuple = value.split(".") - return ( - int(version_tuple[0]) if len(version_tuple) >= 1 else 0, - int(version_tuple[1]) if len(version_tuple) >= 2 else 0, - int(version_tuple[2]) if len(version_tuple) >= 3 else 0, - ) - - self.min_version: Tuple[int, int, int] - read_expanded("min_version", (0, 0, 0), version_formatter) + self.min_version: Version + read_expanded("min_version", parse("0"), parse) + if hasattr(self, "min_version") and parse(version) < self.min_version: + _logger.error("Odoo scripts %s is less than %s", version, self.min_version) self.python_packages: Dict[str, Dict[str, Union[str, List[Tuple[str, str]]]]] if toread("python_packages"): diff --git a/pyproject.toml b/pyproject.toml --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ "importlib_metadata; python_version<'3.8'", "python-hglib", "tomli; python_version<='3.10'", + "packaging", ] [project.optional-dependencies]