summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2021-06-27 18:50:45 (GMT)
committerGitHub <noreply@github.com>2021-06-27 18:50:45 (GMT)
commitb2a5dcd8a0fe1e7bf4fd09ea7f08fc3ea4f71bc5 (patch)
treeca077d13f57076146c508d15ec07a96f37bac776
parent4861fdaf25f246eb9ee4e8161c15dad26efe895d (diff)
downloadcpython-b2a5dcd8a0fe1e7bf4fd09ea7f08fc3ea4f71bc5.zip
cpython-b2a5dcd8a0fe1e7bf4fd09ea7f08fc3ea4f71bc5.tar.gz
cpython-b2a5dcd8a0fe1e7bf4fd09ea7f08fc3ea4f71bc5.tar.bz2
Clarify the order of a stacked `abstractmethod` (GH-26892)
Co-authored-by: Tal Einat <532281+taleinat@users.noreply.github.com> (cherry picked from commit 74d60eab558bffdf5ca8ea2f5305e19b36bdb9a8) Co-authored-by: Ram Rachum <ram@rachum.com>
-rw-r--r--Lib/abc.py27
1 files changed, 24 insertions, 3 deletions
diff --git a/Lib/abc.py b/Lib/abc.py
index 431b640..9de128e 100644
--- a/Lib/abc.py
+++ b/Lib/abc.py
@@ -28,7 +28,14 @@ def abstractmethod(funcobj):
class abstractclassmethod(classmethod):
"""A decorator indicating abstract classmethods.
- Deprecated, use 'classmethod' with 'abstractmethod' instead.
+ Deprecated, use 'classmethod' with 'abstractmethod' instead:
+
+ class C(ABC):
+ @classmethod
+ @abstractmethod
+ def my_abstract_classmethod(cls, ...):
+ ...
+
"""
__isabstractmethod__ = True
@@ -41,7 +48,14 @@ class abstractclassmethod(classmethod):
class abstractstaticmethod(staticmethod):
"""A decorator indicating abstract staticmethods.
- Deprecated, use 'staticmethod' with 'abstractmethod' instead.
+ Deprecated, use 'staticmethod' with 'abstractmethod' instead:
+
+ class C(ABC):
+ @staticmethod
+ @abstractmethod
+ def my_abstract_staticmethod(...):
+ ...
+
"""
__isabstractmethod__ = True
@@ -54,7 +68,14 @@ class abstractstaticmethod(staticmethod):
class abstractproperty(property):
"""A decorator indicating abstract properties.
- Deprecated, use 'property' with 'abstractmethod' instead.
+ Deprecated, use 'property' with 'abstractmethod' instead:
+
+ class C(ABC):
+ @property
+ @abstractmethod
+ def my_abstract_property(self):
+ ...
+
"""
__isabstractmethod__ = True