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
This commit is contained in:
Tim Burke 2023-03-10 21:17:32 -08:00
parent 0f2b567953
commit 16f0034e67
1 changed files with 22 additions and 8 deletions

View File

@ -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