On 8/24/2010 9:45 AM, Benjamin Peterson wrote: > 2010/8/24 Hrvoje Niksic <hrvoje.nik...@avl.com>: >> On 08/24/2010 02:31 PM, Benjamin Peterson wrote: >>> >>> 2010/8/24 Hrvoje Niksic<hrvoje.nik...@avl.com>: >>>> >>>> The __length_hint__ lookup expects either no exception or >>>> AttributeError, >>>> and will propagate others. I'm not sure if this is a bug. On the one >>>> hand, >>>> throwing anything except AttributeError from __getattr__ is bad style >>>> (which >>>> is why we fixed the bug by deriving our business exception from >>>> AttributeError), but the __length_hint__ check is supposed to be an >>>> internal >>>> optimization completely invisible to the caller of list(). >>> >>> __length_hint__ is internal and undocumented, so it can do whatever it >>> wants. >> >> Of course, but that's beside the point. In this case __length_hint__ was >> neither implemented in the class, nor were we aware of its existence, and >> the code still broke (as in the example in previous mail). The point I'm >> making is that: >> >> a) a "business" case of throwing anything other than AttributeError from >> __getattr__ and friends is almost certainly a bug waiting to happen, and >> >> b) making the proposed change is bound to break real, production code. > > I agree with. This is why the change is not making its way into any > maintenance release. > > > +1
regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 DjangoCon US September 7-9, 2010 http://djangocon.us/ See Python Video! http://python.mirocommunity.org/ Holden Web LLC http://www.holdenweb.com/ _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com