mirror of https://github.com/chriskiehl/Gooey.git
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
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
|
|
|