summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Burke <tim.burke@gmail.com>2023-03-10 21:17:32 -0800
committerTim Burke <tim.burke@gmail.com>2023-03-14 10:41:52 -0700
commit16f0034e67f16cb81912bcc6a0f7ac9823f32e1f (patch)
tree9a0047b6cf29cdb9b07e02420a2fa6d5283cb1e3
parent0f2b567953c9cdcd566eff30d15aefa717ee47db (diff)
downloadpython-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.py30
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