2009/8/19 Frank Wierzbicki <fwierzbi...@gmail.com>: > Before I start complaining, I want to mention what a huge help it has > been to be able to directly compare the AST exposed by ast.py in > making Jython a better Python. Thanks for that! > > Now on to the complaints: Though I recently added support for this in > Jython, I don't like that nodes can be defined without required > attributes, for example: > > node = ast.Assign() > > Is valid, even though it requires "node.targets" and "node.value" (I'm > less concerned about the required lineno and col_offset, as I can > understand holding off on these so that you can just use > fix_missing_locations to fill these in for you).
+1 > > My other (bigger) gripe is that you can define these values with > arbitrary objects that will blow up at parse time. So for example you > can write: > > node = ast.Assign() > node.targets = "whatever" > > Which, when you try to parse, blows up with "TypeError: Assign field > "targets" must be a list, not a str". I'd be much happier if this > blew up right away when you try to make the assignment. At the > moment, this is how it works in Jython (though I could support this > with some contorting). I also think this is a good idea, but this also causes an asymmetry. I would still be able to do this: node = ast.Module([]) node.body.append("random stuff") and not have it type checked until it is compiled. This would be hard to fix, though, and I think it is worth living with. > > BTW -- I *am* volunteering to attempt to implement these things in > CPython if there is support :) Very generous. :) -- 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