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 static
Darren Dale added the comment:
Is this patch ready to go? I haven't heard any feedback on the most recent
version.
--
___
Python tracker
<http://bugs.python.org/is
Darren Dale added the comment:
New patch addressing comments in review.
--
Added file: http://bugs.python.org/file23864/abc_descriptor.patch
___
Python tracker
<http://bugs.python.org/issue11
Darren Dale 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/abc_descriptor.patch
Darren Dale 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
<http://bugs.python.
Darren Dale added the comment:
I'll bump this one last time.
--
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bugs-list mailing list
Darren Dale 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
<http://bugs.python.org/issue11
Darren Dale added the comment:
It would be nice if this patch could be merged in time for python-3.3...
--
___
Python tracker
<http://bugs.python.org/issue11
Darren Dale added the comment:
Any additional comments?
--
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bugs-list mailing list
Unsub
Darren Dale 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
<http://bugs.python.
Darren Dale added the comment:
I've requested additional feedback based on comments at Rietveld.
--
___
Python tracker
<http://bugs.python.org/is
Changes by Darren Dale :
Removed file: http://bugs.python.org/file22323/abc_descriptors.patch
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bug
Changes by Darren Dale :
Removed file: http://bugs.python.org/file21375/issue11610_v2.patch
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bug
Changes by Darren Dale :
Removed file: http://bugs.python.org/file21307/issue11610.patch
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bugs-list m
Darren Dale 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-API, a
Darren Dale added the comment:
On Sat, Jun 11, 2011 at 7:32 PM, Eric Snow wrote:
>
> Eric Snow added the comment:
> Per your last message, if a specific descriptor has an abstract setter then
> the descriptor should be considered abstract. If the implementation of that
> att
Darren Dale 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 MyP
Darren Dale added the comment:
On Sat, Jun 11, 2011 at 8:55 AM, Nick Coghlan wrote:
>
> Nick Coghlan added the comment:
>
> inspect.getattr_static has the necessary logic to search for descriptors
> without invoking them.
Unfortunately, we can't import inspect, even in
Darren Dale added the comment:
[...]
>> Traceback (most recent call last):
>> File "", line 1, in
>> TypeError: Can't instantiate abstract class D with abstract methods
>> foo.__func__
>
> You still need to use @abc.abstractstaticmethod.
Thinkin
Darren Dale added the comment:
On Sat, Jun 11, 2011 at 3:11 AM, Daniel Urban wrote:
>
> Daniel Urban added the comment:
>
> It doesn't work with staticmethod:
>
>>>> import abc
>>>>
>>>> class C(metaclass=abc.ABCMeta):
> ... @sta
Changes by Darren Dale :
--
components: +Library (Lib) -Interpreter Core
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bugs-list mailin
Changes by Darren Dale :
Added file: http://bugs.python.org/file22323/abc_descriptors.patch
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bug
Changes by Darren Dale :
Removed file: http://bugs.python.org/file22322/abc_descriptors.patch
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bug
Darren Dale 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
Darren Dale 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 was just concerned
Darren Dale 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
<http://bugs.python.org/issue11
Darren Dale 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(self, val): pass
Darren Dale added the comment:
On Sat, May 14, 2011 at 6:24 PM, Benjamin Peterson
wrote:
>
> Benjamin Peterson added the comment:
>
> 2011/5/14 Darren Dale :
>>
>> Darren Dale added the comment:
>>
>> It definitely is a common case, and alwa
Darren Dale added the comment:
On Sat, May 14, 2011 at 5:55 PM, Benjamin Peterson
wrote:
>
> Benjamin Peterson added the comment:
>
> Okay: how about this. We retain the passing of @abstractmethod to
> abstractpropert(), but @abstractgetter decorates the method for you.
Darren Dale added the comment:
On Sat, May 14, 2011 at 5:17 PM, Benjamin Peterson
wrote:
>
> Benjamin Peterson added the comment:
>
> 2011/5/14 Darren Dale :
>>
>> Darren Dale added the comment:
>>
>> On Sat, May 14, 2011 at 4:28 PM, Benjamin Peterson
Darren Dale added the comment:
On Sat, May 14, 2011 at 4:28 PM, Benjamin Peterson
wrote:
>
> Benjamin Peterson added the comment:
>
> I still dislike the reduntancy of having abstractmethod and abstractproperty
> on a method. I think a better idea is having
> abstrac
Darren Dale added the comment:
On Sat, May 14, 2011 at 12:20 PM, Benjamin Peterson
wrote:
>
> Benjamin Peterson added the comment:
>
> 2011/5/14 Darren Dale :
>>
>> Darren Dale added the comment:
>>
>> Is there anything preventing this patch from bein
Darren Dale added the comment:
Is there anything preventing this patch from being merged?
--
nosy: +Darren.Dale
___
Python tracker
<http://bugs.python.org/issue11
Darren Dale 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 added the comment:
So, are there objections to this patch, or can it be merged?
--
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Darren Dale added the comment:
On Tue, Mar 29, 2011 at 10:24 PM, Darren Dale wrote:
>
> Darren Dale added the comment:
>
> On Tue, Mar 29, 2011 at 9:31 PM, Benjamin Peterson
> wrote:
>> 2011/3/29 Darren Dale :
>>> The benefit of abstractproperty.abstract
Darren Dale added the comment:
On Tue, Mar 29, 2011 at 9:31 PM, Benjamin Peterson
wrote:
> 2011/3/29 Darren Dale :
>> The benefit of abstractproperty.abstract{...} is that one decorator is
>> required instead of two, right? Are there others?
>
> Mostly it doesn'
Darren Dale 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 compatible, no chan
Darren Dale added the comment:
Benjamin: have you thought this idea through?
--
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Python-bugs-list m
Darren Dale 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.)
--
___
Pyth
Darren Dale 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/issue6154 . So I don
Changes by Darren Dale :
Removed file:
http://bugs.python.org/file21295/property_with_abstractmethod_v2.patch
___
Python tracker
<http://bugs.python.org/issue11
Changes by Darren Dale :
Removed file:
http://bugs.python.org/file21293/property_with_abstractmethod.patch
___
Python tracker
<http://bugs.python.org/issue11610>
___
___
Darren Dale 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 of either property or
Darren Dale added the comment:
On Sun, Mar 20, 2011 at 5:18 AM, Daniel Urban wrote:
>
> Daniel Urban added the comment:
>
> I tried to test your patch, but the build dies with this error:
> Fatal Python error: Py_Initialize: can't initialize sys standard streams
> Trac
Darren Dale added the comment:
On Sun, Mar 20, 2011 at 12:19 PM, Benjamin Peterson
wrote:
>
> Benjamin Peterson added the comment:
>
> I think a better idea would be to override getter and friends on the
> abstractproperty class.
I just suggested the same at python-ideas.
Darren Dale added the comment:
On Sun, Mar 20, 2011 at 5:18 AM, Daniel Urban wrote:
>
> Daniel Urban added the comment:
>
> I tried to test your patch, but the build dies with this error:
> Fatal Python error: Py_Initialize: can't initialize sys standard streams
> Trac
Darren Dale 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 abstractproperty
Darren Dale added the comment:
The discussion on python-ideas:
http://mail.python.org/pipermail/python-ideas/2011-March/009411.html
--
___
Python tracker
<http://bugs.python.org/issue11
New submission from Darren Dale :
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:
{{{
class
New submission from Darren Dale :
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 imports, and
52 matches
Mail list logo