Raymond Hettinger <raymond.hettin...@gmail.com> added the comment:

I propose deprecating classmethod chaining.  It has become clear that it 
doesn't really do what people wanted and can't easily be made to work.

By even suggesting that some stateful decorators are composable, we've ventured 
onto thin ice.  Wrapping property in a classmethod doesn't produce something 
that behaves like a real property.  Mixing staticmethod and property doesn't 
work at all.  Putting abstractmethod in the mix doesn't work well either.  The 
ecosystem of code inspection tools, like help() in this issue, is wholly 
unprepared for recognizing and working around these combinations.  The latest 
"fix" for classmethod chaining looks weird and worriesome as well:  
self.f.__get__(cls, cls).

Classmethod chaining is relatively new, so we will affect very little code by 
deprecating it.  Any of the possible use cases can be served in other ways like 
the wrapt package or by explicit code in __getattribute__.

----------
nosy: +lukasz.langa, pablogsal

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue45356>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to