summaryrefslogtreecommitdiff
path: root/swiftclient/version.py
diff options
context:
space:
mode:
Diffstat (limited to 'swiftclient/version.py')
-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