From 16f0034e67f16cb81912bcc6a0f7ac9823f32e1f Mon Sep 17 00:00:00 2001 From: Tim Burke Date: Fri, 10 Mar 2023 21:17:32 -0800 Subject: Switch from pkg_resources to importlib Seen on Arch Linux: ModuleNotFoundError: No module named 'pkg_resources' On new enough Python, we don't need it anyway. Change-Id: I3d46319a36a1c2477e9f7dae0c7e40a362a17639 --- swiftclient/version.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/swiftclient/version.py b/swiftclient/version.py index 6f01f36..4a03ce9 100644 --- a/swiftclient/version.py +++ b/swiftclient/version.py @@ -12,16 +12,30 @@ # License for the specific language governing permissions and limitations # under the License. -import pkg_resources +version_string = None +# First, try to get our version out of PKG-INFO. If we're installed, +# this'll let us find our version without pulling in pbr. After all, if +# we're installed on a system, we're not in a Git-managed source tree, so +# pbr doesn't really buy us anything. try: - # First, try to get our version out of PKG-INFO. If we're installed, - # this will let us find our version without pulling in pbr. After all, if - # we're installed on a system, we're not in a Git-managed source tree, so - # pbr doesn't really buy us anything. - version_string = pkg_resources.get_provider( - pkg_resources.Requirement.parse('python-swiftclient')).version -except pkg_resources.DistributionNotFound: + import importlib.metadata +except ImportError: + # python < 3.8 + import pkg_resources + try: + version_string = pkg_resources.get_provider( + pkg_resources.Requirement.parse('python-swiftclient')).version + except pkg_resources.DistributionNotFound: + pass +else: + try: + version_string = importlib.metadata.distribution( + 'python-swiftclient').version + except importlib.metadata.PackageNotFoundError: + pass + +if version_string is None: # No PKG-INFO? We're probably running from a checkout, then. Let pbr do # its thing to figure out a version number. import pbr.version -- cgit v1.2.1