Shadowing builtins (was Re: a pyrex-inspired for-i-from-1-to-n...)
skip at pobox.com
Thu Apr 3 00:13:41 CEST 2003
>> How about calling new.module() to create a new module object from the
>> one you want to test which has suitably munged globals?
Peter> Interesting idea... but ...
Peter> # install mock open again
Peter> mungedMut.open = mockOpen
Peter> What I don't understand is the difference between the final line
Peter> above and what I was originally trying to do, except that this is
Peter> a newly created module instead of one that was imported.
Peter> Okay, I guess I must have missed a key point and I'm way off the
Peter> track here. Please clarify.
No, it turns out I was. I was thinking you passed a bunch of stuff (like a
dict to use as globals()) to new.module(). I guess I was thinking of
new.code() and new.function(). You might be able to poke elements directly
into the module's __dict__. Perhaps new.module can grow an optional dict
argument to handle this sort of thing.
I suggest you post your use case to python-dev as something for people there
to think about. In fact, new.module() would become pretty useless if you
weren't able to do what you can do today, so I think it will probably need a
dict argument if the "no modifying another module's globals" restriction is
More information about the Python-list