Server : Apache System : Linux indy02.toastserver.com 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64 User : palandch ( 1163) PHP Version : 7.1.33 Disable Function : NONE Directory : /opt/alt/python27/lib64/python2.7/site-packages/guppy/etc/ |
#._cv_part guppy.etc.ExecfileWithModuleInfo import sys, os, imp, md5 _VERBOSE = True _RELOAD_ALWAYS = True # False _MAGIC = '#._cv_part' modsums = {} def pyname(m): fname = m.__file__ if not fname.endswith('.py'): se = os.path.splitext(fname) fname = se[0]+'.py' return fname def calc_stringsum(s): return md5.md5(s).digest() def calc_modsum(m): return calc_stringsum(open(pyname(m)).read()) def execfile(filename, globs=None, locs=None): if globs==None: # Do this in an interior frame to not change caller's sys.exc_info() def get_globs(): try: 1/0 except: try: typ, val, trb = sys.exc_info() frame = trb.tb_frame.f_back.f_back globs = frame.f_globals finally: del typ,val,trb return globs globs = get_globs() file = open(filename) text = file.read() file.close() if text.startswith(_MAGIC): ix = len(_MAGIC) else: ix = text.find('\n'+_MAGIC) if ix == -1: code = compile(text, filename, 'exec') exec code in globs, locs return ix = ix + len(_MAGIC) + 1 eix = text.find('\n', ix) name = text[ix:eix] name=name.strip() m = sys.modules.get(name) if m is None: if _VERBOSE: print '%s.execfile: importing'%__name__, name __import__(name, globs, locs, []) m = sys.modules[name] msum = calc_modsum(m) modsums[m.__name__] = msum tsum = calc_stringsum(text) else: msum = modsums.get(m.__name__) if msum != calc_modsum(m): msum = '' tsum = calc_stringsum(text) if _RELOAD_ALWAYS or msum != tsum: if _VERBOSE: print '%s.execfile: reloading'%__name__, name fname = pyname(m) code = compile(text, fname, 'exec') exec code in m.__dict__ modsums[m.__name__] = tsum