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
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
Darren Dale dsdal...@gmail.com added the comment:
Is this patch ready to go? I haven't heard any feedback on the most recent
version.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
New patch addressing comments in review.
--
Added file: http://bugs.python.org/file23864/abc_descriptor.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
Patch addressing latest comments in review. Notable change: defines
_PyObject_IsAbstract in object.c/object.h, rather than repeating the code in
multiple files and functions.
--
Added file: http://bugs.python.org/file23857
Darren Dale dsdal...@gmail.com added the comment:
Here is a new patch addressing comments raised in review. It supersedes
previous patch submissions.
--
Added file: http://bugs.python.org/file23819/abc_descriptor.patch
___
Python tracker rep
Darren Dale dsdal...@gmail.com added the comment:
I'll bump this one last time.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
I just double-checked that the unit tests do not raise any warnings with this
patch.
Can it be merged?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
It would be nice if this patch could be merged in time for python-3.3...
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
Any additional comments?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
___
___
Python
Darren Dale dsdal...@gmail.com added the comment:
Here is a new version of the patch, addressing points raised in the review of
the previous version.
--
Added file: http://bugs.python.org/file22729/abc_descriptor.patch
___
Python tracker rep
Darren Dale dsdal...@gmail.com added the comment:
I've requested additional feedback based on comments at Rietveld.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
Here is attempt #4. This patch extends the property, classmethod and
staticmethod builtins with an __isabstractmethod__ descriptor. Docs and tests
are updated as well. make test runs without failures. This is my first real
attempt with the C
Changes by Darren Dale dsdal...@gmail.com:
Removed file: http://bugs.python.org/file21307/issue11610.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Changes by Darren Dale dsdal...@gmail.com:
Removed file: http://bugs.python.org/file21375/issue11610_v2.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Changes by Darren Dale dsdal...@gmail.com:
Removed file: http://bugs.python.org/file22323/abc_descriptors.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
On Sat, Jun 11, 2011 at 7:32 PM, Eric Snow rep...@bugs.python.org wrote:
Eric Snow ericsnowcurren...@gmail.com added the comment:
Per your last message, if a specific descriptor has an abstract setter then
the descriptor should be considered
Darren Dale dsdal...@gmail.com added the comment:
On Sat, Jun 11, 2011 at 3:11 AM, Daniel Urban rep...@bugs.python.org wrote:
Daniel Urban urban.dani...@gmail.com added the comment:
It doesn't work with staticmethod:
import abc
class C(metaclass=abc.ABCMeta):
... @staticmethod
Darren Dale dsdal...@gmail.com added the comment:
[...]
Traceback (most recent call last):
File stdin, line 1, in module
TypeError: Can't instantiate abstract class D with abstract methods
foo.__func__
You still need to use @abc.abstractstaticmethod.
Thinking about this some more, I
Darren Dale dsdal...@gmail.com added the comment:
On Sat, Jun 11, 2011 at 8:55 AM, Nick Coghlan rep...@bugs.python.org wrote:
Nick Coghlan ncogh...@gmail.com added the comment:
inspect.getattr_static has the necessary logic to search for descriptors
without invoking them.
Unfortunately
Darren Dale dsdal...@gmail.com added the comment:
[...]
This wouldn't allow for the prettier error messages, but it's much cleaner
than having ABCMeta trawling through class attribute dir() lists.
I think there is another reason to do it this way. Suppose I have a
custom descriptor
Darren Dale dsdal...@gmail.com added the comment:
I posted the following at python-dev
(http://mail.python.org/pipermail/python-dev/2011-June/111837.html):
I would like to try to address some shortfalls with the way python deals with
abstract base classes containing descriptors. I originally
Darren Dale dsdal...@gmail.com added the comment:
Here is an improved patch, which includes feedback from python-dev. make test
runs without failures, however test_abc.py prints deprecation warnings for
abstractproperty. I'm not familiar with the protocol here, do we continue to
include unit
Changes by Darren Dale dsdal...@gmail.com:
Removed file: http://bugs.python.org/file22322/abc_descriptors.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Changes by Darren Dale dsdal...@gmail.com:
Added file: http://bugs.python.org/file22323/abc_descriptors.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Changes by Darren Dale dsdal...@gmail.com:
--
components: +Library (Lib) -Interpreter Core
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
Thank you for the suggestion. I will follow up at python-dev, but it will
probably be a few weeks before I have time to do a proper job of it.
--
___
Python tracker rep...@bugs.python.org
http
Darren Dale dsdal...@gmail.com added the comment:
Is there anything preventing this patch from being merged?
--
nosy: +Darren.Dale
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
On Sat, May 14, 2011 at 12:20 PM, Benjamin Peterson
rep...@bugs.python.org wrote:
Benjamin Peterson benja...@python.org added the comment:
2011/5/14 Darren Dale rep...@bugs.python.org:
Darren Dale dsdal...@gmail.com added the comment
Darren Dale dsdal...@gmail.com added the comment:
On Sat, May 14, 2011 at 4:28 PM, Benjamin Peterson
rep...@bugs.python.org wrote:
Benjamin Peterson benja...@python.org added the comment:
I still dislike the reduntancy of having abstractmethod and abstractproperty
on a method. I think
Darren Dale dsdal...@gmail.com added the comment:
On Sat, May 14, 2011 at 5:17 PM, Benjamin Peterson
rep...@bugs.python.org wrote:
Benjamin Peterson benja...@python.org added the comment:
2011/5/14 Darren Dale rep...@bugs.python.org:
Darren Dale dsdal...@gmail.com added the comment
Darren Dale dsdal...@gmail.com added the comment:
On Sat, May 14, 2011 at 5:55 PM, Benjamin Peterson
rep...@bugs.python.org wrote:
Benjamin Peterson benja...@python.org added the comment:
Okay: how about this. We retain the passing of @abstractmethod to
abstractpropert
Darren Dale dsdal...@gmail.com added the comment:
On Sat, May 14, 2011 at 6:24 PM, Benjamin Peterson
rep...@bugs.python.org wrote:
Benjamin Peterson benja...@python.org added the comment:
2011/5/14 Darren Dale rep...@bugs.python.org:
Darren Dale dsdal...@gmail.com added the comment
Darren Dale dsdal...@gmail.com added the comment:
It just occurred to me, there is a potential problem with abstractproperty and
the decorator syntax in my patch:
class Foo:
@abstractproperty
def p(self): pass
# p is abstract, but has no abstract methods
@p.setter
def p
Darren Dale dsdal...@gmail.com added the comment:
I think I have a similar situation:
C:\Py\Scripts\foo
---
if __name__ == '__main__':
import bar
bar.main()
C:\Py\Lib\site-packages\bar.py
---
from multiprocessing import Pool
def task(arg):
return arg
def main():
pool = Pool
Darren Dale dsdal...@gmail.com added the comment:
So, are there objections to this patch, or can it be merged?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
Benjamin: have you thought this idea through?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
I see some problems with this approach, but maybe I haven't fully appreciated
it. Let me summarize the goals and constraints as I see them:
1) compatible with long-form and decorator syntax of {abstract}property
declaration
2) backwards
Darren Dale dsdal...@gmail.com added the comment:
On Tue, Mar 29, 2011 at 9:31 PM, Benjamin Peterson
rep...@bugs.python.org wrote:
2011/3/29 Darren Dale rep...@bugs.python.org:
The benefit of abstractproperty.abstract{...} is that one decorator is
required instead of two, right
Darren Dale dsdal...@gmail.com added the comment:
On Tue, Mar 29, 2011 at 10:24 PM, Darren Dale rep...@bugs.python.org wrote:
Darren Dale dsdal...@gmail.com added the comment:
On Tue, Mar 29, 2011 at 9:31 PM, Benjamin Peterson
rep...@bugs.python.org wrote:
2011/3/29 Darren Dale rep
Darren Dale dsdal...@gmail.com added the comment:
Here is a new version of the patch. I think it addresses all of the issues that
have been raised to date.
I had to comment out the -lintl line in Modules/Setup to build on OS X, this
seems to be a similar issue to http://bugs.python.org
Darren Dale dsdal...@gmail.com added the comment:
(Ned, I'm running 10.6.6 with a 64-bit kernel. I've tried running ./configure
without any arguments, and also with --prefix=/opt/local, since I install
essentially everything with MacPorts
Darren Dale dsdal...@gmail.com added the comment:
On Sun, Mar 20, 2011 at 5:18 AM, Daniel Urban rep...@bugs.python.org wrote:
Daniel Urban urban.dani...@gmail.com added the comment:
I tried to test your patch, but the build dies with this error:
Fatal Python error: Py_Initialize: can't
Darren Dale dsdal...@gmail.com added the comment:
On Sun, Mar 20, 2011 at 12:19 PM, Benjamin Peterson
rep...@bugs.python.org wrote:
Benjamin Peterson benja...@python.org added the comment:
I think a better idea would be to override getter and friends on the
abstractproperty class.
I just
Darren Dale dsdal...@gmail.com added the comment:
On Sun, Mar 20, 2011 at 5:18 AM, Daniel Urban rep...@bugs.python.org wrote:
Daniel Urban urban.dani...@gmail.com added the comment:
I tried to test your patch, but the build dies with this error:
Fatal Python error: Py_Initialize: can't
Darren Dale dsdal...@gmail.com added the comment:
Thank you Daniel and Benjamin for the helpful feedback. I think the attached
patch is a much better approach. It only touches abc.abstractproperty (instead
of the builtin property), and uses a class method as a factory to return
instances
Changes by Darren Dale dsdal...@gmail.com:
Removed file:
http://bugs.python.org/file21293/property_with_abstractmethod.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Changes by Darren Dale dsdal...@gmail.com:
Removed file:
http://bugs.python.org/file21295/property_with_abstractmethod_v2.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
New submission from Darren Dale dsdal...@gmail.com:
I posted a suggestion at python-ideas that the declaration of abstract
properties could be improved in such a way that they could be declared with
either the long-form or decorator syntax using the built-in property and
abc.abstractmethod
Darren Dale dsdal...@gmail.com added the comment:
The discussion on python-ideas:
http://mail.python.org/pipermail/python-ideas/2011-March/009411.html
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue11610
Darren Dale dsdal...@gmail.com added the comment:
Here is a new patch that addresses a couple problems found in review:
* Unit tests contained a typo (Property instead of property)
* DeprecationWarning would be issued when importing abc rather than when
creating abstractproperty. (whether
New submission from Darren Dale dsdal...@gmail.com:
Old-style relative imports have been strongly discouraged in some sections of
the python documentation. This was discussed on the python-dev mailing list.
Executive summary: The issue is implementing a PEP with nice support for
relative
52 matches
Mail list logo