# your code goes here
import imp
modulesource = 'a=1;b=2' #load from internet or wherever
def makemodule(modulesource,sourcestr='http://some/url/or/whatever',modname=None):
if not modname: modname = 'newmodulename'
#must be exec mode
codeobj = compile(modulesource, sourcestr, 'exec')
newmodule = imp.new_module(modname)
exec(codeobj,newmodule.__dict__)
return newmodule
newmodule = makemodule(modulesource)
print(newmodule.a)
modulesource = '''
a = 'foo'
def myfun(astr):
return a + astr
'''
newmod = makemodule(modulesource)
print(newmod.myfun('bat'))
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmltcG9ydCBpbXAKbW9kdWxlc291cmNlID0gJ2E9MTtiPTInICNsb2FkIGZyb20gaW50ZXJuZXQgb3Igd2hlcmV2ZXIKZGVmIG1ha2Vtb2R1bGUobW9kdWxlc291cmNlLHNvdXJjZXN0cj0naHR0cDovL3NvbWUvdXJsL29yL3doYXRldmVyJyxtb2RuYW1lPU5vbmUpOgogICAgaWYgbm90IG1vZG5hbWU6IG1vZG5hbWUgPSAnbmV3bW9kdWxlbmFtZScKICAgICNtdXN0IGJlIGV4ZWMgbW9kZQogICAgY29kZW9iaiA9IGNvbXBpbGUobW9kdWxlc291cmNlLCBzb3VyY2VzdHIsICdleGVjJykKICAgIG5ld21vZHVsZSA9IGltcC5uZXdfbW9kdWxlKG1vZG5hbWUpCiAgICBleGVjKGNvZGVvYmosbmV3bW9kdWxlLl9fZGljdF9fKQogICAgcmV0dXJuIG5ld21vZHVsZQpuZXdtb2R1bGUgPSBtYWtlbW9kdWxlKG1vZHVsZXNvdXJjZSkKcHJpbnQobmV3bW9kdWxlLmEpCgptb2R1bGVzb3VyY2UgPSAnJycKYSA9ICdmb28nCmRlZiBteWZ1bihhc3RyKToKICAgIHJldHVybiBhICsgYXN0cgonJycKbmV3bW9kID0gbWFrZW1vZHVsZShtb2R1bGVzb3VyY2UpCnByaW50KG5ld21vZC5teWZ1bignYmF0Jykp