[issue28886] Deprecated abstract base class (abc) decorators do not raise DeprecationWarning

2016-12-06 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

Not all features deprecated in the source should be deprecated in the code. May 
be reasons for not doing this in the code.

Adding the deprecation in maintained releases can introduce a regression. It 
seems to me that these decorators are not broken. They is just other, more 
preferable way to write the same, with the combination of other decorators.

--
nosy: +Darren.Dale, benjamin.peterson, daniel.urban, dsdale24, eric.araujo, 
eric.snow, ncoghlan, python-dev, serhiy.storchaka, stutzbach

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28886] Deprecated abstract base class (abc) decorators do not raise DeprecationWarning

2016-12-06 Thread John Hagen

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 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com