This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author dsdale24
Recipients benjamin.peterson, daniel.urban, dsdale24
Date 2011-03-20.18:09:31
SpamBayes Score 2.2695068e-11
Marked as misclassified No
Message-id <1300644574.38.0.792428598696.issue11610@psf.upfronthosting.co.za>
In-reply-to
Content
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 abstractproperty, depending on whether it holds any references to abstractmethods.

The patch is backwards compatible with the existing (though in my opinion, still broken) syntax of passing concrete methods to the abstractproperty constructor. I say that syntax is broken because properties are composite objects, and it is the methods that inherently make a property abstract or concrete. If one passes concrete getters and setters to abstractproperty, how do we know when the property has become concrete? Thus, I changed the documentation to refer to the more robust approach of passing abstractproperty methods that have been decorated with abstractmethod.

Unit tests are also provided. I still have not been able to build from my hg checkout, but I copied abc.py into my working 3.2 installation and ran the new test_abc.py without errors.

I'll be happy to address any additional concerns.
History
Date User Action Args
2011-03-20 18:09:34dsdale24setrecipients: + dsdale24, benjamin.peterson, daniel.urban
2011-03-20 18:09:34dsdale24setmessageid: <1300644574.38.0.792428598696.issue11610@psf.upfronthosting.co.za>
2011-03-20 18:09:32dsdale24linkissue11610 messages
2011-03-20 18:09:31dsdale24create