From c292f3252c6aa98c372aae8e8aca006ea3d5ba25 Mon Sep 17 00:00:00 2001 From: "John T. Wodder II" Date: Tue, 13 Apr 2021 09:00:01 -0400 Subject: [PATCH] Replace pkg_resource with importlib.metadata --- duecredit/versions.py | 12 ++++++++---- setup.py | 7 ++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/duecredit/versions.py b/duecredit/versions.py index 0bc2483..a00074b 100644 --- a/duecredit/versions.py +++ b/duecredit/versions.py @@ -9,12 +9,16 @@ """Module to help maintain a registry of versions for external modules etc """ import sys -import pkg_resources from os import linesep from six import string_types from distutils.version import StrictVersion, LooseVersion +try: + from importlib.metadata import version as metadata_version +except ImportError: + from importlib_metadata import version as metadata_version + # To depict an unknown version, which can't be compared by mistake etc class UnknownVersion: @@ -57,15 +61,15 @@ def _deduce_version(klass, module): version = ".".join(str(x) for x in version) if not version: - # Try pkg_resources + # Try importlib.metadata # module name might be different, and I found no way to # deduce it for citeproc which comes from "citeproc-py" # distribution modname = module.__name__ try: - version = pkg_resources.get_distribution( + version = metadata_version( {'citeproc': 'citeproc-py'}.get(modname, modname) - ).version + ) except Exception: pass # oh well - no luck either diff --git a/setup.py b/setup.py index 9c20578..b182703 100755 --- a/setup.py +++ b/setup.py @@ -90,7 +90,12 @@ def find_packages(path, prefix): version=__version__, packages=list(find_packages([PACKAGE_ABSPATH], PACKAGE)), scripts=[], - install_requires=['requests', 'citeproc-py>=0.4', 'six'], + install_requires=[ + 'requests', + 'citeproc-py>=0.4', + 'six', + 'importlib-metadata; python_version<"3.8"', + ], extras_require={ 'tests': [ 'pytest',