summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/importlib/metadata/__init__.py2
-rw-r--r--Lib/test/test_importlib/test_metadata_api.py5
-rw-r--r--Misc/NEWS.d/next/Library/2022-01-07-13-27-53.bpo-46246.CTLx32.rst2
3 files changed, 9 insertions, 0 deletions
diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py
index 33ce1b6..c7462f3 100644
--- a/Lib/importlib/metadata/__init__.py
+++ b/Lib/importlib/metadata/__init__.py
@@ -236,6 +236,8 @@ class DeprecatedList(list):
1
"""
+ __slots__ = ()
+
_warn = functools.partial(
warnings.warn,
"EntryPoints list interface is deprecated. Cast to list if needed.",
diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py
index 4a45312..0890d6c 100644
--- a/Lib/test/test_importlib/test_metadata_api.py
+++ b/Lib/test/test_importlib/test_metadata_api.py
@@ -172,6 +172,11 @@ class APITests(
entry_points().get('entries', 'default') == entry_points()['entries']
entry_points().get('missing', ()) == ()
+ def test_entry_points_allows_no_attributes(self):
+ ep = entry_points().select(group='entries', name='main')
+ with self.assertRaises(AttributeError):
+ ep.foo = 4
+
def test_metadata_for_this_package(self):
md = metadata('egginfo-pkg')
assert md['author'] == 'Steven Ma'
diff --git a/Misc/NEWS.d/next/Library/2022-01-07-13-27-53.bpo-46246.CTLx32.rst b/Misc/NEWS.d/next/Library/2022-01-07-13-27-53.bpo-46246.CTLx32.rst
new file mode 100644
index 0000000..4850171
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-01-07-13-27-53.bpo-46246.CTLx32.rst
@@ -0,0 +1,2 @@
+Add missing ``__slots__`` to ``importlib.metadata.DeprecatedList``. Patch by
+Arie Bovenberg.