[Tutor] aliasing an imported module

Garry Willgoose garry.willgoose at newcastle.edu.au
Sat Feb 13 00:51:38 CET 2010


I want to be able to import multiple instances of a module and call  
each by a unique name and it doesn't appear at first glance that  
either import or __import__ have what I need. I need this because of  
computing platform I have developed where users write python scripts  
to do some analysis of science problems where they call modules that  
have code for monipulating data and where the imported module does  
some specific scientfic manipulation of data. The key problem is that  
the  module might locally store some partial results ready for the  
next time its called to save CPU time (typically the results for one  
timestep ready for the next timestep). But if the module is called for  
two different purposes in two different parts of the script then the  
second call will actually see the partial results from the 1st call  
and vice versa. The simple solution is if it were possible to import  
the same module file twice but for them to act like they were  
different modules. It was also make it easy to parallelise code  
without the called module needing to be thread safe (each instance  
would be one thread) but that is a lesser priority for the moment.

If I have module in a file called stuff.py has in it a global variable  
somevariable I want to be able to import multiple instance (with  
seperate name spaces etc) of stuff so that I could have for example

a=instance1ofstuff.somevariable
b=instance2ofstuff.somevariable

and a and b are referring to different variables in entirely different  
modules. IS there any way to do this?


====================================================================
Prof Garry Willgoose,
Australian Professorial Fellow in Environmental Engineering,
Director, Centre for Climate Impact Management (C2IM),
School of Engineering, The University of Newcastle,
Callaghan, 2308
Australia.

Centre webpage: www.c2im.org.au

Phone: (International) +61 2 4921 6050 (Tues-Fri AM); +61 2 6545 9574  
(Fri PM-Mon)
FAX: (International) +61 2 4921 6991 (Uni); +61 2 6545 9574 (personal  
and Telluric)
Env. Engg. Secretary: (International) +61 2 4921 6042

email:  garry.willgoose at newcastle.edu.au; g.willgoose at telluricresearch.com
email-for-life: garry.willgoose at alum.mit.edu
personal webpage: www.telluricresearch.com/garry
====================================================================
"Do not go where the path may lead, go instead where there is no path  
and leave a trail"
                           Ralph Waldo Emerson
====================================================================







More information about the Tutor mailing list