summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Hall, MBA <aaronchall@yahoo.com>2017-06-06 19:34:57 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2017-06-06 19:34:57 (GMT)
commitff48739ed0a3f366c4d56d3c86a37cbdeec600de (patch)
tree8fb90607c6db799e328cd8a9a52e6905f29b876e
parentec19ba210bba2c3097232a05d7dbe093beb5f833 (diff)
downloadcpython-ff48739ed0a3f366c4d56d3c86a37cbdeec600de.zip
cpython-ff48739ed0a3f366c4d56d3c86a37cbdeec600de.tar.gz
cpython-ff48739ed0a3f366c4d56d3c86a37cbdeec600de.tar.bz2
bpo-30463: Add an empty __slots__ to abc.ABC.
-rw-r--r--Lib/abc.py2
-rw-r--r--Lib/test/test_abc.py3
-rw-r--r--Misc/NEWS3
3 files changed, 7 insertions, 1 deletions
diff --git a/Lib/abc.py b/Lib/abc.py
index 43a34a0..d13a0de 100644
--- a/Lib/abc.py
+++ b/Lib/abc.py
@@ -235,7 +235,7 @@ class ABC(metaclass=ABCMeta):
"""Helper class that provides a standard way to create an ABC using
inheritance.
"""
- pass
+ __slots__ = ()
def get_cache_token():
diff --git a/Lib/test/test_abc.py b/Lib/test/test_abc.py
index e20e033..61c2876 100644
--- a/Lib/test/test_abc.py
+++ b/Lib/test/test_abc.py
@@ -402,6 +402,9 @@ class TestABC(unittest.TestCase):
C()
self.assertEqual(B.counter, 1)
+ def test_ABC_has___slots__(self):
+ self.assertTrue(hasattr(abc.ABC, '__slots__'))
+
class TestABCWithInitSubclass(unittest.TestCase):
def test_works_with_init_subclass(self):
diff --git a/Misc/NEWS b/Misc/NEWS
index 4b0879b..f043832 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -345,6 +345,9 @@ Extension Modules
Library
-------
+- bpo-30463: Addded empty __slots__ to abc.ABC. This allows subclassers
+ to deny __dict__ and __weakref__ creation. Patch by Aaron Hall.
+
- bpo-30520: Loggers are now pickleable.
- bpo-30557: faulthandler now correctly filters and displays exception codes