def compare_code_with_srcfile(pyc_filename, src_filename, verify): """Compare a .pyc with a source code file. If everything is okay, None is returned. Otherwise a string message describing the mismatch is returned. """ ( version, timestamp, magic_int, code_obj1, is_pypy, source_size, sip_hash, ) = load_module(pyc_filename) if magic_int != PYTHON_MAGIC_INT: msg = ( "Can't compare code - Python is running with magic %s, but code is magic %s " % (PYTHON_MAGIC_INT, magic_int) ) return msg try: code_obj2 = load_file(src_filename) except SyntaxError, e: # src_filename can be the first of a group sometimes if version == 2.4: print(pyc_filename) return str(e).replace(src_filename, pyc_filename)
def compare_code_with_srcfile(pyc_filename, src_filename, verify): """Compare a .pyc with a source code file. If everything is okay, None is returned. Otherwise a string message describing the mismatch is returned. """ ( version, timestamp, magic_int, code_obj1, is_pypy, source_size, sip_hash, ) = load_module(pyc_filename) if magic_int != PYTHON_MAGIC_INT: msg = ( "Can't compare code - Python is running with magic %s, but code is magic %s " % (PYTHON_MAGIC_INT, magic_int)) return msg try: code_obj2 = load_file(src_filename) except SyntaxError as e: # src_filename can be the first of a group sometimes return str(e).replace(src_filename, pyc_filename) cmp_code_objects(version, is_pypy, code_obj1, code_obj2, verify) if verify == "verify-run": try: retcode = call("%s %s" % (sys.executable, src_filename), shell=True) if retcode != 0: return "Child was terminated by signal %d" % retcode pass except OSError as e: return "Execution failed: %s" % e pass return None
def line_number_mapping(pyc_filename, src_filename): ( version, timestamp, magic_int, code1, is_pypy, source_size, sip_hash, ) = load_module(pyc_filename) try: code2 = load_file(src_filename) except SyntaxError, e: return str(e)
def line_number_mapping(pyc_filename, src_filename): ( version, timestamp, magic_int, code1, is_pypy, source_size, sip_hash, ) = load_module(pyc_filename) try: code2 = load_file(src_filename) except SyntaxError as e: return str(e) queue = deque([code1, code2]) mappings = [] opc = get_opcode(version, is_pypy) number_loop(queue, mappings, opc) return sorted(mappings, key=lambda x: x[1])