Source code for RTOC.RTLogger.importCode

# http://code.activestate.com/recipes/82234-importing-a-dynamically-generated-module/
[docs]def importCode(code, name, add_to_sys_modules=0): """ Import dynamically generated code as a module. code is the object containing the code (a string, a file handle or an actual compiled code object, same types as accepted by an exec statement). The name is the name to give to the module, and the final argument says wheter to add it to sys.modules or not. If it is added, a subsequent import statement using name will return this module. If it is not added to sys.modules import will try to load it in the normal fashion. import foo is equivalent to foofile = open("/path/to/foo.py") foo = importCode(foofile,"foo",1) Returns a newly generated module. """ import sys import imp module = imp.new_module(name) # exec code in module.__dict__ exec(code, module.__dict__) if add_to_sys_modules: sys.modules[name] = module return module
if __name__ == "__main__": # Example code = \ """ def testFunc(): print "spam!" class testClass: def testMethod(self): print "eggs!" """ m = importCode(code, "test") m.testFunc() o = m.testClass() o.testMethod()