[Python-3000] Brainstorming: literal construction hooks

Nick Coghlan ncoghlan at gmail.com
Sun Apr 23 04:10:24 CEST 2006


Michael Urman wrote:
> For in-module effect, maybe some special import could pull in a
> compiler class instance used only for the current module, allowing its
> build_xyz methods be replaced.
> 
>     from __ast__ import compiler
>     compiler.build_float = Decimal    # on an instance, so no 'self' parameter
> 
> If something like that sounds reasonable for usage, I'll start looking
> into how it looks for implementation. (Probably a big ball of mud! And
> sounds like it depends on the python-side interface to the ast - I've
> lost track if that's solidified yet.) :)

I deliberately left out the in-module effect, because Python compiles the 
whole module before executing any of it. Having in-module code trying to hook 
activities that happen before hand is challenging to say the least (that said, 
'from __future__ import ...' statements have a double life as normal code and 
compiler directives, so it's obviously not impossible)

OTOH, if you can get something working for the compile/exec/__import__ use 
cases, then a metapath entry can be used to experiment with applying it 
auto-magically on module import (and poking around inside the module to figure 
out what modifications to make).

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org


More information about the Python-3000 mailing list