[New-bugs-announce] [issue28886] Deprecated abstract base class (abc) decorators do not raise DeprecationWarning
John Hagen
report at bugs.python.org
Tue Dec 6 08:43:37 EST 2016
New submission from John Hagen:
In the abc module (https://docs.python.org/3/library/abc.html) the following decorators have been deprecated since Python 3.3:
- abstractclassmethod
- abstractstaticmethod
- abstractproperty
But if you run the following example code using Python 3.5.2 with -Werror, no DeprecationWarnings are thrown. Throwing DeprecationWarnings will help make it more clear that these properties should not be used. PyCharm, for example, will strikethrough the usage of methods that throw DeprecationWarning so that even new users will be notified quickly even if they don't run with -Werror.
import abc
class Base(abc.ABC):
@abc.abstractclassmethod
def abstract_class(cls):
pass
@abc.abstractstaticmethod
def abstract_static():
pass
@abc.abstractproperty
def abstract_property(self):
pass
class Child(Base):
@classmethod
def abstract_class(cls):
print('Abstract class method')
@staticmethod
def abstract_static():
print('Abstract static method')
@property
def abstract_property(self):
return 'Abstract property'
child = Child()
child.abstract_class()
child.abstract_static()
print(child.abstract_property)
----------
components: Library (Lib)
messages: 282548
nosy: John Hagen
priority: normal
severity: normal
status: open
title: Deprecated abstract base class (abc) decorators do not raise DeprecationWarning
type: behavior
versions: Python 3.5, Python 3.6, Python 3.7
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28886>
_______________________________________
More information about the New-bugs-announce
mailing list