From cf01699c5fba4d24bb81cce5c2f8bf024ffee265 Mon Sep 17 00:00:00 2001 From: Stephen Kitt Date: Sat, 5 Oct 2024 10:47:01 +0200 Subject: [PATCH] Use packaging.version instead of pkg_resources (#966) pkg_resources is deprecated, this removes one set of uses. Signed-off-by: Stephen Kitt --- inputremapper/configs/mapping.py | 6 ++---- inputremapper/configs/migrations.py | 22 +++++++++++----------- tests/unit/test_migrations.py | 6 +++--- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/inputremapper/configs/mapping.py b/inputremapper/configs/mapping.py index f98c320d3..dbe160c1f 100644 --- a/inputremapper/configs/mapping.py +++ b/inputremapper/configs/mapping.py @@ -21,9 +21,9 @@ import enum from collections import namedtuple +from packaging import version from typing import Optional, Callable, Tuple, TypeVar, Union, Any, Dict -import pkg_resources from evdev.ecodes import ( EV_KEY, EV_ABS, @@ -84,9 +84,7 @@ # TODO: remove pydantic VERSION check as soon as we no longer support # Ubuntu 20.04 and with it the ancient pydantic 1.2 -needs_workaround = pkg_resources.parse_version( - str(VERSION) -) < pkg_resources.parse_version("1.7.1") +needs_workaround = version.parse(str(VERSION)) < version.parse("1.7.1") EMPTY_MAPPING_NAME: str = _("Empty Mapping") diff --git a/inputremapper/configs/migrations.py b/inputremapper/configs/migrations.py index 9b65cc73d..7c258e711 100644 --- a/inputremapper/configs/migrations.py +++ b/inputremapper/configs/migrations.py @@ -30,9 +30,9 @@ import re import shutil from pathlib import Path +from packaging import version from typing import Iterator, Tuple, Dict, List -import pkg_resources from evdev.ecodes import ( EV_KEY, EV_ABS, @@ -86,15 +86,15 @@ def config_version(): config_path = os.path.join(CONFIG_PATH, "config.json") if not os.path.exists(config_path): - return pkg_resources.parse_version("0.0.0") + return version.parse("0.0.0") with open(config_path, "r") as file: config = json.load(file) if "version" in config.keys(): - return pkg_resources.parse_version(config["version"]) + return version.parse(config["version"]) - return pkg_resources.parse_version("0.0.0") + return version.parse("0.0.0") def _config_suffix(): @@ -481,27 +481,27 @@ def migrate(): v = config_version() - if v < pkg_resources.parse_version("0.4.0"): + if v < version.parse("0.4.0"): _config_suffix() _preset_path() - if v < pkg_resources.parse_version("1.2.2"): + if v < version.parse("1.2.2"): _mapping_keys() - if v < pkg_resources.parse_version("1.4.0"): + if v < version.parse("1.4.0"): global_uinputs.prepare_all() _add_target() - if v < pkg_resources.parse_version("1.4.1"): + if v < version.parse("1.4.1"): _otherwise_to_else() - if v < pkg_resources.parse_version("1.5.0"): + if v < version.parse("1.5.0"): _remove_logs() - if v < pkg_resources.parse_version("1.6.0-beta"): + if v < version.parse("1.6.0-beta"): _convert_to_individual_mappings() # add new migrations here - if v < pkg_resources.parse_version(VERSION): + if v < version.parse(VERSION): _update_version() diff --git a/tests/unit/test_migrations.py b/tests/unit/test_migrations.py index fa56abbb4..da6946bcf 100644 --- a/tests/unit/test_migrations.py +++ b/tests/unit/test_migrations.py @@ -20,7 +20,7 @@ import unittest import shutil import json -import pkg_resources +from packaging import version from evdev.ecodes import ( EV_KEY, @@ -380,7 +380,7 @@ def test_add_version(self): file.write("{}") migrate() - self.assertEqual(pkg_resources.parse_version(VERSION), config_version()) + self.assertEqual(version.parse(VERSION), config_version()) def test_update_version(self): path = os.path.join(CONFIG_PATH, "config.json") @@ -389,7 +389,7 @@ def test_update_version(self): json.dump({"version": "0.1.0"}, file) migrate() - self.assertEqual(pkg_resources.parse_version(VERSION), config_version()) + self.assertEqual(version.parse(VERSION), config_version()) def test_config_version(self): path = os.path.join(CONFIG_PATH, "config.json")