Hi Jeremy, On Tue, Feb 27, 2007 at 07:29:50PM +0100, jeremy.hylton wrote: > Removed: > python/trunk/Lib/test/crashers/modify_dict_attr.py > Modified: > python/trunk/Lib/test/test_descr.py > python/trunk/Objects/typeobject.c > Log: > Add checking for a number of metaclass error conditions.
This check-in looks highly suspicious to me. It doesn't solve the problem it set out to solve, which is the modify_dict_attr crasher - see the slightly modified modify_dict_attr that I re-checked in (Lib/test/crashers/). Instead it adds more of the obscure undocumented rules about what kind of inheritence is allowed or not. We already have cases like: class X(str): pass class Y(str): pass class Z(X, Y): pass which are forbidden for no user-discernable reason. I don't think that forbidding: class X(Y, type): pass is going to help clarity there. The problem with modify_dict_attr is at a different level; if needed I can elaborate on the following comment from the SF tracker: """A proposed fix [for modify_dict_attr]: the __dict__ descriptor of user-defined classes should verify if there is another __dict__ descriptor along the solid path of the type (i.e. following "tp_base" pointers). If so, it should delegate to it.""" A bientot, Armin. _______________________________________________ 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