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. -- Regards, Benjamin _______________________________________________ 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