--- tags: decompiler --- # MWEs 1: 62-82 Note: - Python versions are selected based on the original pyc (Using command `file`) - MWEs generated will be compiled using `compileall` via the same python version ## Error 1/62 Source: [link](https://github.com/PingThingsIO/btrdb-python/blob/v5.8/btrdb/stream.py) Python version: 3.8 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` MWE1: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | MWE2: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | MWE3: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | MWE4: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: #### MWE1: ```python= def exists(): try: x=x return True except: pass ``` ##### Closest Solution1: No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2). ##### MWE1 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object exists at 0x400236ea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('exists') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (exists) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object exists at 0x400236ea80, file "main.py", line 1>: 2 0 SETUP_FINALLY 10 (to 12) 3 2 LOAD_FAST 0 (x) 4 STORE_FAST 0 (x) 4 6 POP_BLOCK 8 LOAD_CONST 1 (True) 10 RETURN_VALUE 5 >> 12 POP_TOP 14 POP_TOP 16 POP_TOP 6 18 POP_EXCEPT 20 JUMP_FORWARD 2 (to 24) 22 END_FINALLY >> 24 LOAD_CONST 0 (None) 26 RETURN_VALUE ``` Output uncompyle6: ```python= def exists--- This code section failed: --- L. 2 0 SETUP_FINALLY 12 'to 12' L. 3 2 LOAD_FAST 'x' 4 STORE_FAST 'x' L. 4 6 POP_BLOCK 8 LOAD_CONST True 10 RETURN_VALUE 12_0 COME_FROM_FINALLY 0 '0' L. 5 12 POP_TOP 14 POP_TOP 16 POP_TOP L. 6 18 POP_EXCEPT 20 JUMP_FORWARD 24 'to 24' 22 END_FINALLY 24_0 COME_FROM 20 '20' Parse error at or near `RETURN_VALUE' instruction at offset 10 ``` Output Decompyle3: ```python= Instruction context: L. 6 18 POP_EXCEPT -> 20 JUMP_FORWARD 24 'to 24' 22 END_FINALLY test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` #### MWE2: ```python= def _update_annotations(encoder): serialized = {k: x(encoder, k) for k in l} ``` ##### Closest Solution2: ```python= def _update_annotations(encoder): serialized = {} for k in l: serialized[k] = x(encoder, k) ``` ```c= 1 0 LOAD_CONST 0 (<code object _update_annotations at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('_update_annotations') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_update_annotations) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _update_annotations at 0x400246eb30, file "main.py", line 1>: 2 0 BUILD_MAP 0 2 STORE_FAST 1 (serialized) 3 4 LOAD_GLOBAL 0 (l) 6 GET_ITER >> 8 FOR_ITER 18 (to 28) 10 STORE_FAST 2 (k) 4 12 LOAD_GLOBAL 1 (x) 14 LOAD_FAST 0 (encoder) 16 LOAD_FAST 2 (k) 18 CALL_FUNCTION 2 20 LOAD_FAST 1 (serialized) 22 LOAD_FAST 2 (k) 24 STORE_SUBSCR 26 JUMP_ABSOLUTE 8 >> 28 LOAD_CONST 0 (None) 30 RETURN_VALUE ``` ##### MWE2 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _update_annotations at 0x40021aeea0, file "main.py", line 1>) 2 LOAD_CONST 1 ('_update_annotations') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_update_annotations) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _update_annotations at 0x40021aeea0, file "main.py", line 1>: 2 0 LOAD_CLOSURE 0 (encoder) 2 BUILD_TUPLE 1 4 LOAD_CONST 1 (<code object <dictcomp> at 0x40021aedf0, file "main.py", line 2>) 6 LOAD_CONST 2 ('_update_annotations.<locals>.<dictcomp>') 8 MAKE_FUNCTION 8 (closure) 10 LOAD_GLOBAL 0 (l) 12 GET_ITER 14 CALL_FUNCTION 1 16 STORE_FAST 1 (serialized) 18 LOAD_CONST 0 (None) 20 RETURN_VALUE Disassembly of <code object <dictcomp> at 0x40021aedf0, file "main.py", line 2>: 2 0 BUILD_MAP 0 2 LOAD_FAST 0 (.0) >> 4 FOR_ITER 16 (to 22) 6 STORE_FAST 1 (k) 8 LOAD_FAST 1 (k) 10 LOAD_GLOBAL 0 (x) 12 LOAD_DEREF 0 (encoder) 14 LOAD_FAST 1 (k) 16 CALL_FUNCTION 2 18 MAP_ADD 2 20 JUMP_ABSOLUTE 4 >> 22 RETURN_VALUE ``` Output uncompyle6: ```python= def _update_annotations--- This code section failed: --- L. 2 0 LOAD_CLOSURE 'encoder' 2 BUILD_TUPLE_1 1 4 LOAD_DICTCOMP '<code_object <dictcomp>>' 6 LOAD_STR '_update_annotations.<locals>.<dictcomp>' 8 MAKE_FUNCTION_8 'closure' 10 LOAD_GLOBAL l 12 GET_ITER 14 CALL_FUNCTION_1 1 '' 16 STORE_FAST 'serialized' Parse error at or near `None' instruction at offset -1 ``` Output Decompyle3: ```python= def _update_annotations(encoder): serialized = {x(encoder, k):k for k in l} ``` #### MWE3: ```python= def nearest(): try: pass except BTrDBError as exc: return None ``` ##### Closest Solution3: No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-1). ##### MWE3 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object nearest at 0x40021aeb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('nearest') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (nearest) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object nearest at 0x40021aeb30, file "main.py", line 1>: 2 0 SETUP_FINALLY 4 (to 6) 3 2 POP_BLOCK 4 JUMP_FORWARD 40 (to 46) 4 >> 6 DUP_TOP 8 LOAD_GLOBAL 0 (BTrDBError) 10 COMPARE_OP 10 (exception match) 12 POP_JUMP_IF_FALSE 44 14 POP_TOP 16 STORE_FAST 0 (exc) 18 POP_TOP 20 SETUP_FINALLY 10 (to 32) 5 22 POP_BLOCK 24 POP_EXCEPT 26 CALL_FINALLY 4 (to 32) 28 LOAD_CONST 0 (None) 30 RETURN_VALUE >> 32 LOAD_CONST 0 (None) 34 STORE_FAST 0 (exc) 36 DELETE_FAST 0 (exc) 38 END_FINALLY 40 POP_EXCEPT 42 JUMP_FORWARD 2 (to 46) >> 44 END_FINALLY >> 46 LOAD_CONST 0 (None) 48 RETURN_VALUE ``` Output uncompyle6: ```python= def nearest--- This code section failed: --- L. 2 0 SETUP_FINALLY 6 'to 6' L. 3 2 POP_BLOCK 4 JUMP_FORWARD 46 'to 46' 6_0 COME_FROM_FINALLY 0 '0' L. 4 6 DUP_TOP 8 LOAD_GLOBAL BTrDBError 10 COMPARE_OP exception-match 12 POP_JUMP_IF_FALSE 44 'to 44' 14 POP_TOP 16 STORE_FAST 'exc' 18 POP_TOP 20 SETUP_FINALLY 32 'to 32' L. 5 22 POP_BLOCK 24 POP_EXCEPT 26 CALL_FINALLY 32 'to 32' 28 LOAD_CONST None 30 RETURN_VALUE 32_0 COME_FROM 26 '26' 32_1 COME_FROM_FINALLY 20 '20' 32 LOAD_CONST None 34 STORE_FAST 'exc' 36 DELETE_FAST 'exc' 38 END_FINALLY 40 POP_EXCEPT 42 JUMP_FORWARD 46 'to 46' 44_0 COME_FROM 12 '12' 44 END_FINALLY 46_0 COME_FROM 42 '42' 46_1 COME_FROM 4 '4' Parse error at or near `CALL_FINALLY' instruction at offset 26 ``` Output Decompyle3: ```python= def nearest(): try: pass except BTrDBError as exc: try: return finally: exc = None del exc ``` #### MWE4: ```python= def rows(): for x in l: try: streams_empty = False except: continue ``` ##### Closest Solution4: No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2). ##### MWE4 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object rows at 0x40021eebe0, file "main.py", line 1>) 2 LOAD_CONST 1 ('rows') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (rows) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object rows at 0x40021eebe0, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (l) 2 GET_ITER >> 4 FOR_ITER 30 (to 36) 6 STORE_FAST 0 (x) 3 8 SETUP_FINALLY 8 (to 18) 4 10 LOAD_CONST 1 (False) 12 STORE_FAST 1 (streams_empty) 14 POP_BLOCK 16 JUMP_ABSOLUTE 4 5 >> 18 POP_TOP 20 POP_TOP 22 POP_TOP 6 24 POP_EXCEPT 26 JUMP_ABSOLUTE 4 28 POP_EXCEPT 30 JUMP_ABSOLUTE 4 32 END_FINALLY 34 JUMP_ABSOLUTE 4 >> 36 LOAD_CONST 0 (None) 38 RETURN_VALUE ``` Output uncompyle6: ```python= def rows--- This code section failed: --- L. 2 0 LOAD_GLOBAL l 2 GET_ITER 4 FOR_ITER 36 'to 36' 6 STORE_FAST 'x' L. 3 8 SETUP_FINALLY 18 'to 18' L. 4 10 LOAD_CONST False 12 STORE_FAST 'streams_empty' 14 POP_BLOCK 16 JUMP_BACK 4 'to 4' 18_0 COME_FROM_FINALLY 8 '8' L. 5 18 POP_TOP 20 POP_TOP 22 POP_TOP L. 6 24 POP_EXCEPT 26 JUMP_BACK 4 'to 4' 28 POP_EXCEPT 30 JUMP_BACK 4 'to 4' 32 END_FINALLY 34 JUMP_BACK 4 'to 4' Parse error at or near `POP_EXCEPT' instruction at offset 28 ``` Output Decompyle3: ```python= Instruction context: L. 6 24 POP_EXCEPT -> 26 JUMP_BACK 4 'to 4' 28 POP_EXCEPT 30 JUMP_BACK 4 'to 4' 32 END_FINALLY 34 JUMP_BACK 4 'to 4' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/63 - Py3.4 Source: [link](https://github.com/ksmaheshkumar/ButterflyNet/blob/master/bfnet/Net.py) Python version: 3.4 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` MWE1: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Pass | Pass | Pass | MWE2: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Fail | Pass | Pass | MWE3: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Fail | Pass | Pass | ### MWE: ### MWE1: > NOTE: Ignoring this since it fails in python 3.4. This file passes for all other python versions (atleast the relevant ones) ```python= def any_data(self, func): def match(data): return func self.handlers.append(match) return func ``` ### MWE2: > NOTE: Ignoring this since it fails in python 3.4. This file passes for all other python versions (atleast the relevant ones) ```python= def regexp_match(self, regexp: str): def real_decorator(func: types.FunctionType): # Compile the regexp pattern. pattern = re.compile(regexp) # Create a match function. def match(data: bytes): # Match it - if it works, return the func. Else, return None. data = data.decode() if pattern.match(data): return func else: return None self.handlers.append(match) return func return real_decorator ``` ### MWE3: > NOTE: Ignoring this since it fails in python 3.4. This file passes for all other python versions (atleast the relevant ones) ```python= def prefix_match(self, prefix: str, start=None, end=None): def real_decorator(func: types.FunctionType): def match(data: bytes): data = data.decode() if data.startswith(prefix=prefix, start=start, end=end): return func else: return None self.handlers.append(match) return func return real_decorator ``` ## Error 1/64 Source: [link](https://pypi.org/project/buzzepar/#files) Python version: 3.7 Decompyle3: Works- Incorrect Uncompyle6: Failed Error: `Deparsing stopped due to parse error` MWE1 | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Fail | Pass | Pass | MWE2 | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Fail | Pass | Pass | MWE3 | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Fail | Pass | Pass | ### MWE: #### MWE1: ```python= def _is_chinese_char(): if ((cp >= 0x4E00 and cp <= 0x9FFF) or # (cp >= 0x3400 and cp <= 0x4DBF) or # (cp >= 0x20000 and cp <= 0x2A6DF) or # (cp >= 0x2F800 and cp <= 0x2FA1F)): # return True return False ``` ##### Closest Solution1: ```python= def _is_chinese_char(): tmp1 = (cp >= 0x4E00 and cp <= 0x9FFF) tmp2 = (cp >= 0x3400 and cp <= 0x4DBF) tmp3 = (cp >= 0x20000 and cp <= 0x2A6DF) tmp4 = (cp >= 0x2F800 and cp <= 0x2FA1F) if ( tmp1 or tmp2 or tmp3 ): # return True if tmp4: return True return False ``` ```c= 1 0 LOAD_CONST 0 (<code object _is_chinese_char at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_is_chinese_char') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_is_chinese_char) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _is_chinese_char at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (cp) 2 LOAD_CONST 1 (19968) 4 COMPARE_OP 5 (>=) 6 JUMP_IF_FALSE_OR_POP 14 8 LOAD_GLOBAL 0 (cp) 10 LOAD_CONST 2 (40959) 12 COMPARE_OP 1 (<=) >> 14 STORE_FAST 0 (tmp1) 3 16 LOAD_GLOBAL 0 (cp) 18 LOAD_CONST 3 (13312) 20 COMPARE_OP 5 (>=) 22 JUMP_IF_FALSE_OR_POP 30 24 LOAD_GLOBAL 0 (cp) 26 LOAD_CONST 4 (19903) 28 COMPARE_OP 1 (<=) >> 30 STORE_FAST 1 (tmp2) 4 32 LOAD_GLOBAL 0 (cp) 34 LOAD_CONST 5 (131072) 36 COMPARE_OP 5 (>=) 38 JUMP_IF_FALSE_OR_POP 46 40 LOAD_GLOBAL 0 (cp) 42 LOAD_CONST 6 (173791) 44 COMPARE_OP 1 (<=) >> 46 STORE_FAST 2 (tmp3) 5 48 LOAD_GLOBAL 0 (cp) 50 LOAD_CONST 7 (194560) 52 COMPARE_OP 5 (>=) 54 JUMP_IF_FALSE_OR_POP 62 56 LOAD_GLOBAL 0 (cp) 58 LOAD_CONST 8 (195103) 60 COMPARE_OP 1 (<=) >> 62 STORE_FAST 3 (tmp4) 6 64 LOAD_FAST 0 (tmp1) 66 POP_JUMP_IF_TRUE 76 68 LOAD_FAST 1 (tmp2) 70 POP_JUMP_IF_TRUE 76 72 LOAD_FAST 2 (tmp3) 74 POP_JUMP_IF_FALSE 80 7 >> 76 LOAD_CONST 9 (True) 78 RETURN_VALUE 8 >> 80 LOAD_FAST 3 (tmp4) 82 POP_JUMP_IF_FALSE 88 9 84 LOAD_CONST 9 (True) 86 RETURN_VALUE 10 >> 88 LOAD_CONST 10 (False) 90 RETURN_VALUE ``` ##### MWE1 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _is_chinese_char at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_is_chinese_char') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_is_chinese_char) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _is_chinese_char at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (cp) 2 LOAD_CONST 1 (19968) 4 COMPARE_OP 5 (>=) 6 POP_JUMP_IF_FALSE 16 8 LOAD_GLOBAL 0 (cp) 10 LOAD_CONST 2 (40959) 12 COMPARE_OP 1 (<=) 14 POP_JUMP_IF_TRUE 64 3 >> 16 LOAD_GLOBAL 0 (cp) 18 LOAD_CONST 3 (13312) 20 COMPARE_OP 5 (>=) 22 POP_JUMP_IF_FALSE 32 24 LOAD_GLOBAL 0 (cp) 26 LOAD_CONST 4 (19903) 28 COMPARE_OP 1 (<=) 30 POP_JUMP_IF_TRUE 64 4 >> 32 LOAD_GLOBAL 0 (cp) 34 LOAD_CONST 5 (131072) 36 COMPARE_OP 5 (>=) 38 POP_JUMP_IF_FALSE 48 40 LOAD_GLOBAL 0 (cp) 42 LOAD_CONST 6 (173791) 44 COMPARE_OP 1 (<=) 46 POP_JUMP_IF_TRUE 64 5 >> 48 LOAD_GLOBAL 0 (cp) 50 LOAD_CONST 7 (194560) 52 COMPARE_OP 5 (>=) 54 POP_JUMP_IF_FALSE 68 56 LOAD_GLOBAL 0 (cp) 58 LOAD_CONST 8 (195103) 60 COMPARE_OP 1 (<=) 62 POP_JUMP_IF_FALSE 68 6 >> 64 LOAD_CONST 9 (True) 66 RETURN_VALUE 8 >> 68 LOAD_CONST 10 (False) 70 RETURN_VALUE ``` Output uncompyle6: ```python= def _is_chinese_char--- This code section failed: --- L. 2 0 LOAD_GLOBAL cp 2 LOAD_CONST 19968 4 COMPARE_OP >= 6 POP_JUMP_IF_FALSE 16 'to 16' 8 LOAD_GLOBAL cp 10 LOAD_CONST 40959 12 COMPARE_OP <= 14 POP_JUMP_IF_TRUE 64 'to 64' 16_0 COME_FROM 6 '6' L. 3 16 LOAD_GLOBAL cp 18 LOAD_CONST 13312 20 COMPARE_OP >= 22 POP_JUMP_IF_FALSE 32 'to 32' 24 LOAD_GLOBAL cp 26 LOAD_CONST 19903 28 COMPARE_OP <= 30 POP_JUMP_IF_TRUE 64 'to 64' 32_0 COME_FROM 22 '22' L. 4 32 LOAD_GLOBAL cp 34 LOAD_CONST 131072 36 COMPARE_OP >= 38 POP_JUMP_IF_FALSE 48 'to 48' 40 LOAD_GLOBAL cp 42 LOAD_CONST 173791 44 COMPARE_OP <= 46 POP_JUMP_IF_TRUE 64 'to 64' 48_0 COME_FROM 38 '38' L. 5 48 LOAD_GLOBAL cp 50 LOAD_CONST 194560 52 COMPARE_OP >= 54 POP_JUMP_IF_FALSE 68 'to 68' 56 LOAD_GLOBAL cp 58 LOAD_CONST 195103 60 COMPARE_OP <= 62 POP_JUMP_IF_FALSE 68 'to 68' 64_0 COME_FROM 46 '46' 64_1 COME_FROM 30 '30' 64_2 COME_FROM 14 '14' L. 6 64 LOAD_CONST True 66 RETURN_VALUE 68_0 COME_FROM 62 '62' 68_1 COME_FROM 54 '54' L. 8 68 LOAD_CONST False 70 RETURN_VALUE -1 RETURN_LAST Parse error at or near `COME_FROM' instruction at offset 68_1 ``` Output Decompyle3: ```python= def _is_chinese_char(): if not (cp >= 19968 and cp <= 40959): if cp >= 13312 and not cp <= 19903: if cp >= 131072 and not cp <= 173791: if not cp >= 194560 or cp <= 195103: return True return False ``` #### MWE2: ```python= def _is_whitespace(): if char == " " or char == "\t" or char == "\n" or char == "\r": return True return False ``` ##### Closest Solution2: ```python= def _is_whitespace(): tmp1 = char == " " or char == "\t" if tmp1 or char == "\n" or char == "\r": return True return False ``` ```c= 1 0 LOAD_CONST 0 (<code object _is_whitespace at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_is_whitespace') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_is_whitespace) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _is_whitespace at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (char) 2 LOAD_CONST 1 (' ') 4 COMPARE_OP 2 (==) 6 JUMP_IF_TRUE_OR_POP 14 8 LOAD_GLOBAL 0 (char) 10 LOAD_CONST 2 ('\t') 12 COMPARE_OP 2 (==) >> 14 STORE_FAST 0 (tmp1) 3 16 LOAD_FAST 0 (tmp1) 18 POP_JUMP_IF_TRUE 36 20 LOAD_GLOBAL 0 (char) 22 LOAD_CONST 3 ('\n') 24 COMPARE_OP 2 (==) 26 POP_JUMP_IF_TRUE 36 28 LOAD_GLOBAL 0 (char) 30 LOAD_CONST 4 ('\r') 32 COMPARE_OP 2 (==) 34 POP_JUMP_IF_FALSE 40 4 >> 36 LOAD_CONST 5 (True) 38 RETURN_VALUE 5 >> 40 LOAD_CONST 6 (False) 42 RETURN_VALUE ``` ##### MWE2 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _is_whitespace at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_is_whitespace') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_is_whitespace) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _is_whitespace at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (char) 2 LOAD_CONST 1 (' ') 4 COMPARE_OP 2 (==) 6 POP_JUMP_IF_TRUE 32 8 LOAD_GLOBAL 0 (char) 10 LOAD_CONST 2 ('\t') 12 COMPARE_OP 2 (==) 14 POP_JUMP_IF_TRUE 32 16 LOAD_GLOBAL 0 (char) 18 LOAD_CONST 3 ('\n') 20 COMPARE_OP 2 (==) 22 POP_JUMP_IF_TRUE 32 24 LOAD_GLOBAL 0 (char) 26 LOAD_CONST 4 ('\r') 28 COMPARE_OP 2 (==) 30 POP_JUMP_IF_FALSE 36 3 >> 32 LOAD_CONST 5 (True) 34 RETURN_VALUE 4 >> 36 LOAD_CONST 6 (False) 38 RETURN_VALUE ``` Output uncompyle6: ```python= def _is_whitespace--- This code section failed: --- L. 2 0 LOAD_GLOBAL char 2 LOAD_STR ' ' 4 COMPARE_OP == 6 POP_JUMP_IF_TRUE 32 'to 32' 8 LOAD_GLOBAL char 10 LOAD_STR '\t' 12 COMPARE_OP == 14 POP_JUMP_IF_TRUE 32 'to 32' 16 LOAD_GLOBAL char 18 LOAD_STR '\n' 20 COMPARE_OP == 22 POP_JUMP_IF_TRUE 32 'to 32' 24 LOAD_GLOBAL char 26 LOAD_STR '\r' 28 COMPARE_OP == 30 POP_JUMP_IF_FALSE 36 'to 36' 32_0 COME_FROM 22 '22' 32_1 COME_FROM 14 '14' 32_2 COME_FROM 6 '6' L. 3 32 LOAD_CONST True 34 RETURN_VALUE 36_0 COME_FROM 30 '30' L. 4 36 LOAD_CONST False 38 RETURN_VALUE -1 RETURN_LAST Parse error at or near `RETURN_VALUE' instruction at offset 38 ``` Output Decompyle3: ```python= def _is_whitespace(): if not char == ' ': if char == '\t' or (char == '\n' or char == '\r'): return True return False ``` #### MWE3: ```python= def _is_punctuation(): if ((cp >= 33 and cp <= 47) or (cp >= 58 and cp <= 64) or (cp >= 91 and cp <= 96) or (cp >= 123 and cp <= 126)): return True return False ``` ##### Closest Solution3: ```python= def _is_punctuation(): tmp1 = (cp >= 33 and cp <= 47) or (cp >= 58 and cp <= 64) if ( tmp1 or (cp >= 91 and cp <= 96) or (cp >= 123 and cp <= 126)): return True return False ``` ```c= 1 0 LOAD_CONST 0 (<code object _is_punctuation at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_is_punctuation') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_is_punctuation) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _is_punctuation at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (cp) 2 LOAD_CONST 1 (33) 4 COMPARE_OP 5 (>=) 6 POP_JUMP_IF_FALSE 16 8 LOAD_GLOBAL 0 (cp) 10 LOAD_CONST 2 (47) 12 COMPARE_OP 1 (<=) 14 JUMP_IF_TRUE_OR_POP 30 >> 16 LOAD_GLOBAL 0 (cp) 18 LOAD_CONST 3 (58) 20 COMPARE_OP 5 (>=) 22 JUMP_IF_FALSE_OR_POP 30 24 LOAD_GLOBAL 0 (cp) 26 LOAD_CONST 4 (64) 28 COMPARE_OP 1 (<=) >> 30 STORE_FAST 0 (tmp1) 3 32 LOAD_FAST 0 (tmp1) 34 POP_JUMP_IF_TRUE 68 4 36 LOAD_GLOBAL 0 (cp) 38 LOAD_CONST 5 (91) 40 COMPARE_OP 5 (>=) 42 POP_JUMP_IF_FALSE 52 44 LOAD_GLOBAL 0 (cp) 46 LOAD_CONST 6 (96) 48 COMPARE_OP 1 (<=) 50 POP_JUMP_IF_TRUE 68 >> 52 LOAD_GLOBAL 0 (cp) 54 LOAD_CONST 7 (123) 56 COMPARE_OP 5 (>=) 58 POP_JUMP_IF_FALSE 72 60 LOAD_GLOBAL 0 (cp) 62 LOAD_CONST 8 (126) 64 COMPARE_OP 1 (<=) 66 POP_JUMP_IF_FALSE 72 5 >> 68 LOAD_CONST 9 (True) 70 RETURN_VALUE 6 >> 72 LOAD_CONST 10 (False) 74 RETURN_VALUE ``` ##### MWE3 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _is_punctuation at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_is_punctuation') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_is_punctuation) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _is_punctuation at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (cp) 2 LOAD_CONST 1 (33) 4 COMPARE_OP 5 (>=) 6 POP_JUMP_IF_FALSE 16 8 LOAD_GLOBAL 0 (cp) 10 LOAD_CONST 2 (47) 12 COMPARE_OP 1 (<=) 14 POP_JUMP_IF_TRUE 64 >> 16 LOAD_GLOBAL 0 (cp) 18 LOAD_CONST 3 (58) 20 COMPARE_OP 5 (>=) 22 POP_JUMP_IF_FALSE 32 24 LOAD_GLOBAL 0 (cp) 26 LOAD_CONST 4 (64) 28 COMPARE_OP 1 (<=) 30 POP_JUMP_IF_TRUE 64 3 >> 32 LOAD_GLOBAL 0 (cp) 34 LOAD_CONST 5 (91) 36 COMPARE_OP 5 (>=) 38 POP_JUMP_IF_FALSE 48 40 LOAD_GLOBAL 0 (cp) 42 LOAD_CONST 6 (96) 44 COMPARE_OP 1 (<=) 46 POP_JUMP_IF_TRUE 64 >> 48 LOAD_GLOBAL 0 (cp) 50 LOAD_CONST 7 (123) 52 COMPARE_OP 5 (>=) 54 POP_JUMP_IF_FALSE 68 56 LOAD_GLOBAL 0 (cp) 58 LOAD_CONST 8 (126) 60 COMPARE_OP 1 (<=) 62 POP_JUMP_IF_FALSE 68 4 >> 64 LOAD_CONST 9 (True) 66 RETURN_VALUE 5 >> 68 LOAD_CONST 10 (False) 70 RETURN_VALUE ``` Output uncompyle6: ```python= def _is_punctuation--- This code section failed: --- L. 2 0 LOAD_GLOBAL cp 2 LOAD_CONST 33 4 COMPARE_OP >= 6 POP_JUMP_IF_FALSE 16 'to 16' 8 LOAD_GLOBAL cp 10 LOAD_CONST 47 12 COMPARE_OP <= 14 POP_JUMP_IF_TRUE 64 'to 64' 16_0 COME_FROM 6 '6' 16 LOAD_GLOBAL cp 18 LOAD_CONST 58 20 COMPARE_OP >= 22 POP_JUMP_IF_FALSE 32 'to 32' 24 LOAD_GLOBAL cp 26 LOAD_CONST 64 28 COMPARE_OP <= 30 POP_JUMP_IF_TRUE 64 'to 64' 32_0 COME_FROM 22 '22' L. 3 32 LOAD_GLOBAL cp 34 LOAD_CONST 91 36 COMPARE_OP >= 38 POP_JUMP_IF_FALSE 48 'to 48' 40 LOAD_GLOBAL cp 42 LOAD_CONST 96 44 COMPARE_OP <= 46 POP_JUMP_IF_TRUE 64 'to 64' 48_0 COME_FROM 38 '38' 48 LOAD_GLOBAL cp 50 LOAD_CONST 123 52 COMPARE_OP >= 54 POP_JUMP_IF_FALSE 68 'to 68' 56 LOAD_GLOBAL cp 58 LOAD_CONST 126 60 COMPARE_OP <= 62 POP_JUMP_IF_FALSE 68 'to 68' 64_0 COME_FROM 46 '46' 64_1 COME_FROM 30 '30' 64_2 COME_FROM 14 '14' L. 4 64 LOAD_CONST True 66 RETURN_VALUE 68_0 COME_FROM 62 '62' 68_1 COME_FROM 54 '54' L. 5 68 LOAD_CONST False 70 RETURN_VALUE -1 RETURN_LAST Parse error at or near `COME_FROM' instruction at offset 68_1 ``` Output Decompyle3: ```python= def _is_punctuation(): if not (cp >= 33 and cp <= 47): if cp >= 58 and not cp <= 64: if cp >= 91 and not cp <= 96: if not cp >= 123 or cp <= 126: return True return False ``` ## Error 1/65 - Cannot recreate Py 2.7 Source: [link](https://pypi.org/project/bytecodehacks/#files) Python version: 2.7 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Pass | Pass | Pass | ### MWE: ```python= def post_do(self): assert Old.self.x == self.x assert Old.self.y == self.y assert Result > 0, "Result was %s"%`Result` ``` ## Error 1/66 - Cannot recreate Py 2.7 Source: [link](https://github.com/saitoha/tff/blob/6b3ea4c6a83cdb7d0b0c4f37d899588ccd0606c0/tff.py#L1277) Python version: 2.7 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Pass | Pass | Pass | > NOTE: The MWE could not be recreated after recompiling through python 2.7. Will take a closer look into this later. ## Error 1/67 Source: [link](https://github.com/sgammon/canteen/blob/3bef22a2059ef6ac5df178324fbc1dba45316e22/canteen/base/handler.py#L217) Python version: 2.7 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Fail | Fail | Fail | ### MWE: ```python= def respond(): return x or y if z else a ``` #### Closest Solution: ```python= def respond(): tmp = x or y if z else a return tmp ``` ```c= 1 0 LOAD_CONST 0 (<code object respond at 0x400203c530, file "main.py", line 1>) 3 MAKE_FUNCTION 0 6 STORE_NAME 0 (respond) 9 LOAD_CONST 1 (None) 12 RETURN_VALUE Disassembly of respond: 2 0 LOAD_GLOBAL 0 (z) 3 POP_JUMP_IF_FALSE 18 6 LOAD_GLOBAL 1 (x) 9 JUMP_IF_TRUE_OR_POP 21 12 LOAD_GLOBAL 2 (y) 15 JUMP_FORWARD 3 (to 21) >> 18 LOAD_GLOBAL 3 (a) >> 21 STORE_FAST 0 (tmp) 3 24 LOAD_FAST 0 (tmp) 27 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object respond at 0x400203c530, file "main.py", line 1>) 3 MAKE_FUNCTION 0 6 STORE_NAME 0 (respond) 9 LOAD_CONST 1 (None) 12 RETURN_VALUE Disassembly of respond: 2 0 LOAD_GLOBAL 0 (z) 3 POP_JUMP_IF_FALSE 16 6 LOAD_GLOBAL 1 (x) 9 JUMP_IF_TRUE_OR_POP 19 12 LOAD_GLOBAL 2 (y) 15 RETURN_VALUE >> 16 LOAD_GLOBAL 3 (a) >> 19 RETURN_VALUE ``` Output uncompyle6: ```python= def respond--- This code section failed: --- L. 2 0 LOAD_GLOBAL 0 'z' 3 POP_JUMP_IF_FALSE 16 'to 16' 6 LOAD_GLOBAL 1 'x' 9 JUMP_IF_TRUE_OR_POP 19 'to 19' 12 LOAD_GLOBAL 2 'y' 15 RETURN_END_IF 16_0 COME_FROM 9 '9' 16_1 COME_FROM 3 '3' 16 LOAD_GLOBAL 3 'a' 19 RETURN_VALUE -1 RETURN_LAST Parse error at or near `None' instruction at offset -1 ``` Output Decompyle3: ```python= Traceback (most recent call last): File "/usr/local/bin/decompyle3", line 5, in <module> from decompyle3.bin.decompile import main_bin File "/usr/local/lib/python2.7/site-packages/decompyle3/__init__.py", line 39 PYTHON_VERSION: float = sys.version_info[0] + (sys.version_info[1] / 10.0) ^ SyntaxError: invalid syntax ``` ## Error 1/68 Source: [link](https://pypi.org/project/caspredict/#files) Python version: 3.8 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: ```python= def is_fasta(): try: with open(fasta, 'r') as handle: fa = z() return False except: pass ``` #### Closest Solution: ```python= def is_fasta(): try: tmp = False with open(fasta, 'r') as handle: fa = z() tmp = True except: pass else: z =z if tmp: return False ``` ```c= 1 0 LOAD_CONST 0 (<code object is_fasta at 0x400246ea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('is_fasta') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (is_fasta) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object is_fasta at 0x400246ea80, file "main.py", line 1>: 2 0 SETUP_FINALLY 40 (to 42) 3 2 LOAD_CONST 1 (False) 4 STORE_FAST 0 (tmp) 4 6 LOAD_GLOBAL 0 (open) 8 LOAD_GLOBAL 1 (fasta) 10 LOAD_CONST 2 ('r') 12 CALL_FUNCTION 2 14 SETUP_WITH 16 (to 32) 16 STORE_FAST 1 (handle) 5 18 LOAD_FAST 2 (z) 20 CALL_FUNCTION 0 22 STORE_FAST 3 (fa) 6 24 LOAD_CONST 3 (True) 26 STORE_FAST 0 (tmp) 28 POP_BLOCK 30 BEGIN_FINALLY >> 32 WITH_CLEANUP_START 34 WITH_CLEANUP_FINISH 36 END_FINALLY 38 POP_BLOCK 40 JUMP_FORWARD 12 (to 54) 7 >> 42 POP_TOP 44 POP_TOP 46 POP_TOP 8 48 POP_EXCEPT 50 JUMP_FORWARD 6 (to 58) 52 END_FINALLY 10 >> 54 LOAD_FAST 2 (z) 56 STORE_FAST 2 (z) 11 >> 58 LOAD_FAST 0 (tmp) 60 POP_JUMP_IF_FALSE 66 62 LOAD_CONST 1 (False) 64 RETURN_VALUE >> 66 LOAD_CONST 0 (None) 68 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object is_fasta at 0x40021aeb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('is_fasta') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (is_fasta) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object is_fasta at 0x40021aeb30, file "main.py", line 1>: 2 0 SETUP_FINALLY 44 (to 46) 3 2 LOAD_GLOBAL 0 (open) 4 LOAD_GLOBAL 1 (fasta) 6 LOAD_CONST 1 ('r') 8 CALL_FUNCTION 2 10 SETUP_WITH 24 (to 36) 12 STORE_FAST 0 (handle) 4 14 LOAD_GLOBAL 2 (z) 16 CALL_FUNCTION 0 18 STORE_FAST 1 (fa) 5 20 POP_BLOCK 22 BEGIN_FINALLY 24 WITH_CLEANUP_START 26 WITH_CLEANUP_FINISH 28 POP_FINALLY 0 30 POP_BLOCK 32 LOAD_CONST 2 (False) 34 RETURN_VALUE >> 36 WITH_CLEANUP_START 38 WITH_CLEANUP_FINISH 40 END_FINALLY 42 POP_BLOCK 44 JUMP_FORWARD 12 (to 58) 6 >> 46 POP_TOP 48 POP_TOP 50 POP_TOP 7 52 POP_EXCEPT 54 JUMP_FORWARD 2 (to 58) 56 END_FINALLY >> 58 LOAD_CONST 0 (None) 60 RETURN_VALUE ``` Output uncompyle6: ```python= def is_fasta--- This code section failed: --- L. 2 0 SETUP_FINALLY 46 'to 46' L. 3 2 LOAD_GLOBAL open 4 LOAD_GLOBAL fasta 6 LOAD_STR 'r' 8 CALL_FUNCTION_2 2 '' 10 SETUP_WITH 36 'to 36' 12 STORE_FAST 'handle' L. 4 14 LOAD_GLOBAL z 16 CALL_FUNCTION_0 0 '' 18 STORE_FAST 'fa' L. 5 20 POP_BLOCK 22 BEGIN_FINALLY 24 WITH_CLEANUP_START 26 WITH_CLEANUP_FINISH 28 POP_FINALLY 0 '' 30 POP_BLOCK 32 LOAD_CONST False 34 RETURN_VALUE 36_0 COME_FROM_WITH 10 '10' 36 WITH_CLEANUP_START 38 WITH_CLEANUP_FINISH 40 END_FINALLY 42 POP_BLOCK 44 JUMP_FORWARD 58 'to 58' 46_0 COME_FROM_FINALLY 0 '0' L. 6 46 POP_TOP 48 POP_TOP 50 POP_TOP L. 7 52 POP_EXCEPT 54 JUMP_FORWARD 58 'to 58' 56 END_FINALLY 58_0 COME_FROM 54 '54' 58_1 COME_FROM 44 '44' Parse error at or near `WITH_CLEANUP_START' instruction at offset 24 ``` Output Decompyle3: ```python= Instruction context: L. 5 20 POP_BLOCK 22 BEGIN_FINALLY -> 24 WITH_CLEANUP_START 26 WITH_CLEANUP_FINISH 28 POP_FINALLY 0 '' 30 POP_BLOCK 32 LOAD_CONST False 34 RETURN_VALUE 36_0 COME_FROM_WITH 10 '10' 36 WITH_CLEANUP_START 38 WITH_CLEANUP_FINISH 40 END_FINALLY 42 POP_BLOCK 44 JUMP_FORWARD 58 'to 58' 46_0 COME_FROM_FINALLY 0 '0' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/69 Source: [link](https://github.com/catenae/catenae-kafka/blob/36439737bcd9f8f9ccf4aa2d37bb59a675911900/catenae/link.py#L739) Python version: 3.7 Decompyle3: Works-Incorrect Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass-Incorrect | Fail | Pass | Pass | ### MWE: ```python= def _kafka_main_consumer(): while (a or b or c) and d: continue ``` #### Closest Solution: ```python= def _kafka_main_consumer(): tmp = a or b or c while (tmp) and d: tmp = a or b or c continue ``` ```c= 1 0 LOAD_CONST 0 (<code object _kafka_main_consumer at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_kafka_main_consumer') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_kafka_main_consumer) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _kafka_main_consumer at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 JUMP_IF_TRUE_OR_POP 10 4 LOAD_GLOBAL 1 (b) 6 JUMP_IF_TRUE_OR_POP 10 8 LOAD_GLOBAL 2 (c) >> 10 STORE_FAST 0 (tmp) 3 12 SETUP_LOOP 26 (to 40) >> 14 LOAD_FAST 0 (tmp) 16 POP_JUMP_IF_FALSE 38 18 LOAD_GLOBAL 3 (d) 20 POP_JUMP_IF_FALSE 38 4 22 LOAD_GLOBAL 0 (a) 24 JUMP_IF_TRUE_OR_POP 32 26 LOAD_GLOBAL 1 (b) 28 JUMP_IF_TRUE_OR_POP 32 30 LOAD_GLOBAL 2 (c) >> 32 STORE_FAST 0 (tmp) 5 34 JUMP_ABSOLUTE 14 36 JUMP_ABSOLUTE 14 >> 38 POP_BLOCK >> 40 LOAD_CONST 0 (None) 42 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _kafka_main_consumer at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_kafka_main_consumer') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_kafka_main_consumer) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _kafka_main_consumer at 0x40022eee40, file "main.py", line 1>: 2 0 SETUP_LOOP 22 (to 24) >> 2 LOAD_GLOBAL 0 (a) 4 POP_JUMP_IF_TRUE 14 6 LOAD_GLOBAL 1 (b) 8 POP_JUMP_IF_TRUE 14 10 LOAD_GLOBAL 2 (c) 12 POP_JUMP_IF_FALSE 22 >> 14 LOAD_GLOBAL 3 (d) 16 POP_JUMP_IF_FALSE 22 3 18 JUMP_ABSOLUTE 2 20 JUMP_ABSOLUTE 2 >> 22 POP_BLOCK >> 24 LOAD_CONST 0 (None) 26 RETURN_VALUE ``` Output uncompyle6: ```python= def _kafka_main_consumer--- This code section failed: --- L. 2 0 SETUP_LOOP 24 'to 24' 2 LOAD_GLOBAL a 4 POP_JUMP_IF_TRUE 14 'to 14' 6 LOAD_GLOBAL b 8 POP_JUMP_IF_TRUE 14 'to 14' 10 LOAD_GLOBAL c 12 POP_JUMP_IF_FALSE 22 'to 22' 14_0 COME_FROM 8 '8' 14_1 COME_FROM 4 '4' 14 LOAD_GLOBAL d 16 POP_JUMP_IF_FALSE 22 'to 22' L. 3 18 CONTINUE 2 'to 2' 20 JUMP_BACK 2 'to 2' 22_0 COME_FROM 16 '16' 22_1 COME_FROM 12 '12' 22 POP_BLOCK 24_0 COME_FROM_LOOP 0 '0' Parse error at or near `POP_BLOCK' instruction at offset 22 ``` Output Decompyle3: ```python= def _kafka_main_consumer(): while a or b or c: if d: continue ``` ## Error 1/70 Source: [link](https://catsoop.mit.edu/cgit/catsoop.git/tree/catsoop/__QTYPES__/expression/expression.py?h=v2019.9.5&id=a7078f545ed996bccfadb5dd0094ed49e3e34b71) Python version: 3.8 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` MWE1: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | MWE2: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | MWE3: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: #### MWE1: ```python= def check_numpy(): try: x() return True except: pass ``` ##### Closest Solution1: ```python= def check_numpy(): tmp = False try: x() tmp = True except: pass else: z=z if tmp: return True ``` ```c= 1 0 LOAD_CONST 0 (<code object check_numpy at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('check_numpy') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (check_numpy) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object check_numpy at 0x400246eb30, file "main.py", line 1>: 2 0 LOAD_CONST 1 (False) 2 STORE_FAST 0 (tmp) 3 4 SETUP_FINALLY 14 (to 20) 4 6 LOAD_GLOBAL 0 (x) 8 CALL_FUNCTION 0 10 POP_TOP 5 12 LOAD_CONST 2 (True) 14 STORE_FAST 0 (tmp) 16 POP_BLOCK 18 JUMP_FORWARD 12 (to 32) 6 >> 20 POP_TOP 22 POP_TOP 24 POP_TOP 7 26 POP_EXCEPT 28 JUMP_FORWARD 6 (to 36) 30 END_FINALLY 9 >> 32 LOAD_FAST 1 (z) 34 STORE_FAST 1 (z) 10 >> 36 LOAD_FAST 0 (tmp) 38 POP_JUMP_IF_FALSE 44 40 LOAD_CONST 2 (True) 42 RETURN_VALUE >> 44 LOAD_CONST 0 (None) 46 RETURN_VALUE ``` ##### MWE data1: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object check_numpy at 0x40021aea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('check_numpy') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (check_numpy) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object check_numpy at 0x40021aea80, file "main.py", line 1>: 2 0 SETUP_FINALLY 12 (to 14) 3 2 LOAD_GLOBAL 0 (x) 4 CALL_FUNCTION 0 6 POP_TOP 4 8 POP_BLOCK 10 LOAD_CONST 1 (True) 12 RETURN_VALUE 5 >> 14 POP_TOP 16 POP_TOP 18 POP_TOP 6 20 POP_EXCEPT 22 JUMP_FORWARD 2 (to 26) 24 END_FINALLY >> 26 LOAD_CONST 0 (None) 28 RETURN_VALUE ``` Output uncompyle6: ```python= def check_numpy--- This code section failed: --- L. 2 0 SETUP_FINALLY 14 'to 14' L. 3 2 LOAD_GLOBAL x 4 CALL_FUNCTION_0 0 '' 6 POP_TOP L. 4 8 POP_BLOCK 10 LOAD_CONST True 12 RETURN_VALUE 14_0 COME_FROM_FINALLY 0 '0' L. 5 14 POP_TOP 16 POP_TOP 18 POP_TOP L. 6 20 POP_EXCEPT 22 JUMP_FORWARD 26 'to 26' 24 END_FINALLY 26_0 COME_FROM 22 '22' Parse error at or near `RETURN_VALUE' instruction at offset 12 ``` Output Decompyle3: ```python= Instruction context: L. 6 20 POP_EXCEPT -> 22 JUMP_FORWARD 26 'to 26' 24 END_FINALLY test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` #### MWE2: ```python= def _run_one_test(): for m in maps_to_try: try: pass except: return False ``` ##### Closest Solution2: ```python= def _run_one_test(): for m in maps_to_try: tmp = False try: pass except: tmp = True else: z=z if tmp: return False ``` ```c= 1 0 LOAD_CONST 0 (<code object _run_one_test at 0x40021aeb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('_run_one_test') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_run_one_test) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _run_one_test at 0x40021aeb30, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (maps_to_try) 2 GET_ITER >> 4 FOR_ITER 44 (to 50) 6 STORE_FAST 0 (m) 3 8 LOAD_CONST 1 (False) 10 STORE_FAST 1 (tmp) 4 12 SETUP_FINALLY 4 (to 18) 5 14 POP_BLOCK 16 JUMP_FORWARD 16 (to 34) 6 >> 18 POP_TOP 20 POP_TOP 22 POP_TOP 7 24 LOAD_CONST 2 (True) 26 STORE_FAST 1 (tmp) 28 POP_EXCEPT 30 JUMP_FORWARD 6 (to 38) 32 END_FINALLY 9 >> 34 LOAD_FAST 2 (z) 36 STORE_FAST 2 (z) 10 >> 38 LOAD_FAST 1 (tmp) 40 POP_JUMP_IF_FALSE 4 42 POP_TOP 44 LOAD_CONST 1 (False) 46 RETURN_VALUE 48 JUMP_ABSOLUTE 4 >> 50 LOAD_CONST 0 (None) 52 RETURN_VALUE ``` ##### MWE data2: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _run_one_test at 0x40021eebe0, file "main.py", line 1>) 2 LOAD_CONST 1 ('_run_one_test') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_run_one_test) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _run_one_test at 0x40021eebe0, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (maps_to_try) 2 GET_ITER >> 4 FOR_ITER 26 (to 32) 6 STORE_FAST 0 (m) 3 8 SETUP_FINALLY 4 (to 14) 4 10 POP_BLOCK 12 JUMP_ABSOLUTE 4 5 >> 14 POP_TOP 16 POP_TOP 18 POP_TOP 6 20 POP_EXCEPT 22 POP_TOP 24 LOAD_CONST 1 (False) 26 RETURN_VALUE 28 END_FINALLY 30 JUMP_ABSOLUTE 4 >> 32 LOAD_CONST 0 (None) 34 RETURN_VALUE ``` Output uncompyle6: ```python= def _run_one_test--- This code section failed: --- L. 2 0 LOAD_GLOBAL maps_to_try 2 GET_ITER 4 FOR_ITER 32 'to 32' 6 STORE_FAST 'm' L. 3 8 SETUP_FINALLY 14 'to 14' L. 4 10 POP_BLOCK 12 JUMP_BACK 4 'to 4' 14_0 COME_FROM_FINALLY 8 '8' L. 5 14 POP_TOP 16 POP_TOP 18 POP_TOP L. 6 20 POP_EXCEPT 22 POP_TOP 24 LOAD_CONST False 26 RETURN_VALUE 28 END_FINALLY 30 JUMP_BACK 4 'to 4' Parse error at or near `POP_TOP' instruction at offset 22 ``` Output Decompyle3: ```python= Instruction context: L. 6 20 POP_EXCEPT -> 22 POP_TOP 24 LOAD_CONST False 26 RETURN_VALUE 28 END_FINALLY 30 JUMP_BACK 4 'to 4' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` #### MWE3: ```python= def handle_submission(): with x(): try: pass except: return tmp ``` ##### Closest Solution3: ```python= def handle_submission(): t = False with x(): try: pass except: t = True if t: return tmp ``` ```c= 1 0 LOAD_CONST 0 (<code object handle_submission at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('handle_submission') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (handle_submission) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object handle_submission at 0x400246eb30, file "main.py", line 1>: 2 0 LOAD_CONST 1 (False) 2 STORE_FAST 0 (t) 3 4 LOAD_GLOBAL 0 (x) 6 CALL_FUNCTION 0 8 SETUP_WITH 28 (to 38) 10 POP_TOP 4 12 SETUP_FINALLY 4 (to 18) 5 14 POP_BLOCK 16 JUMP_FORWARD 16 (to 34) 6 >> 18 POP_TOP 20 POP_TOP 22 POP_TOP 7 24 LOAD_CONST 2 (True) 26 STORE_FAST 0 (t) 28 POP_EXCEPT 30 JUMP_FORWARD 2 (to 34) 32 END_FINALLY >> 34 POP_BLOCK 36 BEGIN_FINALLY >> 38 WITH_CLEANUP_START 40 WITH_CLEANUP_FINISH 42 END_FINALLY 9 44 LOAD_FAST 0 (t) 46 POP_JUMP_IF_FALSE 52 48 LOAD_GLOBAL 1 (tmp) 50 RETURN_VALUE >> 52 LOAD_CONST 0 (None) 54 RETURN_VALUE ``` ##### MWE data3: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object handle_submission at 0x40021aea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('handle_submission') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (handle_submission) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object handle_submission at 0x40021aea80, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (x) 2 CALL_FUNCTION 0 4 SETUP_WITH 40 (to 46) 6 POP_TOP 3 8 SETUP_FINALLY 4 (to 14) 4 10 POP_BLOCK 12 JUMP_FORWARD 28 (to 42) 5 >> 14 POP_TOP 16 POP_TOP 18 POP_TOP 6 20 LOAD_GLOBAL 1 (tmp) 22 ROT_FOUR 24 POP_EXCEPT 26 POP_BLOCK 28 ROT_TWO 30 BEGIN_FINALLY 32 WITH_CLEANUP_START 34 WITH_CLEANUP_FINISH 36 POP_FINALLY 0 38 RETURN_VALUE 40 END_FINALLY >> 42 POP_BLOCK 44 BEGIN_FINALLY >> 46 WITH_CLEANUP_START 48 WITH_CLEANUP_FINISH 50 END_FINALLY 52 LOAD_CONST 0 (None) 54 RETURN_VALUE ``` Output uncompyle6: ```python= def handle_submission--- This code section failed: --- L. 2 0 LOAD_GLOBAL x 2 CALL_FUNCTION_0 0 '' 4 SETUP_WITH 46 'to 46' 6 POP_TOP L. 3 8 SETUP_FINALLY 14 'to 14' L. 4 10 POP_BLOCK 12 JUMP_FORWARD 42 'to 42' 14_0 COME_FROM_FINALLY 8 '8' L. 5 14 POP_TOP 16 POP_TOP 18 POP_TOP L. 6 20 LOAD_GLOBAL tmp 22 ROT_FOUR 24 POP_EXCEPT 26 POP_BLOCK 28 ROT_TWO 30 BEGIN_FINALLY 32 WITH_CLEANUP_START 34 WITH_CLEANUP_FINISH 36 POP_FINALLY 0 '' 38 RETURN_VALUE 40 END_FINALLY 42_0 COME_FROM 12 '12' 42 POP_BLOCK 44 BEGIN_FINALLY 46_0 COME_FROM_WITH 4 '4' 46 WITH_CLEANUP_START 48 WITH_CLEANUP_FINISH 50 END_FINALLY Parse error at or near `POP_BLOCK' instruction at offset 26 ``` Output Decompyle3: ```python= Instruction context: L. 6 20 LOAD_GLOBAL tmp 22 ROT_FOUR 24 POP_EXCEPT -> 26 POP_BLOCK 28 ROT_TWO 30 BEGIN_FINALLY 32 WITH_CLEANUP_START 34 WITH_CLEANUP_FINISH 36 POP_FINALLY 0 '' 38 RETURN_VALUE 40 END_FINALLY 42_0 COME_FROM 12 '12' 42 POP_BLOCK 44 BEGIN_FINALLY 46_0 COME_FROM_WITH 4 '4' 46 WITH_CLEANUP_START 48 WITH_CLEANUP_FINISH test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/71 Source: [link](https://catsoop.mit.edu/cgit/catsoop.git/tree/catsoop/__QTYPES__/pythoncode/pythoncode.py?h=v2019.9.5&id=a7078f545ed996bccfadb5dd0094ed49e3e34b71#n222) Python version: 3.8 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: ```python= def handle_submission(): try: pass except Exception as err: z() return x ``` #### Closest Solution: ```python= def handle_submission(): tmp = False try: pass except Exception as err: z() tmp = True else: z=z if tmp: return x ``` ```c= 1 0 LOAD_CONST 0 (<code object handle_submission at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('handle_submission') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (handle_submission) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object handle_submission at 0x400246eb30, file "main.py", line 1>: 2 0 LOAD_CONST 1 (False) 2 STORE_FAST 0 (tmp) 3 4 SETUP_FINALLY 4 (to 10) 4 6 POP_BLOCK 8 JUMP_FORWARD 44 (to 54) 5 >> 10 DUP_TOP 12 LOAD_GLOBAL 0 (Exception) 14 COMPARE_OP 10 (exception match) 16 POP_JUMP_IF_FALSE 52 18 POP_TOP 20 STORE_FAST 1 (err) 22 POP_TOP 24 SETUP_FINALLY 14 (to 40) 6 26 LOAD_FAST 2 (z) 28 CALL_FUNCTION 0 30 POP_TOP 7 32 LOAD_CONST 2 (True) 34 STORE_FAST 0 (tmp) 36 POP_BLOCK 38 BEGIN_FINALLY >> 40 LOAD_CONST 0 (None) 42 STORE_FAST 1 (err) 44 DELETE_FAST 1 (err) 46 END_FINALLY 48 POP_EXCEPT 50 JUMP_FORWARD 6 (to 58) >> 52 END_FINALLY 9 >> 54 LOAD_FAST 2 (z) 56 STORE_FAST 2 (z) 10 >> 58 LOAD_FAST 0 (tmp) 60 POP_JUMP_IF_FALSE 66 62 LOAD_GLOBAL 1 (x) 64 RETURN_VALUE >> 66 LOAD_CONST 0 (None) 68 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object handle_submission at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('handle_submission') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (handle_submission) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object handle_submission at 0x400246eb30, file "main.py", line 1>: 2 0 SETUP_FINALLY 4 (to 6) 3 2 POP_BLOCK 4 JUMP_FORWARD 48 (to 54) 4 >> 6 DUP_TOP 8 LOAD_GLOBAL 0 (Exception) 10 COMPARE_OP 10 (exception match) 12 POP_JUMP_IF_FALSE 52 14 POP_TOP 16 STORE_FAST 0 (err) 18 POP_TOP 20 SETUP_FINALLY 18 (to 40) 5 22 LOAD_GLOBAL 1 (z) 24 CALL_FUNCTION 0 26 POP_TOP 6 28 LOAD_GLOBAL 2 (x) 30 ROT_FOUR 32 POP_BLOCK 34 POP_EXCEPT 36 CALL_FINALLY 2 (to 40) 38 RETURN_VALUE >> 40 LOAD_CONST 0 (None) 42 STORE_FAST 0 (err) 44 DELETE_FAST 0 (err) 46 END_FINALLY 48 POP_EXCEPT 50 JUMP_FORWARD 2 (to 54) >> 52 END_FINALLY >> 54 LOAD_CONST 0 (None) 56 RETURN_VALUE ``` Output uncompyle6: ```python= def handle_submission--- This code section failed: --- L. 2 0 SETUP_FINALLY 6 'to 6' L. 3 2 POP_BLOCK 4 JUMP_FORWARD 54 'to 54' 6_0 COME_FROM_FINALLY 0 '0' L. 4 6 DUP_TOP 8 LOAD_GLOBAL Exception 10 COMPARE_OP exception-match 12 POP_JUMP_IF_FALSE 52 'to 52' 14 POP_TOP 16 STORE_FAST 'err' 18 POP_TOP 20 SETUP_FINALLY 40 'to 40' L. 5 22 LOAD_GLOBAL z 24 CALL_FUNCTION_0 0 '' 26 POP_TOP L. 6 28 LOAD_GLOBAL x 30 ROT_FOUR 32 POP_BLOCK 34 POP_EXCEPT 36 CALL_FINALLY 40 'to 40' 38 RETURN_VALUE 40_0 COME_FROM 36 '36' 40_1 COME_FROM_FINALLY 20 '20' 40 LOAD_CONST None 42 STORE_FAST 'err' 44 DELETE_FAST 'err' 46 END_FINALLY 48 POP_EXCEPT 50 JUMP_FORWARD 54 'to 54' 52_0 COME_FROM 12 '12' 52 END_FINALLY 54_0 COME_FROM 50 '50' 54_1 COME_FROM 4 '4' Parse error at or near `POP_BLOCK' instruction at offset 32 ``` Output Decompyle3: ```python= Instruction context: L. 6 28 LOAD_GLOBAL x 30 ROT_FOUR -> 32 POP_BLOCK 34 POP_EXCEPT 36 CALL_FINALLY 40 'to 40' 38 RETURN_VALUE 40_0 COME_FROM 36 '36' 40_1 COME_FROM_FINALLY 20 '20' 40 LOAD_CONST None 42 STORE_FAST 'err' 44 DELETE_FAST 'err' 46 END_FINALLY 48 POP_EXCEPT 50 JUMP_FORWARD 54 'to 54' 52_0 COME_FROM 12 '12' 52 END_FINALLY 54_0 COME_FROM 50 '50' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/72 Source: [link](https://catsoop.mit.edu/cgit/catsoop.git/tree/catsoop/__QTYPES__/pythoncode/__SANDBOXES__/base.py?h=v2019.9.5&id=a7078f545ed996bccfadb5dd0094ed49e3e34b71#n221) Python version: 3.8 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: ```python= def safety_check(): try: pass except: return "SYNTAX ERROR" ``` #### Closest Solution: ```python= def safety_check(): tmp = None try: pass except: tmp = 'SYNTAX ERROR' else: x = x return tmp ``` ```c= 1 0 LOAD_CONST 0 (<code object safety_check at 0x40021eea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('safety_check') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (safety_check) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object safety_check at 0x40021eea80, file "main.py", line 1>: 2 0 LOAD_CONST 0 (None) 2 STORE_FAST 0 (tmp) 3 4 SETUP_FINALLY 4 (to 10) 4 6 POP_BLOCK 8 JUMP_FORWARD 16 (to 26) 5 >> 10 POP_TOP 12 POP_TOP 14 POP_TOP 6 16 LOAD_CONST 1 ('SYNTAX ERROR') 18 STORE_FAST 0 (tmp) 20 POP_EXCEPT 22 JUMP_FORWARD 6 (to 30) 24 END_FINALLY 8 >> 26 LOAD_FAST 1 (x) 28 STORE_FAST 1 (x) 9 >> 30 LOAD_FAST 0 (tmp) 32 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object safety_check at 0x40021ae920, file "main.py", line 1>) 2 LOAD_CONST 1 ('safety_check') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (safety_check) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object safety_check at 0x40021ae920, file "main.py", line 1>: 2 0 SETUP_FINALLY 4 (to 6) 3 2 POP_BLOCK 4 JUMP_FORWARD 14 (to 20) 4 >> 6 POP_TOP 8 POP_TOP 10 POP_TOP 5 12 POP_EXCEPT 14 LOAD_CONST 1 ('SYNTAX ERROR') 16 RETURN_VALUE 18 END_FINALLY >> 20 LOAD_CONST 0 (None) 22 RETURN_VALUE ``` Output uncompyle6: ```python= def safety_check--- This code section failed: --- L. 2 0 SETUP_FINALLY 6 'to 6' L. 3 2 POP_BLOCK 4 JUMP_FORWARD 20 'to 20' 6_0 COME_FROM_FINALLY 0 '0' L. 4 6 POP_TOP 8 POP_TOP 10 POP_TOP L. 5 12 POP_EXCEPT 14 LOAD_STR 'SYNTAX ERROR' 16 RETURN_VALUE 18 END_FINALLY 20_0 COME_FROM 4 '4' Parse error at or near `LOAD_STR' instruction at offset 14 ``` Output Decompyle3: ```python= Instruction context: L. 5 12 POP_EXCEPT -> 14 LOAD_STR 'SYNTAX ERROR' 16 RETURN_VALUE 18 END_FINALLY test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/73 Source: [link](https://svn.apache.org/repos/infra/infrastructure/trunk/projects/asfpy/asfpy/ldap.py) Python version: 3.8 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: ```python= def run_code(): try: return x except: err = 1 ``` #### Closest Solution: ```python= def run_code(): temp = None try: temp = x except: err = 1 else: z = z return temp ``` ```c= 1 0 LOAD_CONST 0 (<code object run_code at 0x400246ebe0, file "main.py", line 1>) 2 LOAD_CONST 1 ('run_code') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (run_code) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object run_code at 0x400246ebe0, file "main.py", line 1>: 2 0 LOAD_CONST 0 (None) 2 STORE_FAST 0 (temp) 3 4 SETUP_FINALLY 8 (to 14) 4 6 LOAD_GLOBAL 0 (x) 8 STORE_FAST 0 (temp) 10 POP_BLOCK 12 JUMP_FORWARD 16 (to 30) 5 >> 14 POP_TOP 16 POP_TOP 18 POP_TOP 6 20 LOAD_CONST 1 (1) 22 STORE_FAST 1 (err) 24 POP_EXCEPT 26 JUMP_FORWARD 6 (to 34) 28 END_FINALLY 8 >> 30 LOAD_FAST 2 (z) 32 STORE_FAST 2 (z) 9 >> 34 LOAD_FAST 0 (temp) 36 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object run_code at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('run_code') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (run_code) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object run_code at 0x400246eb30, file "main.py", line 1>: 2 0 SETUP_FINALLY 6 (to 8) 3 2 LOAD_GLOBAL 0 (x) 4 POP_BLOCK 6 RETURN_VALUE 4 >> 8 POP_TOP 10 POP_TOP 12 POP_TOP 5 14 LOAD_CONST 1 (1) 16 STORE_FAST 0 (err) 18 POP_EXCEPT 20 JUMP_FORWARD 2 (to 24) 22 END_FINALLY >> 24 LOAD_CONST 0 (None) 26 RETURN_VALUE ``` Output uncompyle6: ```python= def run_code--- This code section failed: --- L. 2 0 SETUP_FINALLY 8 'to 8' L. 3 2 LOAD_GLOBAL x 4 POP_BLOCK 6 RETURN_VALUE 8_0 COME_FROM_FINALLY 0 '0' L. 4 8 POP_TOP 10 POP_TOP 12 POP_TOP L. 5 14 LOAD_CONST 1 16 STORE_FAST 'err' 18 POP_EXCEPT 20 JUMP_FORWARD 24 'to 24' 22 END_FINALLY 24_0 COME_FROM 20 '20' Parse error at or near `STORE_FAST' instruction at offset 16 ``` Output Decompyle3: ```python= Instruction context: L. 5 14 LOAD_CONST 1 -> 16 STORE_FAST 'err' 18 POP_EXCEPT 20 JUMP_FORWARD 24 'to 24' 22 END_FINALLY test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/74 Source: [link](https://catsoop.mit.edu/cgit/catsoop.git/tree/catsoop/__QTYPES__/pythonic/pythonic.py?h=v2019.9.5&id=a7078f545ed996bccfadb5dd0094ed49e3e34b71#n60) Python version: 3.8 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: > NOTE: putting try/except instead of if conditional in except also causes the same error. ```python= def handle_submission(): try: pass except Exception as err: # try: # msg += mfunc(sub, soln) # except: # pass if msg == "": msg = INVALID_SUBMISSION_MSG return x ``` #### Closest Solution: ```python= def handle_submission(): temp = None try: pass except Exception as err: if msg == "": msg = INVALID_SUBMISSION_MSG temp = x else: z=z return temp ``` ```c= 1 0 LOAD_CONST 0 (<code object handle_submission at 0x400246ea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('handle_submission') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (handle_submission) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object handle_submission at 0x400246ea80, file "main.py", line 1>: 2 0 LOAD_CONST 0 (None) 2 STORE_FAST 0 (temp) 3 4 SETUP_FINALLY 4 (to 10) 4 6 POP_BLOCK 8 JUMP_FORWARD 50 (to 60) 5 >> 10 DUP_TOP 12 LOAD_GLOBAL 0 (Exception) 14 COMPARE_OP 10 (exception match) 16 POP_JUMP_IF_FALSE 58 18 POP_TOP 20 STORE_FAST 1 (err) 22 POP_TOP 24 SETUP_FINALLY 20 (to 46) 6 26 LOAD_FAST 2 (msg) 28 LOAD_CONST 1 ('') 30 COMPARE_OP 2 (==) 32 POP_JUMP_IF_FALSE 38 7 34 LOAD_GLOBAL 1 (INVALID_SUBMISSION_MSG) 36 STORE_FAST 2 (msg) 8 >> 38 LOAD_GLOBAL 2 (x) 40 STORE_FAST 0 (temp) 42 POP_BLOCK 44 BEGIN_FINALLY >> 46 LOAD_CONST 0 (None) 48 STORE_FAST 1 (err) 50 DELETE_FAST 1 (err) 52 END_FINALLY 54 POP_EXCEPT 56 JUMP_FORWARD 6 (to 64) >> 58 END_FINALLY 10 >> 60 LOAD_FAST 3 (z) 62 STORE_FAST 3 (z) 11 >> 64 LOAD_FAST 0 (temp) 66 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object handle_submission at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('handle_submission') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (handle_submission) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object handle_submission at 0x400246eb30, file "main.py", line 1>: 2 0 SETUP_FINALLY 4 (to 6) 3 2 POP_BLOCK 4 JUMP_FORWARD 54 (to 60) 4 >> 6 DUP_TOP 8 LOAD_GLOBAL 0 (Exception) 10 COMPARE_OP 10 (exception match) 12 POP_JUMP_IF_FALSE 58 14 POP_TOP 16 STORE_FAST 0 (err) 18 POP_TOP 20 SETUP_FINALLY 24 (to 46) 5 22 LOAD_FAST 1 (msg) 24 LOAD_CONST 1 ('') 26 COMPARE_OP 2 (==) 28 POP_JUMP_IF_FALSE 34 6 30 LOAD_GLOBAL 1 (INVALID_SUBMISSION_MSG) 32 STORE_FAST 1 (msg) 7 >> 34 LOAD_GLOBAL 2 (x) 36 ROT_FOUR 38 POP_BLOCK 40 POP_EXCEPT 42 CALL_FINALLY 2 (to 46) 44 RETURN_VALUE >> 46 LOAD_CONST 0 (None) 48 STORE_FAST 0 (err) 50 DELETE_FAST 0 (err) 52 END_FINALLY 54 POP_EXCEPT 56 JUMP_FORWARD 2 (to 60) >> 58 END_FINALLY >> 60 LOAD_CONST 0 (None) 62 RETURN_VALUE ``` Output uncompyle6: ```python= def handle_submission--- This code section failed: --- L. 2 0 SETUP_FINALLY 6 'to 6' L. 3 2 POP_BLOCK 4 JUMP_FORWARD 60 'to 60' 6_0 COME_FROM_FINALLY 0 '0' L. 4 6 DUP_TOP 8 LOAD_GLOBAL Exception 10 COMPARE_OP exception-match 12 POP_JUMP_IF_FALSE 58 'to 58' 14 POP_TOP 16 STORE_FAST 'err' 18 POP_TOP 20 SETUP_FINALLY 46 'to 46' L. 5 22 LOAD_FAST 'msg' 24 LOAD_STR '' 26 COMPARE_OP == 28 POP_JUMP_IF_FALSE 34 'to 34' L. 6 30 LOAD_GLOBAL INVALID_SUBMISSION_MSG 32 STORE_FAST 'msg' 34_0 COME_FROM 28 '28' L. 7 34 LOAD_GLOBAL x 36 ROT_FOUR 38 POP_BLOCK 40 POP_EXCEPT 42 CALL_FINALLY 46 'to 46' 44 RETURN_VALUE 46_0 COME_FROM 42 '42' 46_1 COME_FROM_FINALLY 20 '20' 46 LOAD_CONST None 48 STORE_FAST 'err' 50 DELETE_FAST 'err' 52 END_FINALLY 54 POP_EXCEPT 56 JUMP_FORWARD 60 'to 60' 58_0 COME_FROM 12 '12' 58 END_FINALLY 60_0 COME_FROM 56 '56' 60_1 COME_FROM 4 '4' Parse error at or near `POP_BLOCK' instruction at offset 38 ``` Output Decompyle3: ```python= Instruction context: L. 7 34 LOAD_GLOBAL x 36 ROT_FOUR -> 38 POP_BLOCK 40 POP_EXCEPT 42 CALL_FINALLY 46 'to 46' 44 RETURN_VALUE 46_0 COME_FROM 42 '42' 46_1 COME_FROM_FINALLY 20 '20' 46 LOAD_CONST None 48 STORE_FAST 'err' 50 DELETE_FAST 'err' 52 END_FINALLY 54 POP_EXCEPT 56 JUMP_FORWARD 60 'to 60' 58_0 COME_FROM 12 '12' 58 END_FINALLY 60_0 COME_FROM 56 '56' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/75 Source: [link](https://github.com/Russel88/CRISPRCasTyper/blob/3dc2915bd7154acba245d13aa1df6b6afbaed7f7/cctyper/controller.py#L101) Python version: 3.8 Decompyle3: Failed Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: ```python= def is_fasta(): try: with open(fasta, 'r') as handle: x = x return False except: pass ``` #### Closest Solution: ```python= def is_fasta(): temp = None try: with open(fasta, 'r') as handle: x = x temp = False except: pass else: z = z return temp ``` ```c= 1 0 LOAD_CONST 0 (<code object is_fasta at 0x400246ea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('is_fasta') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (is_fasta) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object is_fasta at 0x400246ea80, file "main.py", line 1>: 2 0 LOAD_CONST 0 (None) 2 STORE_FAST 0 (temp) 3 4 SETUP_FINALLY 34 (to 40) 4 6 LOAD_GLOBAL 0 (open) 8 LOAD_GLOBAL 1 (fasta) 10 LOAD_CONST 1 ('r') 12 CALL_FUNCTION 2 14 SETUP_WITH 14 (to 30) 16 STORE_FAST 1 (handle) 5 18 LOAD_FAST 2 (x) 20 STORE_FAST 2 (x) 6 22 LOAD_CONST 2 (False) 24 STORE_FAST 0 (temp) 26 POP_BLOCK 28 BEGIN_FINALLY >> 30 WITH_CLEANUP_START 32 WITH_CLEANUP_FINISH 34 END_FINALLY 36 POP_BLOCK 38 JUMP_FORWARD 12 (to 52) 7 >> 40 POP_TOP 42 POP_TOP 44 POP_TOP 8 46 POP_EXCEPT 48 JUMP_FORWARD 6 (to 56) 50 END_FINALLY 10 >> 52 LOAD_FAST 3 (z) 54 STORE_FAST 3 (z) 11 >> 56 LOAD_FAST 0 (temp) 58 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object is_fasta at 0x40021aeb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('is_fasta') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (is_fasta) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object is_fasta at 0x40021aeb30, file "main.py", line 1>: 2 0 SETUP_FINALLY 42 (to 44) 3 2 LOAD_GLOBAL 0 (open) 4 LOAD_GLOBAL 1 (fasta) 6 LOAD_CONST 1 ('r') 8 CALL_FUNCTION 2 10 SETUP_WITH 22 (to 34) 12 STORE_FAST 0 (handle) 4 14 LOAD_FAST 1 (x) 16 STORE_FAST 1 (x) 5 18 POP_BLOCK 20 BEGIN_FINALLY 22 WITH_CLEANUP_START 24 WITH_CLEANUP_FINISH 26 POP_FINALLY 0 28 POP_BLOCK 30 LOAD_CONST 2 (False) 32 RETURN_VALUE >> 34 WITH_CLEANUP_START 36 WITH_CLEANUP_FINISH 38 END_FINALLY 40 POP_BLOCK 42 JUMP_FORWARD 12 (to 56) 6 >> 44 POP_TOP 46 POP_TOP 48 POP_TOP 7 50 POP_EXCEPT 52 JUMP_FORWARD 2 (to 56) 54 END_FINALLY >> 56 LOAD_CONST 0 (None) 58 RETURN_VALUE ``` Output uncompyle6: ```python= def is_fasta--- This code section failed: --- L. 2 0 SETUP_FINALLY 44 'to 44' L. 3 2 LOAD_GLOBAL open 4 LOAD_GLOBAL fasta 6 LOAD_STR 'r' 8 CALL_FUNCTION_2 2 '' 10 SETUP_WITH 34 'to 34' 12 STORE_FAST 'handle' L. 4 14 LOAD_FAST 'x' 16 STORE_FAST 'x' L. 5 18 POP_BLOCK 20 BEGIN_FINALLY 22 WITH_CLEANUP_START 24 WITH_CLEANUP_FINISH 26 POP_FINALLY 0 '' 28 POP_BLOCK 30 LOAD_CONST False 32 RETURN_VALUE 34_0 COME_FROM_WITH 10 '10' 34 WITH_CLEANUP_START 36 WITH_CLEANUP_FINISH 38 END_FINALLY 40 POP_BLOCK 42 JUMP_FORWARD 56 'to 56' 44_0 COME_FROM_FINALLY 0 '0' L. 6 44 POP_TOP 46 POP_TOP 48 POP_TOP L. 7 50 POP_EXCEPT 52 JUMP_FORWARD 56 'to 56' 54 END_FINALLY 56_0 COME_FROM 52 '52' 56_1 COME_FROM 42 '42' Parse error at or near `WITH_CLEANUP_START' instruction at offset 22 ``` Output Decompyle3: ```python= Instruction context: L. 5 18 POP_BLOCK 20 BEGIN_FINALLY -> 22 WITH_CLEANUP_START 24 WITH_CLEANUP_FINISH 26 POP_FINALLY 0 '' 28 POP_BLOCK 30 LOAD_CONST False 32 RETURN_VALUE 34_0 COME_FROM_WITH 10 '10' 34 WITH_CLEANUP_START 36 WITH_CLEANUP_FINISH 38 END_FINALLY 40 POP_BLOCK 42 JUMP_FORWARD 56 'to 56' 44_0 COME_FROM_FINALLY 0 '0' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/76 - Duplicate Source: [link](https://github.com/Russel88/CRISPRCasTyper/blob/3dc2915bd7154acba245d13aa1df6b6afbaed7f7/cctyper/controller.py#L101) Same as 1/75 ## Error 1/77 - Duplicate Source: [link](https://github.com/Russel88/CRISPRCasTyper/blob/3dc2915bd7154acba245d13aa1df6b6afbaed7f7/cctyper/controller.py#L101) Same as 1/75 ## Error 1/78 - Duplicate Source: [link](https://github.com/Russel88/CRISPRCasTyper/blob/3dc2915bd7154acba245d13aa1df6b6afbaed7f7/cctyper/controller.py#L101) Same as 1/75 ## Error 1/79 - Duplicate Source: [link](https://github.com/Russel88/CRISPRCasTyper/blob/3dc2915bd7154acba245d13aa1df6b6afbaed7f7/cctyper/controller.py#L101) Same as 1/75 ## Error 1/80 - Duplicate Source: [link](https://github.com/Russel88/CRISPRCasTyper/blob/3dc2915bd7154acba245d13aa1df6b6afbaed7f7/cctyper/controller.py#L101) Same as 1/75 ## Error 1/81 - Duplicate Source: [link](https://github.com/Russel88/CRISPRCasTyper/blob/3dc2915bd7154acba245d13aa1df6b6afbaed7f7/cctyper/controller.py#L101) Same as 1/75 ## Error 1/82 - Duplicate Source: [link](https://github.com/Russel88/CRISPRCasTyper/blob/3dc2915bd7154acba245d13aa1df6b6afbaed7f7/cctyper/controller.py#L101) Same as 1/75