def fix_dir(path): import os for root, dirs, files in os.walk(path): for name in files: if not name.endswith('pyc'): continue name = os.path.join(root, name) print("fixing", name) data = open(name).read() try: c = xmarshal.loads(data[8:]) except Exception as e: print("error", e, repr(e)) # print repr(data[8:]) continue # fix the version indicator and save open(name, "w").write( "\xb3\xf2\r\n" + data[4:8] + xmarshal.dumps(c))
def fix_dir(path): import os for root, dirs, files in os.walk(path): for name in files: if not name.endswith('pyc'): continue name = os.path.join(root, name) print("fixing", name) data = open(name).read() try: c = xmarshal.loads(data[8:]) except Exception as e: print("error", e, repr(e)) # print repr(data[8:]) continue # fix the version indicator and save open(name, "w").write("\xb3\xf2\r\n" + data[4:8] + xmarshal.dumps(c))
# if i in m and not table[i] == j: # print "mismatch %c (%x) => %c (%x)" % (ord(i),ord(i),ord(j),ord(j)) v = table.setdefault(i, {}) v[j] = v.get(j, 0) + 1 pass return for root, dirs, files in os.walk('library'): for name in files: name = os.path.join(root, name) if not name.endswith('pyc'): continue f2 = os.path.join('/tmp/python-defaults-2.7.2/Python-2.5.4/Lib', name[8:]) if not os.path.exists(f2): continue print("loading", name) try: c = xmarshal.loads(open(name).read()[8:]) except: print("error", name) continue d = marshal.loads(open(f2).read()[8:]) fill(c, d) codes_c = filter(lambda x: type(x) == type(c), c.co_consts) codes_d = filter(lambda x: type(x) == type(c), d.co_consts) for i, j in zip(codes_c, codes_d): fill(i, j) pass pass def print_table(m): k = m.keys() k.sort()
v[j] = v.get(j, 0) + 1 pass return for root, dirs, files in os.walk("library"): for name in files: name = os.path.join(root, name) if not name.endswith("pyc"): continue f2 = os.path.join("/tmp/python-defaults-2.7.2/Python-2.5.4/Lib", name[8:]) if not os.path.exists(f2): continue print("loading", name) try: c = xmarshal.loads(open(name).read()[8:]) except: print("error", name) continue d = marshal.loads(open(f2).read()[8:]) fill(c, d) codes_c = filter(lambda x: type(x) == type(c), c.co_consts) codes_d = filter(lambda x: type(x) == type(c), d.co_consts) for i, j in zip(codes_c, codes_d): fill(i, j) pass pass def print_table(m): k = m.keys() k.sort()