diff options
author | Tim Burke <tim.burke@gmail.com> | 2023-03-10 21:17:32 -0800 |
---|---|---|
committer | Tim Burke <tim.burke@gmail.com> | 2023-03-14 10:41:52 -0700 |
commit | 16f0034e67f16cb81912bcc6a0f7ac9823f32e1f (patch) | |
tree | 9a0047b6cf29cdb9b07e02420a2fa6d5283cb1e3 | |
parent | 0f2b567953c9cdcd566eff30d15aefa717ee47db (diff) | |
download | python-swiftclient-16f0034e67f16cb81912bcc6a0f7ac9823f32e1f.tar.gz |
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
-rw-r--r-- | swiftclient/version.py | 30 |
1 files 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 |