summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-03-29 22:38:09 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2021-03-29 22:38:09 -0400
commit2c2e01a0c6d0847f5648fd0120c8fa0bd5f6268f (patch)
tree225a3e4434725500f0882f38874bc8b05c1664b3
parent6d21db90147411790b811be573f7cc347f5bf1bf (diff)
downloadsqlalchemy-2c2e01a0c6d0847f5648fd0120c8fa0bd5f6268f.tar.gz
Adapt for importlib_metadata changes
importlib_metadata deprecates the .get() method and provides a different method .select() as of 3.7.1. Work around the deprecation warning in this case. Change-Id: I0f1849219e13a1c546f7bd24047d447823a15552
-rw-r--r--doc/build/changelog/unreleased_14/imp_met.rst7
-rw-r--r--lib/sqlalchemy/util/compat.py13
-rw-r--r--lib/sqlalchemy/util/langhelpers.py4
3 files changed, 21 insertions, 3 deletions
diff --git a/doc/build/changelog/unreleased_14/imp_met.rst b/doc/build/changelog/unreleased_14/imp_met.rst
new file mode 100644
index 000000000..0663b64b4
--- /dev/null
+++ b/doc/build/changelog/unreleased_14/imp_met.rst
@@ -0,0 +1,7 @@
+.. change::
+ :tags: bug, misc
+
+ Adjusted the usage of the ``importlib_metadata`` library for loading
+ setuptools entrypoints in order to accommodate for some deprecation
+ changes.
+
diff --git a/lib/sqlalchemy/util/compat.py b/lib/sqlalchemy/util/compat.py
index ad419cba2..ca92fb125 100644
--- a/lib/sqlalchemy/util/compat.py
+++ b/lib/sqlalchemy/util/compat.py
@@ -111,9 +111,22 @@ def inspect_getfullargspec(func):
if py38:
from importlib import metadata as importlib_metadata
+
+ def importlib_metadata_get(group):
+ return importlib_metadata.entry_points().get(group, ())
+
+
else:
import importlib_metadata # noqa
+ def importlib_metadata_get(group):
+ ep = importlib_metadata.entry_points()
+ if hasattr(ep, "select"):
+ return ep.select(group=group)
+ else:
+ return ep.get(group, ())
+
+
if py3k:
import base64
import builtins
diff --git a/lib/sqlalchemy/util/langhelpers.py b/lib/sqlalchemy/util/langhelpers.py
index eb582b528..51b9071d5 100644
--- a/lib/sqlalchemy/util/langhelpers.py
+++ b/lib/sqlalchemy/util/langhelpers.py
@@ -331,9 +331,7 @@ class PluginLoader(object):
self.impls[name] = loader
return loader()
- for impl in compat.importlib_metadata.entry_points().get(
- self.group, ()
- ):
+ for impl in compat.importlib_metadata_get(self.group):
if impl.name == name:
self.impls[name] = impl.load
return impl.load()