Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix 'PathDistribution' object has no attribute '_normalized_name' - Issue 61062 #61064

Merged
merged 2 commits into from Oct 21, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog/61062.fixed
@@ -0,0 +1 @@
Fixed conflict between importlib_metada from Salt and importlib.metadata from Python 3.10
30 changes: 17 additions & 13 deletions salt/_compat.py
Expand Up @@ -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