[PEAK] Type implications bug

Phillip J. Eby pje at telecommunity.com
Tue Jul 15 10:58:25 EDT 2008


At 12:23 PM 7/15/2008 +0200, Alberto Valverde wrote:
>Hi,
>
>I've attached a unit test which blows up peak/rules/indexing.py._get_mro.

Hm.  There are actually two problems here.  First, issubclass() is 
being called on an object that's not a class or type, and that blows 
up the class lookup code.  The second is that isclass(x) isn't being 
tested before that, because direct tests on parameters are assumed to 
not require prerequisites to go first.  In other words, PEAK-Rules 
assumes that issubclass(x, ...) can go before any other test on x.

This can be fixed by removing the predicates.always_testable() rule 
for IsSubclass criteria; then IsSubclass tests will not be moved in 
front of other criteria.  Doing issubclass() on a non-class/type 
object will still blow up, though.




More information about the PEAK mailing list