You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
922 B

__author__ = 'Chris'
import os
import time
import hashlib
from itertools import dropwhile
import sys
sys.path.append(os.path.dirname(__file__))
def generate_pyfilename():
'''
generates a random filename by hashing the current time stamp
Leading numbers are dropped from the filename for import compatibility
'''
hash = hashlib.md5(str(time.time())).hexdigest()
return ''.join(dropwhile(lambda c: c.isdigit(), hash))
def load(module_source):
tmp_filename = generate_pyfilename()
tmp_filedir = os.path.dirname(__file__)
tmp_filepath = os.path.join(tmp_filedir, tmp_filename)
tmp_py_file = tmp_filepath + '.py'
tmp_pyc_file = tmp_filepath + '.pyc'
try:
with open(tmp_py_file, 'w') as f:
f.write(module_source)
return __import__(tmp_filename)
finally:
os.remove(tmp_py_file)
os.remove(tmp_pyc_file)
if __name__ == '__main__':
pass