From 57d807bd0bf5b88f5e240b61610fba6fd086d090 Mon Sep 17 00:00:00 2001 From: David Douard <david.douard@sdfa3.org> Date: Tue, 21 May 2024 17:42:36 +0200 Subject: [PATCH] Replace usage of pkg_resources by importlib pkg_resources is now deprecated (as of setuptools 68) so use importlib instead. --- mypy.ini | 3 --- swh/loader/cli.py | 6 +++--- swh/loader/core/__init__.py | 9 ++++----- swh/loader/core/metadata_fetchers.py | 4 ++-- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/mypy.ini b/mypy.ini index f963d5d3..9eade790 100644 --- a/mypy.ini +++ b/mypy.ini @@ -18,9 +18,6 @@ ignore_missing_imports = True [mypy-iso8601.*] ignore_missing_imports = True -[mypy-pkg_resources.*] -ignore_missing_imports = True - [mypy-pkginfo.*] ignore_missing_imports = True diff --git a/swh/loader/cli.py b/swh/loader/cli.py index 13e8bc0c..bff156fe 100644 --- a/swh/loader/cli.py +++ b/swh/loader/cli.py @@ -3,13 +3,14 @@ # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information +from importlib.metadata import entry_points + # WARNING: do not import unnecessary things here to keep cli startup time under # control import logging from typing import Any import click -import pkg_resources from swh.core.cli import CONTEXT_SETTINGS from swh.core.cli import swh as swh_cli_group @@ -19,11 +20,10 @@ logger = logging.getLogger(__name__) LOADERS = { entry_point.name.split(".", 1)[1]: entry_point - for entry_point in pkg_resources.iter_entry_points("swh.workers") + for entry_point in entry_points(group="swh.workers") if entry_point.name.split(".", 1)[0] == "loader" } - SUPPORTED_LOADERS = sorted(list(LOADERS)) diff --git a/swh/loader/core/__init__.py b/swh/loader/core/__init__.py index 379324a6..2ade7d5b 100644 --- a/swh/loader/core/__init__.py +++ b/swh/loader/core/__init__.py @@ -1,15 +1,14 @@ -# Copyright (C) 2022-2023 The Software Heritage developers +# Copyright (C) 2022-2024 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information +from importlib.metadata import PackageNotFoundError, version from typing import Any, Mapping -import pkg_resources - try: - __version__ = pkg_resources.get_distribution("swh.loader.core").version -except pkg_resources.DistributionNotFound: + __version__ = version("swh.loader.core") +except PackageNotFoundError: __version__ = "devel" diff --git a/swh/loader/core/metadata_fetchers.py b/swh/loader/core/metadata_fetchers.py index c03dd6aa..fa1d0d5c 100644 --- a/swh/loader/core/metadata_fetchers.py +++ b/swh/loader/core/metadata_fetchers.py @@ -4,9 +4,9 @@ # See top-level LICENSE file for more information import functools +from importlib.metadata import entry_points from typing import Dict, List, Optional, Set, Type -import pkg_resources from typing_extensions import Protocol, runtime_checkable from swh.model.model import Origin, RawExtrinsicMetadata @@ -41,7 +41,7 @@ class MetadataFetcherProtocol(Protocol): @functools.lru_cache() def _fetchers() -> List[Type[MetadataFetcherProtocol]]: classes = [] - for entry_point in pkg_resources.iter_entry_points("swh.loader.metadata"): + for entry_point in entry_points(group="swh.loader.metadata"): classes.append(entry_point.load()) return classes -- GitLab