B
Bo Peng
Dear list,
What I would like to do is something like:
In myModule.py ( a wrapper module for different versions of the module),
if lib == 'standard':
from myModule_std import *
elsif lib == 'optimized'
from myModule_op import *
but I do not know how to pass variable lib to myModule.py to achieve the
following effect:
From what I have read, from .... does not take any parameter. Maybe I
should use environmental variables?
myModule.py
-------------
import os
lib = os.getenv('lib')
...
or use a separate module?
param.py
---------
para = {}
def setParam(key, val):
para[key] = val
main session
------------
in myModule.py
--------------
from param import para
try:
lib = para['lib']
except:
lib = 'standard'
...
Is there an established approach for this problem?
Many thanks in davance.
Bo
===============================================================================
FULL STORY:
I have several modules all (SWIG) wrapped from the same C++ source code
but with different compiling flags. For example,
myModule_std (standard module)
myModule_op (optimized, without error checking)
...
These modules are put directly under /.../site-packages . To load a
module, I use, for example
from myModule_op import *
This works fine until I need to write some helper functions for
myModule_?? in another module myHelper.py since I do not know which
myModule is being used
from myModule?? import A,B
I find one solution
# find out which module is being used
import sys
if 'myModule_op' in sys.modules.keys():
from myModule_op import A,B
else:
from myModule_std import A,B
but not completely satisfied. Therefore, I am writing a 'wrapper' module
myModule that can load one of the myModule_?? modules according to user
supplied info.
What I would like to do is something like:
In myModule.py ( a wrapper module for different versions of the module),
if lib == 'standard':
from myModule_std import *
elsif lib == 'optimized'
from myModule_op import *
but I do not know how to pass variable lib to myModule.py to achieve the
following effect:
From what I have read, from .... does not take any parameter. Maybe I
should use environmental variables?
myModule.py
-------------
import os
lib = os.getenv('lib')
...
or use a separate module?
param.py
---------
para = {}
def setParam(key, val):
para[key] = val
main session
------------
in myModule.py
--------------
from param import para
try:
lib = para['lib']
except:
lib = 'standard'
...
Is there an established approach for this problem?
Many thanks in davance.
Bo
===============================================================================
FULL STORY:
I have several modules all (SWIG) wrapped from the same C++ source code
but with different compiling flags. For example,
myModule_std (standard module)
myModule_op (optimized, without error checking)
...
These modules are put directly under /.../site-packages . To load a
module, I use, for example
from myModule_op import *
This works fine until I need to write some helper functions for
myModule_?? in another module myHelper.py since I do not know which
myModule is being used
from myModule?? import A,B
I find one solution
# find out which module is being used
import sys
if 'myModule_op' in sys.modules.keys():
from myModule_op import A,B
else:
from myModule_std import A,B
but not completely satisfied. Therefore, I am writing a 'wrapper' module
myModule that can load one of the myModule_?? modules according to user
supplied info.