You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.0 KiB
54 lines
2.0 KiB
From a58bbbe058df8f45872c43a95992f6a7a7914ab9 Mon Sep 17 00:00:00 2001
|
|
From: piterpunk <piterpunk@slackware.com>
|
|
Date: Fri, 15 Oct 2021 11:03:20 -0300
|
|
Subject: [PATCH] Fix _compat.py importlib logic for Python 3.10
|
|
|
|
Use the same logic in _compat.py and entrypoints.py to load
|
|
the same importlib.metadata. Python's built in implementation for
|
|
Python >= 3.10 and the Salt one for others.
|
|
---
|
|
salt/_compat.py | 30 +++++++++++++++++-------------
|
|
1 file changed, 17 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/salt/_compat.py b/salt/_compat.py
|
|
index 8149657bea61..a402f17a3c71 100644
|
|
--- a/salt/_compat.py
|
|
+++ b/salt/_compat.py
|
|
@@ -11,19 +11,23 @@
|
|
else:
|
|
import salt.ext.ipaddress as ipaddress
|
|
|
|
+if sys.version_info >= (3, 10):
|
|
+ # Python 3.10 will include a fix in importlib.metadata which allows us to
|
|
+ # get the distribution of a loaded entry-point
|
|
+ import importlib.metadata # pylint: disable=no-member,no-name-in-module
|
|
+else:
|
|
+ # importlib_metadata before version 3.3.0 does not include the functionality we need.
|
|
+ try:
|
|
+ import importlib_metadata
|
|
|
|
-# importlib_metadata before version 3.3.0 does not include the functionality we need.
|
|
-try:
|
|
- import importlib_metadata
|
|
-
|
|
- importlib_metadata_version = [
|
|
- int(part)
|
|
- for part in importlib_metadata.version("importlib_metadata").split(".")
|
|
- if part.isdigit()
|
|
- ]
|
|
- if tuple(importlib_metadata_version) < (3, 3, 0):
|
|
+ importlib_metadata_version = [
|
|
+ int(part)
|
|
+ for part in importlib_metadata.version("importlib_metadata").split(".")
|
|
+ if part.isdigit()
|
|
+ ]
|
|
+ if tuple(importlib_metadata_version) < (3, 3, 0):
|
|
+ # Use the vendored importlib_metadata
|
|
+ import salt.ext.importlib_metadata as importlib_metadata
|
|
+ except ImportError:
|
|
# Use the vendored importlib_metadata
|
|
import salt.ext.importlib_metadata as importlib_metadata
|
|
-except ImportError:
|
|
- # Use the vendored importlib_metadata
|
|
- import salt.ext.importlib_metadata as importlib_metadata
|