From a415714cb09e2a8c77debf087212e7009cf43a13 Mon Sep 17 00:00:00 2001 From: Martin Massera Date: Thu, 18 Jul 2024 13:54:55 -0300 Subject: [PATCH] Using importlib instead of pkg_resources --- newsletter/__init__.py | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/newsletter/__init__.py b/newsletter/__init__.py index 6b350941..546fb084 100644 --- a/newsletter/__init__.py +++ b/newsletter/__init__.py @@ -1,7 +1,26 @@ -from pkg_resources import get_distribution, DistributionNotFound +PACKAGE_NAME = "django-newsletter" + +# importlib is available in python >= 3.8. +# Remove the except importError once support for python < 3.8 is dropped. try: - __version__ = get_distribution("django-newsletter").version -except DistributionNotFound: - # package is not installed - __version__ = None + from importlib.metadata import distribution, PackageNotFoundError + + def get_distribution_version(): + try: + return distribution(PACKAGE_NAME).version + except PackageNotFoundError: + # package is not installed + return None +except ImportError: + from pkg_resources import get_distribution, DistributionNotFound + + def get_distribution_version(): + try: + return get_distribution(PACKAGE_NAME).version + except DistributionNotFound: + # package is not installed + return None + + +__version__ = get_distribution_version()