aboutsummaryrefslogtreecommitdiff
path: root/setuptools/_vendor/nspektr/_compat.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/_vendor/nspektr/_compat.py')
-rw-r--r--setuptools/_vendor/nspektr/_compat.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/setuptools/_vendor/nspektr/_compat.py b/setuptools/_vendor/nspektr/_compat.py
new file mode 100644
index 0000000..3278379
--- /dev/null
+++ b/setuptools/_vendor/nspektr/_compat.py
@@ -0,0 +1,21 @@
+import contextlib
+import sys
+
+
+if sys.version_info >= (3, 10):
+ import importlib.metadata as metadata
+else:
+ import setuptools.extern.importlib_metadata as metadata # type: ignore # noqa: F401
+
+
+def repair_extras(extras):
+ """
+ Repair extras that appear as match objects.
+
+ python/importlib_metadata#369 revealed a flaw in the EntryPoint
+ implementation. This function wraps the extras to ensure
+ they are proper strings even on older implementations.
+ """
+ with contextlib.suppress(AttributeError):
+ return list(item.group(0) for item in extras)
+ return extras