Roundup Robot added the comment:
New changeset 3345afd6dc61 by Nick Coghlan in branch '3.3':
Close issue #16267: better docs for @abstractmethod composition
http://hg.python.org/cpython/rev/3345afd6dc61
New changeset be7202c38089 by Nick Coghlan in branch 'default':
Merge from 3.3 (issue
Changes by Nick Coghlan ncogh...@gmail.com:
--
resolution: - fixed
stage: needs patch - committed/rejected
status: open - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16267
___
Andrew Svetlov added the comment:
After trying to make patch I've realized — better to leave current behavior as
is and change documentation only.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16267
Nick Coghlan added the comment:
It took me a while to get my brain back up to speed with the full rationale
behind the current design (mostly by rereading the multitude of comment on
#11610).
As Darren says, the main advantage of the current scheme is that the wrapper
descriptors
Eric Snow added the comment:
The catch is that when abstractmethod is the inner decorator,
__isabstractmethod__ is set on the object that classmethod/staticmethod is
wrapping. When abstractmethod is the outer decorator, __isabstractmethod__ is
set on the resulting classmethod/staticmethod
Darren Dale added the comment:
There is a very practical reason, which was the whole point of issue11610.
Descriptors are should declare themselves abstract when they are composed of
abstract methods. If you have a property with an concrete getter but an
abstract setter, the property should
New submission from Christopher the Magnificent:
This may be an issue with the interpreter behavior or it may be a documentation
issue.
Note: I only selected Python 3.3 as the version, but it probably affects MANY
other Python versions.
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012,
Changes by Andrew Svetlov andrew.svet...@gmail.com:
--
nosy: +asvetlov
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16267
___
___
Andrew Svetlov added the comment:
I think better to fix code to make first sample also work.
It can be done as special cases in abc.abstractmethod to process
classmethod/staticmethod objects properly.
--
___
Python tracker rep...@bugs.python.org
Changes by Arfrever Frehtes Taifersar Arahesis arfrever@gmail.com:
--
nosy: +Arfrever
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16267
___
R. David Murray added the comment:
I've added the nosy list from issue 11610, in case complicating the
implementation is seen as sub-optimal :)
--
nosy: +Darren.Dale, benjamin.peterson, daniel.urban, dsdale24, eric.araujo,
eric.snow, ncoghlan, python-dev, r.david.murray, stutzbach
Benjamin Peterson added the comment:
I don't see why classmethod/staticmethod should be special cased if it doesn't
work for other decorators.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16267
Darren Dale added the comment:
Quoting the documentation for abstractmethod:
When abstractmethod() is applied in combination with other method descriptors,
it should be applied as the innermost decorator, as shown in the following
usage examples:
The examples include staticmethod and
Christopher the Magnificent added the comment:
As Darren Dale pointed out, it looks like this is a (partial) documentation
issue. I think it's plausible that someone like me, who has used
abstractmethod by itself, would read the docs for abstractclassmethod and not
re-read the docs on
Andrew Svetlov added the comment:
After brief looking sources I figured out it can be solved by adding setters
for __isabstractmethod__ to classmethod/staticmethod objects.
It can be done, I'll try to make a patch.
For property situation is worse: property is abstract if any of
15 matches
Mail list logo