--- tags: decompiler --- # MWEs 1: 39-61 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/39 Source: [link](https://github.com/biosignalsplux/biosignalsnotebooks/blob/9d92e042cdc162a8c5fe844b282f641c48e8dccc/biosignalsnotebooks/biosignalsnotebooks/conversion.py#L33) Python version: 3.7 Decompyle3: Pass Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Fail | Pass | Pass | ### MWE: ```python= def raw_to_phy(): if sensor == "TEMP": pass elif sensor == "EDA": if option == "uS": pass else: x() else: pass ``` #### Closest Solution: ```python= def raw_to_phy(): if sensor == "TEMP": pass elif sensor == "EDA": if option == "uS": pass else: x() ``` ```c= 1 0 LOAD_CONST 0 (<code object raw_to_phy at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('raw_to_phy') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (raw_to_phy) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object raw_to_phy at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (sensor) 2 LOAD_CONST 1 ('TEMP') 4 COMPARE_OP 2 (==) 6 POP_JUMP_IF_FALSE 10 3 8 JUMP_FORWARD 24 (to 34) 4 >> 10 LOAD_GLOBAL 0 (sensor) 12 LOAD_CONST 2 ('EDA') 14 COMPARE_OP 2 (==) 16 POP_JUMP_IF_FALSE 34 5 18 LOAD_GLOBAL 1 (option) 20 LOAD_CONST 3 ('uS') 22 COMPARE_OP 2 (==) 24 POP_JUMP_IF_FALSE 28 6 26 JUMP_FORWARD 6 (to 34) 8 >> 28 LOAD_GLOBAL 2 (x) 30 CALL_FUNCTION 0 32 POP_TOP >> 34 LOAD_CONST 0 (None) 36 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object raw_to_phy at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('raw_to_phy') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (raw_to_phy) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object raw_to_phy at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (sensor) 2 LOAD_CONST 1 ('TEMP') 4 COMPARE_OP 2 (==) 6 POP_JUMP_IF_FALSE 10 3 8 JUMP_FORWARD 26 (to 36) 4 >> 10 LOAD_GLOBAL 0 (sensor) 12 LOAD_CONST 2 ('EDA') 14 COMPARE_OP 2 (==) 16 POP_JUMP_IF_FALSE 36 5 18 LOAD_GLOBAL 1 (option) 20 LOAD_CONST 3 ('uS') 22 COMPARE_OP 2 (==) 24 POP_JUMP_IF_FALSE 28 6 26 JUMP_ABSOLUTE 36 8 >> 28 LOAD_GLOBAL 2 (x) 30 CALL_FUNCTION 0 32 POP_TOP 34 JUMP_FORWARD 0 (to 36) 10 >> 36 LOAD_CONST 0 (None) 38 RETURN_VALUE ``` Output uncompyle6: ```python= def raw_to_phy--- This code section failed: --- L. 2 0 LOAD_GLOBAL sensor 2 LOAD_STR 'TEMP' 4 COMPARE_OP == 6 POP_JUMP_IF_FALSE 10 'to 10' L. 3 8 JUMP_FORWARD 36 'to 36' 10_0 COME_FROM 6 '6' L. 4 10 LOAD_GLOBAL sensor 12 LOAD_STR 'EDA' 14 COMPARE_OP == 16 POP_JUMP_IF_FALSE 36 'to 36' L. 5 18 LOAD_GLOBAL option 20 LOAD_STR 'uS' 22 COMPARE_OP == 24 POP_JUMP_IF_FALSE 28 'to 28' L. 6 26 JUMP_ABSOLUTE 36 'to 36' 28_0 COME_FROM 24 '24' L. 8 28 LOAD_GLOBAL x 30 CALL_FUNCTION_0 0 '0 positional arguments' 32 POP_TOP 34 JUMP_FORWARD 36 'to 36' 36_0 COME_FROM 34 '34' 36_1 COME_FROM 16 '16' 36_2 COME_FROM 8 '8' Parse error at or near `COME_FROM' instruction at offset 36_1 ``` Output Decompyle3: ```python= def raw_to_phy(): if sensor == 'TEMP': pass elif sensor == 'EDA': if option == 'uS': pass else: x() else: pass ``` ## Error 1/40 Source: [link](https://github.com/biosignalsplux/biosignalsnotebooks/blob/9d92e042cdc162a8c5fe844b282f641c48e8dccc/biosignalsnotebooks/biosignalsnotebooks/load.py#L768) Python version: 3.7 Decompyle3: Pass Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Fail | Pass | Pass | ### MWE: ```python= def _check_shape_and_type(): if a: if sum(isinstance(i, list) for i in channels): pass else: x = x + 1 else: pass ``` #### Closest Solution: ```python= def _check_shape_and_type(): if a: if sum(isinstance(i, list) for i in channels): pass else: x = x + 1 if not a: pass ``` ```c= 1 0 LOAD_CONST 0 (<code object _check_shape_and_type at 0x40022eef60, file "main.py", line 1>) 2 LOAD_CONST 1 ('_check_shape_and_type') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_check_shape_and_type) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _check_shape_and_type at 0x40022eef60, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 POP_JUMP_IF_FALSE 32 3 4 LOAD_GLOBAL 1 (sum) 6 LOAD_CONST 1 (<code object <genexpr> at 0x40022eee40, file "main.py", line 3>) 8 LOAD_CONST 2 ('_check_shape_and_type.<locals>.<genexpr>') 10 MAKE_FUNCTION 0 12 LOAD_GLOBAL 2 (channels) 14 GET_ITER 16 CALL_FUNCTION 1 18 CALL_FUNCTION 1 20 POP_JUMP_IF_FALSE 24 4 22 JUMP_FORWARD 8 (to 32) 6 >> 24 LOAD_FAST 0 (x) 26 LOAD_CONST 3 (1) 28 BINARY_ADD 30 STORE_FAST 0 (x) 7 >> 32 LOAD_GLOBAL 0 (a) 34 POP_JUMP_IF_TRUE 36 8 >> 36 LOAD_CONST 0 (None) 38 RETURN_VALUE Disassembly of <code object <genexpr> at 0x40022eee40, file "main.py", line 3>: 3 0 LOAD_FAST 0 (.0) >> 2 FOR_ITER 16 (to 20) 4 STORE_FAST 1 (i) 6 LOAD_GLOBAL 0 (isinstance) 8 LOAD_FAST 1 (i) 10 LOAD_GLOBAL 1 (list) 12 CALL_FUNCTION 2 14 YIELD_VALUE 16 POP_TOP 18 JUMP_ABSOLUTE 2 >> 20 LOAD_CONST 0 (None) 22 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _check_shape_and_type at 0x40022eef60, file "main.py", line 1>) 2 LOAD_CONST 1 ('_check_shape_and_type') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_check_shape_and_type) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _check_shape_and_type at 0x40022eef60, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 POP_JUMP_IF_FALSE 34 3 4 LOAD_GLOBAL 1 (sum) 6 LOAD_CONST 1 (<code object <genexpr> at 0x40022eee40, file "main.py", line 3>) 8 LOAD_CONST 2 ('_check_shape_and_type.<locals>.<genexpr>') 10 MAKE_FUNCTION 0 12 LOAD_GLOBAL 2 (channels) 14 GET_ITER 16 CALL_FUNCTION 1 18 CALL_FUNCTION 1 20 POP_JUMP_IF_FALSE 24 4 22 JUMP_ABSOLUTE 34 6 >> 24 LOAD_FAST 0 (x) 26 LOAD_CONST 3 (1) 28 BINARY_ADD 30 STORE_FAST 0 (x) 32 JUMP_FORWARD 0 (to 34) 8 >> 34 LOAD_CONST 0 (None) 36 RETURN_VALUE Disassembly of <code object <genexpr> at 0x40022eee40, file "main.py", line 3>: 3 0 LOAD_FAST 0 (.0) >> 2 FOR_ITER 16 (to 20) 4 STORE_FAST 1 (i) 6 LOAD_GLOBAL 0 (isinstance) 8 LOAD_FAST 1 (i) 10 LOAD_GLOBAL 1 (list) 12 CALL_FUNCTION 2 14 YIELD_VALUE 16 POP_TOP 18 JUMP_ABSOLUTE 2 >> 20 LOAD_CONST 0 (None) 22 RETURN_VALUE ``` Output uncompyle6: ```python= def _check_shape_and_type--- This code section failed: --- L. 2 0 LOAD_GLOBAL a 2 POP_JUMP_IF_FALSE 34 'to 34' L. 3 4 LOAD_GLOBAL sum 6 LOAD_GENEXPR '<code_object <genexpr>>' 8 LOAD_STR '_check_shape_and_type.<locals>.<genexpr>' 10 MAKE_FUNCTION_0 'Neither defaults, keyword-only args, annotations, nor closures' 12 LOAD_GLOBAL channels 14 GET_ITER 16 CALL_FUNCTION_1 1 '1 positional argument' 18 CALL_FUNCTION_1 1 '1 positional argument' 20 POP_JUMP_IF_FALSE 24 'to 24' L. 4 22 JUMP_ABSOLUTE 34 'to 34' 24_0 COME_FROM 20 '20' L. 6 24 LOAD_FAST 'x' 26 LOAD_CONST 1 28 BINARY_ADD 30 STORE_FAST 'x' 32 JUMP_FORWARD 34 'to 34' 34_0 COME_FROM 32 '32' 34_1 COME_FROM 2 '2' Parse error at or near `COME_FROM' instruction at offset 34_0 ``` Output Decompyle3: ```python= def _check_shape_and_type(): if a: if sum((isinstance(i, list) for i in channels)): pass else: x = x + 1 else: pass ``` ## Error 1/41 - Py 2.5 Source: [link](https://pypi.org/project/birdsuite/#files) Python version: 2.5 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Pass | Pass | Pass | ### MWE: > NOTE: Ignoging this since it fails in python 2.5. This file passes for all other python versions (atleast the relevant ones) ```python= def doIt(strCNSummaries, strCNClusters, bExpectHeader=False, dctExclusions=None, lstSampleIndices=None): try: infile = open(strCNSummaries,'r') except IOError: # print 'Can\'t open file for reading.' sys.exit(0) if lstSampleIndices is None: lstSampleIndices = [] try: outfile = open(strCNClusters,'w') except IOError: # print 'Can\'t open file for writing.' infile.close() sys.exit(0) if bExpectHeader: # skip header for strLine in infile: if strLine.startswith("probeset_id"): break for line in infile: values = line.split() strProbe = values[0] if(len(lstSampleIndices)==0 or (values[1]!="X" and values[1]!="23" and values[1]!="Y" and values[1]!="24")): values2 = values[4:] if dctExclusions is not None: if strProbe in dctExclusions: lstExclusions = dctExclusions[strProbe] if len(lstExclusions) < len(values2): # Don't exclude any if all would be excluded. # Iterate backward so as to not get indices confused. for i in xrange(len(lstExclusions) - 1, -1, -1): del values2[lstExclusions[i]] else: # If no non-excluded samples, make 0, 1 and 2 clusters identical # pwrint >> outfile, strProbe + ";1 1;1 1;1 1" continue else: values2 = [] for i in lstSampleIndices: values2.append(values[i+4]) for i in range(len(values2)): values2[i] = float(values2[i]) values2.sort() mean2 = trimmean(values2) if len(values2) >= iMIN_SAMPLES2: var2 = robustvar(values2) elif len(values2) >= iMIN_SAMPLES1: var2 = var(values2) else: var2 = math.pow(31+0.075*mean2, 2) if(values[1]=="Y" or values[1]=="24"): mean1 = mean2 var1 = var2 mean2 = (mean1 - 41.5529)/0.646 var2 = var1 / 0.9 mean0 = mean1 - (0.354*mean2 - 41.5529)/0.75 var0 = var1 * 0.9 else: mean1 = mean2 - (0.354*mean2 - 41.5529) mean0 = mean1 - (0.354*mean2 - 41.5529)/0.75 var1 = var2 * 0.9 var0 = var1 * 0.9 outfile.write(strProbe+";"+str(mean0)+" "+str(var0)+";"+str(mean1)+" "+str(var1)+";"+str(mean2)+" "+str(var2)+"\n") infile.close() outfile.close() ``` ## Error 1/42 - Py 2.5 (duplicate) Source: [link](https://pypi.org/project/birdsuite_internal_tools/#files) Python version: 2.5 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Pass | Pass | Pass | ### MWE: Same as previous one ## Error 1/43 - Py 2.6 Source: [link](https://github.com/afgane/bioblend/blob/d8925715a5a24b738c605eb63f58260479e55700/bioblend/cloudman/launch.py#L194) Python version: 2.6 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Pass | Pass | Pass | ### MWE: > NOTE: Ignoging this since it fails in python 2.6. This file passes for all other python versions (atleast the relevant ones) ```python= def rule_exists(self, rules, from_port, to_port, ip_protocol='tcp', cidr_ip='0.0.0.0/0'): for rule in rules: if rule.ip_protocol == ip_protocol and rule.from_port == from_port and \ rule.to_port == to_port and cidr_ip in [ip.cidr_ip for ip in rule.grants]: return True return False ``` ## Error 1/44 Source: [link](https://github.com/tulir/mautrix-python/blob/master/mautrix/client/api/modules/media_repository.py) Python version: 3.6 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` MWE1: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Fail | Unsupported | MWE2: | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Fail | Unsupported | ### MWE: #### MWE1: ```python= async def download_media(): async with get() as x: return await x ``` ##### Closest Solution1: ```python= async def download_media(): async with get() as x: temp = await x return temp ``` ```c= 1 0 LOAD_CONST 0 (<code object download_media at 0x4002284810, file "main.py", line 1>) 2 LOAD_CONST 1 ('download_media') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (download_media) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of download_media: 2 0 LOAD_GLOBAL 0 (get) 2 CALL_FUNCTION 0 4 BEFORE_ASYNC_WITH 6 GET_AWAITABLE 8 LOAD_CONST 0 (None) 10 YIELD_FROM 12 SETUP_ASYNC_WITH 16 (to 30) 14 STORE_FAST 0 (x) 3 16 LOAD_FAST 0 (x) 18 GET_AWAITABLE 20 LOAD_CONST 0 (None) 22 YIELD_FROM 24 STORE_FAST 1 (temp) 26 POP_BLOCK 28 LOAD_CONST 0 (None) >> 30 WITH_CLEANUP_START 32 GET_AWAITABLE 34 LOAD_CONST 0 (None) 36 YIELD_FROM 38 WITH_CLEANUP_FINISH 40 END_FINALLY 4 42 LOAD_FAST 1 (temp) 44 RETURN_VALUE ``` ##### MWE1 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object download_media at 0x4002216c90, file "main.py", line 1>) 2 LOAD_CONST 1 ('download_media') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (download_media) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of download_media: 2 0 LOAD_GLOBAL 0 (get) 2 CALL_FUNCTION 0 4 BEFORE_ASYNC_WITH 6 GET_AWAITABLE 8 LOAD_CONST 0 (None) 10 YIELD_FROM 12 SETUP_ASYNC_WITH 12 (to 26) 14 STORE_FAST 0 (x) 3 16 LOAD_FAST 0 (x) 18 GET_AWAITABLE 20 LOAD_CONST 0 (None) 22 YIELD_FROM 24 RETURN_VALUE >> 26 WITH_CLEANUP_START 28 GET_AWAITABLE 30 LOAD_CONST 0 (None) 32 YIELD_FROM 34 WITH_CLEANUP_FINISH 36 END_FINALLY 38 LOAD_CONST 0 (None) 40 RETURN_VALUE ``` Output uncompyle6: ```python= async def download_media--- This code section failed: --- L. 2 0 LOAD_GLOBAL get 2 CALL_FUNCTION_0 0 '0 positional arguments' 4 BEFORE_ASYNC_WITH 6 GET_AWAITABLE 8 LOAD_CONST None 10 YIELD_FROM 12 SETUP_ASYNC_WITH 26 'to 26' 14 STORE_FAST 'x' L. 3 16 LOAD_FAST 'x' 18 GET_AWAITABLE 20 LOAD_CONST None 22 YIELD_FROM 24 RETURN_VALUE 26_0 COME_FROM_ASYNC_WITH 12 '12' 26 WITH_CLEANUP_START 28 GET_AWAITABLE 30 LOAD_CONST None 32 YIELD_FROM 34 WITH_CLEANUP_FINISH 36 END_FINALLY Parse error at or near `COME_FROM_ASYNC_WITH' instruction at offset 26_0 ``` Output Decompyle3: ```python= Error: decompyle3 requires Python 3.7-3.8 ``` #### MWE2: ```python= async def download_thumbnail(): async with getUrl() as response: return await response() ``` ##### Closest Solution2: ```python= async def download_thumbnail(): temp = None async with getUrl() as response: temp = await response() return temp ``` ```c= 1 0 LOAD_CONST 0 (<code object download_thumbnail at 0x4002216c90, file "main.py", line 1>) 2 LOAD_CONST 1 ('download_thumbnail') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (download_thumbnail) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of download_thumbnail: 2 0 LOAD_CONST 0 (None) 2 STORE_FAST 0 (temp) 3 4 LOAD_GLOBAL 0 (getUrl) 6 CALL_FUNCTION 0 8 BEFORE_ASYNC_WITH 10 GET_AWAITABLE 12 LOAD_CONST 0 (None) 14 YIELD_FROM 16 SETUP_ASYNC_WITH 18 (to 36) 18 STORE_FAST 1 (response) 4 20 LOAD_FAST 1 (response) 22 CALL_FUNCTION 0 24 GET_AWAITABLE 26 LOAD_CONST 0 (None) 28 YIELD_FROM 30 STORE_FAST 0 (temp) 32 POP_BLOCK 34 LOAD_CONST 0 (None) >> 36 WITH_CLEANUP_START 38 GET_AWAITABLE 40 LOAD_CONST 0 (None) 42 YIELD_FROM 44 WITH_CLEANUP_FINISH 46 END_FINALLY 5 48 LOAD_FAST 0 (temp) 50 RETURN_VALUE ``` ##### MWE2 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object download_thumbnail at 0x4002216c90, file "main.py", line 1>) 2 LOAD_CONST 1 ('download_thumbnail') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (download_thumbnail) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of download_thumbnail: 2 0 LOAD_GLOBAL 0 (getUrl) 2 CALL_FUNCTION 0 4 BEFORE_ASYNC_WITH 6 GET_AWAITABLE 8 LOAD_CONST 0 (None) 10 YIELD_FROM 12 SETUP_ASYNC_WITH 14 (to 28) 14 STORE_FAST 0 (response) 3 16 LOAD_FAST 0 (response) 18 CALL_FUNCTION 0 20 GET_AWAITABLE 22 LOAD_CONST 0 (None) 24 YIELD_FROM 26 RETURN_VALUE >> 28 WITH_CLEANUP_START 30 GET_AWAITABLE 32 LOAD_CONST 0 (None) 34 YIELD_FROM 36 WITH_CLEANUP_FINISH 38 END_FINALLY 40 LOAD_CONST 0 (None) 42 RETURN_VALUE ``` Output uncompyle6: ```python= async def download_thumbnail--- This code section failed: --- L. 2 0 LOAD_GLOBAL getUrl 2 CALL_FUNCTION_0 0 '0 positional arguments' 4 BEFORE_ASYNC_WITH 6 GET_AWAITABLE 8 LOAD_CONST None 10 YIELD_FROM 12 SETUP_ASYNC_WITH 28 'to 28' 14 STORE_FAST 'response' L. 3 16 LOAD_FAST 'response' 18 CALL_FUNCTION_0 0 '0 positional arguments' 20 GET_AWAITABLE 22 LOAD_CONST None 24 YIELD_FROM 26 RETURN_VALUE 28_0 COME_FROM_ASYNC_WITH 12 '12' 28 WITH_CLEANUP_START 30 GET_AWAITABLE 32 LOAD_CONST None 34 YIELD_FROM 36 WITH_CLEANUP_FINISH 38 END_FINALLY Parse error at or near `COME_FROM_ASYNC_WITH' instruction at offset 28_0 ``` Output Decompyle3: ```python= Error: decompyle3 requires Python 3.7-3.8 ``` ## Error 1/45 Source: [link](https://github.com/tulir/mautrix-python/blob/5f37e391c671996ca28d1bdc1e861a4c7bd9f8b4/mautrix/client/api/types/util/serializable_attrs.py#L139) Python version: 3.6 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Fail | Fail | Pass | ### MWE: ```python= def _deserialize(): if cond2: return { x(z): x(item) for item in value} item_cls= args return {x(item_cls) for item in value} ``` #### Closest Solution: ```python= def _deserialize(): if cond2: return { x(z): x(item) for item in value} # item_cls= args return {x(args) for item in value} ``` ```c= 1 0 LOAD_CONST 0 (<code object _deserialize at 0x40022846f0, file "main.py", line 1>) 2 LOAD_CONST 1 ('_deserialize') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_deserialize) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of _deserialize: 2 0 LOAD_GLOBAL 0 (cond2) 2 POP_JUMP_IF_FALSE 18 3 4 LOAD_CONST 1 (<code object <dictcomp> at 0x4002216c90, file "main.py", line 3>) 6 LOAD_CONST 2 ('_deserialize.<locals>.<dictcomp>') 8 MAKE_FUNCTION 0 10 LOAD_GLOBAL 1 (value) 12 GET_ITER 14 CALL_FUNCTION 1 16 RETURN_VALUE 5 >> 18 LOAD_CONST 3 (<code object <setcomp> at 0x4002284810, file "main.py", line 5>) 20 LOAD_CONST 4 ('_deserialize.<locals>.<setcomp>') 22 MAKE_FUNCTION 0 24 LOAD_GLOBAL 1 (value) 26 GET_ITER 28 CALL_FUNCTION 1 30 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _deserialize at 0x40022846f0, file "main.py", line 1>) 2 LOAD_CONST 1 ('_deserialize') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_deserialize) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of _deserialize: 2 0 LOAD_GLOBAL 0 (cond2) 2 POP_JUMP_IF_FALSE 18 3 4 LOAD_CONST 1 (<code object <dictcomp> at 0x4002216c90, file "main.py", line 3>) 6 LOAD_CONST 2 ('_deserialize.<locals>.<dictcomp>') 8 MAKE_FUNCTION 0 10 LOAD_GLOBAL 1 (value) 12 GET_ITER 14 CALL_FUNCTION 1 16 RETURN_VALUE 4 >> 18 LOAD_GLOBAL 2 (args) 20 STORE_DEREF 0 (item_cls) 5 22 LOAD_CLOSURE 0 (item_cls) 24 BUILD_TUPLE 1 26 LOAD_CONST 3 (<code object <setcomp> at 0x4002284810, file "main.py", line 5>) 28 LOAD_CONST 4 ('_deserialize.<locals>.<setcomp>') 30 MAKE_FUNCTION 8 32 LOAD_GLOBAL 1 (value) 34 GET_ITER 36 CALL_FUNCTION 1 38 RETURN_VALUE ``` Output uncompyle6: ```python= def _deserialize--- This code section failed: --- L. 2 0 LOAD_GLOBAL cond2 2 POP_JUMP_IF_FALSE 18 'to 18' L. 3 4 LOAD_DICTCOMP '<code_object <dictcomp>>' 6 LOAD_STR '_deserialize.<locals>.<dictcomp>' 8 MAKE_FUNCTION_0 'Neither defaults, keyword-only args, annotations, nor closures' 10 LOAD_GLOBAL value 12 GET_ITER 14 CALL_FUNCTION_1 1 '1 positional argument' 16 RETURN_END_IF 18_0 COME_FROM 2 '2' L. 4 18 LOAD_GLOBAL args 20 STORE_DEREF 'item_cls' L. 5 22 LOAD_CLOSURE 'item_cls' 24 BUILD_TUPLE_1 1 26 LOAD_SETCOMP '<code_object <setcomp>>' 28 LOAD_STR '_deserialize.<locals>.<setcomp>' 30 MAKE_FUNCTION_8 'closure' 32 LOAD_GLOBAL value 34 GET_ITER 36 CALL_FUNCTION_1 1 '1 positional argument' 38 RETURN_VALUE -1 RETURN_LAST Parse error at or near `LOAD_SETCOMP' instruction at offset 26 ``` Output Decompyle3: ```python= Error: decompyle3 requires Python 3.7-3.8 ``` ## Error 1/46 Source: [link](https://github.com/pycopia/botfly/blob/master/botfly/debugger.py) Python version: 3.7 Decompyle3: Failed 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 | ### MWE: #### MWE1: ```python= def checkline(): if a or b or c or d: return 0 return ``` ##### Closest Solution1: ```python= def checkline(): tmp = a or b if tmp or c or d: return 0 return ``` ```c= 1 0 LOAD_CONST 0 (<code object checkline at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('checkline') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (checkline) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object checkline at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 JUMP_IF_TRUE_OR_POP 6 4 LOAD_GLOBAL 1 (b) >> 6 STORE_FAST 0 (tmp) 3 8 LOAD_FAST 0 (tmp) 10 POP_JUMP_IF_TRUE 20 12 LOAD_GLOBAL 2 (c) 14 POP_JUMP_IF_TRUE 20 16 LOAD_GLOBAL 3 (d) 18 POP_JUMP_IF_FALSE 24 4 >> 20 LOAD_CONST 1 (0) 22 RETURN_VALUE 5 >> 24 LOAD_CONST 0 (None) 26 RETURN_VALUE ``` ##### MWE1 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object checkline at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('checkline') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (checkline) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object checkline at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 POP_JUMP_IF_TRUE 16 4 LOAD_GLOBAL 1 (b) 6 POP_JUMP_IF_TRUE 16 8 LOAD_GLOBAL 2 (c) 10 POP_JUMP_IF_TRUE 16 12 LOAD_GLOBAL 3 (d) 14 POP_JUMP_IF_FALSE 20 3 >> 16 LOAD_CONST 1 (0) 18 RETURN_VALUE 4 >> 20 LOAD_CONST 0 (None) 22 RETURN_VALUE ``` Output uncompyle6: ```python= def checkline--- This code section failed: --- L. 2 0 LOAD_GLOBAL a 2 POP_JUMP_IF_TRUE 16 'to 16' 4 LOAD_GLOBAL b 6 POP_JUMP_IF_TRUE 16 'to 16' 8 LOAD_GLOBAL c 10 POP_JUMP_IF_TRUE 16 'to 16' 12 LOAD_GLOBAL d 14 POP_JUMP_IF_FALSE 20 'to 20' 16_0 COME_FROM 10 '10' 16_1 COME_FROM 6 '6' 16_2 COME_FROM 2 '2' L. 3 16 LOAD_CONST 0 18 RETURN_VALUE 20_0 COME_FROM 14 '14' Parse error at or near `RETURN_VALUE' instruction at offset 18 ``` Output Decompyle3: ```python= def checkline(): if a or (b or c or d): return 0 ``` #### MWE2: ```python= def user_exception(): f = exc_type prefix = 'Internal ' if (not a and b) else '' ``` ##### Closest Solution2: ```python= def user_exception(): f = exc_type temp = not a and b prefix = 'Internal ' if (temp) else '' ``` ```c= 1 0 LOAD_CONST 0 (<code object user_exception at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('user_exception') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (user_exception) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object user_exception at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (exc_type) 2 STORE_FAST 0 (f) 3 4 LOAD_GLOBAL 1 (a) 6 UNARY_NOT 8 JUMP_IF_FALSE_OR_POP 12 10 LOAD_GLOBAL 2 (b) >> 12 STORE_FAST 1 (temp) 4 14 LOAD_FAST 1 (temp) 16 POP_JUMP_IF_FALSE 22 18 LOAD_CONST 1 ('Internal ') 20 JUMP_FORWARD 2 (to 24) >> 22 LOAD_CONST 2 ('') >> 24 STORE_FAST 2 (prefix) 26 LOAD_CONST 0 (None) 28 RETURN_VALUE ``` ##### MWE2 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object user_exception at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('user_exception') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (user_exception) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object user_exception at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (exc_type) 2 STORE_FAST 0 (f) 3 4 LOAD_GLOBAL 1 (a) 6 POP_JUMP_IF_TRUE 16 8 LOAD_GLOBAL 2 (b) 10 POP_JUMP_IF_FALSE 16 12 LOAD_CONST 1 ('Internal ') 14 JUMP_FORWARD 2 (to 18) >> 16 LOAD_CONST 2 ('') >> 18 STORE_FAST 1 (prefix) 20 LOAD_CONST 0 (None) 22 RETURN_VALUE ``` Output uncompyle6: ```python= def user_exception--- This code section failed: --- L. 2 0 LOAD_GLOBAL exc_type 2 STORE_FAST 'f' L. 3 4 LOAD_GLOBAL a 6 POP_JUMP_IF_TRUE 16 'to 16' 8 LOAD_GLOBAL b 10 POP_JUMP_IF_FALSE 16 'to 16' 12 LOAD_STR 'Internal ' 14 JUMP_FORWARD 18 'to 18' 16_0 COME_FROM 10 '10' 16_1 COME_FROM 6 '6' 16 LOAD_STR '' 18_0 COME_FROM 14 '14' 18 STORE_FAST 'prefix' Parse error at or near `COME_FROM' instruction at offset 16_1 ``` Output Decompyle3: ```python= Instruction context: L. 3 4 LOAD_GLOBAL a 6 POP_JUMP_IF_TRUE 16 'to 16' 8 LOAD_GLOBAL b 10 POP_JUMP_IF_FALSE 16 'to 16' 12 LOAD_STR 'Internal ' 14 JUMP_FORWARD 18 'to 18' 16_0 COME_FROM 10 '10' 16_1 COME_FROM 6 '6' 16 LOAD_STR '' -> 18_0 COME_FROM 14 '14' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/47 - Py 2.6 - Recreate for Py 3.7 Source: [link](https://svn.apache.org/repos/infra/infrastructure/trunk/projects/asfpy/asfpy/ldap.py) Python version: 2.6 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Fail | Pass | Pass | ### MWE: > NOTE: Listing MWE for python3.7 version only which is interesting since it targets the same offset. #### MWE for python 3.7: ```python= def update(): if a: if b: for elem in iterable: pass else: x = x + 1 else: pass ``` #### Closest solution: ```python= def update(): if a: if b: for elem in iterable: pass else: x = x + 1 ``` ```c= 1 0 LOAD_CONST 0 (<code object update at 0x40022aee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('update') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (update) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object update at 0x40022aee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 POP_JUMP_IF_FALSE 32 3 4 LOAD_GLOBAL 1 (b) 6 POP_JUMP_IF_FALSE 24 4 8 SETUP_LOOP 22 (to 32) 10 LOAD_GLOBAL 2 (iterable) 12 GET_ITER >> 14 FOR_ITER 4 (to 20) 16 STORE_FAST 0 (elem) 5 18 JUMP_ABSOLUTE 14 >> 20 POP_BLOCK 22 JUMP_FORWARD 8 (to 32) 7 >> 24 LOAD_FAST 1 (x) 26 LOAD_CONST 1 (1) 28 BINARY_ADD 30 STORE_FAST 1 (x) >> 32 LOAD_CONST 0 (None) 34 RETURN_VALUE ``` #### MWE python3.7 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object update at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('update') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (update) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object update at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 POP_JUMP_IF_FALSE 34 3 4 LOAD_GLOBAL 1 (b) 6 POP_JUMP_IF_FALSE 24 4 8 SETUP_LOOP 22 (to 32) 10 LOAD_GLOBAL 2 (iterable) 12 GET_ITER >> 14 FOR_ITER 4 (to 20) 16 STORE_FAST 0 (elem) 5 18 JUMP_ABSOLUTE 14 >> 20 POP_BLOCK 22 JUMP_ABSOLUTE 34 7 >> 24 LOAD_FAST 1 (x) 26 LOAD_CONST 1 (1) 28 BINARY_ADD 30 STORE_FAST 1 (x) >> 32 JUMP_FORWARD 0 (to 34) 9 >> 34 LOAD_CONST 0 (None) 36 RETURN_VALUE ``` Output uncompyle6: ```python= def update--- This code section failed: --- L. 2 0 LOAD_GLOBAL a 2 POP_JUMP_IF_FALSE 34 'to 34' L. 3 4 LOAD_GLOBAL b 6 POP_JUMP_IF_FALSE 24 'to 24' L. 4 8 SETUP_LOOP 32 'to 32' 10 LOAD_GLOBAL iterable 12 GET_ITER 14 FOR_ITER 20 'to 20' 16 STORE_FAST 'elem' L. 5 18 JUMP_BACK 14 'to 14' 20 POP_BLOCK 22 JUMP_ABSOLUTE 34 'to 34' 24_0 COME_FROM 6 '6' L. 7 24 LOAD_FAST 'x' 26 LOAD_CONST 1 28 BINARY_ADD 30 STORE_FAST 'x' 32_0 COME_FROM_LOOP 8 '8' 32 JUMP_FORWARD 34 'to 34' 34_0 COME_FROM 32 '32' 34_1 COME_FROM 2 '2' Parse error at or near `COME_FROM_LOOP' instruction at offset 32_0 ``` Output Decompyle3: ```python= def update(): if a: if b: for elem in iterable: pass else: x = x + 1 else: pass ``` #### Original Code ```python= def update(self, iterable=None, **kwds): '''Like dict.update() but add counts instead of replacing them. Source can be an iterable, a dictionary, or another Counter instance. >>> c = Counter('which') >>> c.update('witch') # add elements from another iterable >>> d = Counter('watch') >>> c.update(d) # add elements from another counter >>> c['h'] # four 'h' in which, witch, and watch 4 ''' if iterable is not None: if hasattr(iterable, 'iteritems'): if self: self_get = self.get for elem, count in iterable.iteritems(): self[elem] = self_get(elem, 0) + count else: dict.update(self, iterable) # fast path when counter is empty else: self_get = self.get for elem in iterable: self[elem] = self_get(elem, 0) + 1 if kwds: self.update(kwds) ``` ## Error 1/48 - Py 3.4 Source: [link](https://github.com/boto/boto/blob/b2a6f08122b2f1b89888d2848e730893595cd001/boto/ec2/cloudwatch/__init__.py#L138) Python version: 3.4 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Pass | Pass | Pass | ### MWE: > NOTE: Ignoring this since it fails in python 3.4. This file passes for all other python versions (atleast the relevant ones) ```python= length = max(map(lambda a: len(a) if isinstance(a, list) else 1, args)) ``` ## Error 1/49 - Py 3.4 Source: [link](https://github.com/boto/boto/blob/b2a6f08122b2f1b89888d2848e730893595cd001/boto/gs/acl.py#L286) Python version: 3.4 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Pass | Pass | Pass | ### MWE: > NOTE: Ignoring this since it fails in python 3.4. This file passes for all other python versions (atleast the relevant ones) ```python= def to_xml(self): s = '<%s type="%s">' % (SCOPE, self.type) if (self.type.lower() == ALL_AUTHENTICATED_USERS.lower() or self.type.lower() == ALL_USERS.lower()): pass elif self.type.lower() == GROUP_BY_DOMAIN.lower(): s += '<%s>%s</%s>' % (DOMAIN, self.domain, DOMAIN) elif (self.type.lower() == GROUP_BY_EMAIL.lower() or self.type.lower() == USER_BY_EMAIL.lower()): s += '<%s>%s</%s>' % (EMAIL_ADDRESS, self.email_address, EMAIL_ADDRESS) if self.name: s += '<%s>%s</%s>' % (NAME, self.name, NAME) elif (self.type.lower() == GROUP_BY_ID.lower() or self.type.lower() == USER_BY_ID.lower()): s += '<%s>%s</%s>' % (ID, self.id, ID) if self.name: s += '<%s>%s</%s>' % (NAME, self.name, NAME) else: raise InvalidAclError('Invalid scope type "%s" ', self.type) s += '</%s>' % SCOPE return s ``` ## Error 1/50 - Py 3.4 - Recreate for Py 3.8 Source: [link](https://github.com/boto/boto/blob/b2a6f08122b2f1b89888d2848e730893595cd001/boto/mashups/iobject.py#L32) Python version: 3.4 Decompyle3: Unsupported Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: > NOTE: Listing MWE for python3.8 version only which is interesting since it targets the same offset. #### MWE 3.8: ```python= def choose_from_list(): while b: try: if a: return None except: pass ``` #### Closest Solution 3.8: ```python= def choose_from_list(): while b: try: tmp = False if a: tmp = True except: pass if tmp: return None ``` ```c= 1 0 LOAD_CONST 0 (<code object choose_from_list at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('choose_from_list') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (choose_from_list) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object choose_from_list at 0x400246eb30, file "main.py", line 1>: 2 >> 0 LOAD_GLOBAL 0 (b) 2 POP_JUMP_IF_FALSE 44 3 4 SETUP_FINALLY 16 (to 22) 4 6 LOAD_CONST 1 (False) 8 STORE_FAST 0 (tmp) 5 10 LOAD_GLOBAL 1 (a) 12 POP_JUMP_IF_FALSE 18 6 14 LOAD_CONST 2 (True) 16 STORE_FAST 0 (tmp) >> 18 POP_BLOCK 20 JUMP_FORWARD 12 (to 34) 8 >> 22 POP_TOP 24 POP_TOP 26 POP_TOP 9 28 POP_EXCEPT 30 JUMP_FORWARD 2 (to 34) 32 END_FINALLY 10 >> 34 LOAD_FAST 0 (tmp) 36 POP_JUMP_IF_FALSE 0 38 LOAD_CONST 0 (None) 40 RETURN_VALUE 42 JUMP_ABSOLUTE 0 >> 44 LOAD_CONST 0 (None) 46 RETURN_VALUE ``` #### MWE 3.8 data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object choose_from_list at 0x400246ea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('choose_from_list') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (choose_from_list) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object choose_from_list at 0x400246ea80, file "main.py", line 1>: 2 >> 0 LOAD_GLOBAL 0 (b) 2 POP_JUMP_IF_FALSE 34 3 4 SETUP_FINALLY 14 (to 20) 4 6 LOAD_GLOBAL 1 (a) 8 POP_JUMP_IF_FALSE 16 5 10 POP_BLOCK 12 LOAD_CONST 0 (None) 14 RETURN_VALUE >> 16 POP_BLOCK 18 JUMP_ABSOLUTE 0 6 >> 20 POP_TOP 22 POP_TOP 24 POP_TOP 7 26 POP_EXCEPT 28 JUMP_ABSOLUTE 0 30 END_FINALLY 32 JUMP_ABSOLUTE 0 >> 34 LOAD_CONST 0 (None) 36 RETURN_VALUE ``` Output uncompyle6: ```python= def choose_from_list--- This code section failed: --- L. 2 0 LOAD_GLOBAL b 2 POP_JUMP_IF_FALSE 34 'to 34' L. 3 4 SETUP_FINALLY 20 'to 20' L. 4 6 LOAD_GLOBAL a 8 POP_JUMP_IF_FALSE 16 'to 16' L. 5 10 POP_BLOCK 12 LOAD_CONST None 14 RETURN_VALUE 16_0 COME_FROM 8 '8' 16 POP_BLOCK 18 JUMP_BACK 0 'to 0' 20_0 COME_FROM_FINALLY 4 '4' L. 6 20 POP_TOP 22 POP_TOP 24 POP_TOP L. 7 26 POP_EXCEPT 28 JUMP_BACK 0 'to 0' 30 END_FINALLY 32 JUMP_BACK 0 'to 0' 34_0 COME_FROM 2 '2' Parse error at or near `LOAD_CONST' instruction at offset 12 ``` Output Decompyle3: ```python= Instruction context: L. 5 10 POP_BLOCK -> 12 LOAD_CONST None 14 RETURN_VALUE 16_0 COME_FROM 8 '8' 16 POP_BLOCK 18 JUMP_BACK 0 'to 0' 20_0 COME_FROM_FINALLY 4 '4' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/51 Source: [link](https://github.com/42DIGITAL/bqtools/blob/1bc3e620f663555d8936e745ee3224b9f6b1b716/fourtytwo/bqtools/__init__.py#L91) Python version: 3.7 Decompyle3: Pass Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Fail | Pass | Pass | ### MWE: ```python= def _columns_to_rows(): if a: for index in l: pass elif b: for index in l: pass return rows ``` #### Closest Solution: ```python= def _columns_to_rows(): tmp = False if a: for index in l: pass else: tmp = True if tmp and b: for index in l: pass return rows ``` ```c= 1 0 LOAD_CONST 0 (<code object _columns_to_rows at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_columns_to_rows') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_columns_to_rows) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _columns_to_rows at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_CONST 1 (False) 2 STORE_FAST 0 (tmp) 3 4 LOAD_GLOBAL 0 (a) 6 POP_JUMP_IF_FALSE 24 4 8 SETUP_LOOP 18 (to 28) 10 LOAD_GLOBAL 1 (l) 12 GET_ITER >> 14 FOR_ITER 4 (to 20) 16 STORE_FAST 1 (index) 5 18 JUMP_ABSOLUTE 14 >> 20 POP_BLOCK 22 JUMP_FORWARD 4 (to 28) 7 >> 24 LOAD_CONST 2 (True) 26 STORE_FAST 0 (tmp) 8 >> 28 LOAD_FAST 0 (tmp) 30 POP_JUMP_IF_FALSE 50 32 LOAD_GLOBAL 2 (b) 34 POP_JUMP_IF_FALSE 50 9 36 SETUP_LOOP 12 (to 50) 38 LOAD_GLOBAL 1 (l) 40 GET_ITER >> 42 FOR_ITER 4 (to 48) 44 STORE_FAST 1 (index) 10 46 JUMP_ABSOLUTE 42 >> 48 POP_BLOCK 11 >> 50 LOAD_GLOBAL 3 (rows) 52 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object _columns_to_rows at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('_columns_to_rows') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (_columns_to_rows) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object _columns_to_rows at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 POP_JUMP_IF_FALSE 20 3 4 SETUP_LOOP 32 (to 38) 6 LOAD_GLOBAL 1 (l) 8 GET_ITER >> 10 FOR_ITER 4 (to 16) 12 STORE_FAST 0 (index) 4 14 JUMP_ABSOLUTE 10 >> 16 POP_BLOCK 18 JUMP_FORWARD 18 (to 38) 5 >> 20 LOAD_GLOBAL 2 (b) 22 POP_JUMP_IF_FALSE 38 6 24 SETUP_LOOP 12 (to 38) 26 LOAD_GLOBAL 1 (l) 28 GET_ITER >> 30 FOR_ITER 4 (to 36) 32 STORE_FAST 0 (index) 7 34 JUMP_ABSOLUTE 30 >> 36 POP_BLOCK 8 >> 38 LOAD_GLOBAL 3 (rows) 40 RETURN_VALUE ``` Output uncompyle6: ```python= def _columns_to_rows--- This code section failed: --- L. 2 0 LOAD_GLOBAL a 2 POP_JUMP_IF_FALSE 20 'to 20' L. 3 4 SETUP_LOOP 38 'to 38' 6 LOAD_GLOBAL l 8 GET_ITER 10 FOR_ITER 16 'to 16' 12 STORE_FAST 'index' L. 4 14 JUMP_BACK 10 'to 10' 16 POP_BLOCK 18 JUMP_FORWARD 38 'to 38' 20_0 COME_FROM 2 '2' L. 5 20 LOAD_GLOBAL b 22 POP_JUMP_IF_FALSE 38 'to 38' L. 6 24 SETUP_LOOP 38 'to 38' 26 LOAD_GLOBAL l 28 GET_ITER 30 FOR_ITER 36 'to 36' 32 STORE_FAST 'index' L. 7 34 JUMP_BACK 30 'to 30' 36 POP_BLOCK 38_0 COME_FROM_LOOP 24 '24' 38_1 COME_FROM 22 '22' 38_2 COME_FROM 18 '18' 38_3 COME_FROM_LOOP 4 '4' L. 8 38 LOAD_GLOBAL rows 40 RETURN_VALUE -1 RETURN_LAST Parse error at or near `COME_FROM_LOOP' instruction at offset 38_3 ``` Output Decompyle3: ```python= def _columns_to_rows(): if a: for index in l: pass elif b: for index in l: pass return rows ``` ## Error 1/52 Source: [link](https://svn.apache.org/repos/infra/infrastructure/trunk/projects/asfpy/asfpy/ldap.py) Python version: 3.8 Decompyle3: Pass Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Fail | Pass | Pass | ### MWE: ```python= def convert(): if a: for r in column: pass elif b: for f in fields: pass return converted_column ``` #### Closest Solution: ```python= def convert(): tmp = False if a: for r in column: pass else: tmp = True if tmp and b: for f in fields: pass return converted_column ``` ```c= 1 0 LOAD_CONST 0 (<code object convert at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('convert') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (convert) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object convert at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_CONST 1 (False) 2 STORE_FAST 0 (tmp) 3 4 LOAD_GLOBAL 0 (a) 6 POP_JUMP_IF_FALSE 24 4 8 SETUP_LOOP 18 (to 28) 10 LOAD_GLOBAL 1 (column) 12 GET_ITER >> 14 FOR_ITER 4 (to 20) 16 STORE_FAST 1 (r) 5 18 JUMP_ABSOLUTE 14 >> 20 POP_BLOCK 22 JUMP_FORWARD 4 (to 28) 7 >> 24 LOAD_CONST 2 (True) 26 STORE_FAST 0 (tmp) 8 >> 28 LOAD_FAST 0 (tmp) 30 POP_JUMP_IF_FALSE 50 32 LOAD_GLOBAL 2 (b) 34 POP_JUMP_IF_FALSE 50 9 36 SETUP_LOOP 12 (to 50) 38 LOAD_GLOBAL 3 (fields) 40 GET_ITER >> 42 FOR_ITER 4 (to 48) 44 STORE_FAST 2 (f) 10 46 JUMP_ABSOLUTE 42 >> 48 POP_BLOCK 11 >> 50 LOAD_GLOBAL 4 (converted_column) 52 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object convert at 0x40022eee40, file "main.py", line 1>) 2 LOAD_CONST 1 ('convert') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (convert) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object convert at 0x40022eee40, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (a) 2 POP_JUMP_IF_FALSE 20 3 4 SETUP_LOOP 32 (to 38) 6 LOAD_GLOBAL 1 (column) 8 GET_ITER >> 10 FOR_ITER 4 (to 16) 12 STORE_FAST 0 (r) 4 14 JUMP_ABSOLUTE 10 >> 16 POP_BLOCK 18 JUMP_FORWARD 18 (to 38) 5 >> 20 LOAD_GLOBAL 2 (b) 22 POP_JUMP_IF_FALSE 38 6 24 SETUP_LOOP 12 (to 38) 26 LOAD_GLOBAL 3 (fields) 28 GET_ITER >> 30 FOR_ITER 4 (to 36) 32 STORE_FAST 1 (f) 7 34 JUMP_ABSOLUTE 30 >> 36 POP_BLOCK 8 >> 38 LOAD_GLOBAL 4 (converted_column) 40 RETURN_VALUE ``` Output uncompyle6: ```python= def convert--- This code section failed: --- L. 2 0 LOAD_GLOBAL a 2 POP_JUMP_IF_FALSE 20 'to 20' L. 3 4 SETUP_LOOP 38 'to 38' 6 LOAD_GLOBAL column 8 GET_ITER 10 FOR_ITER 16 'to 16' 12 STORE_FAST 'r' L. 4 14 JUMP_BACK 10 'to 10' 16 POP_BLOCK 18 JUMP_FORWARD 38 'to 38' 20_0 COME_FROM 2 '2' L. 5 20 LOAD_GLOBAL b 22 POP_JUMP_IF_FALSE 38 'to 38' L. 6 24 SETUP_LOOP 38 'to 38' 26 LOAD_GLOBAL fields 28 GET_ITER 30 FOR_ITER 36 'to 36' 32 STORE_FAST 'f' L. 7 34 JUMP_BACK 30 'to 30' 36 POP_BLOCK 38_0 COME_FROM_LOOP 24 '24' 38_1 COME_FROM 22 '22' 38_2 COME_FROM 18 '18' 38_3 COME_FROM_LOOP 4 '4' L. 8 38 LOAD_GLOBAL converted_column 40 RETURN_VALUE -1 RETURN_LAST Parse error at or near `COME_FROM_LOOP' instruction at offset 38_3 ``` Output Decompyle3: ```python= def convert(): if a: for r in column: pass elif b: for f in fields: pass return converted_column ``` ## Error 1/53 - Duplicate Source: [link](https://github.com/42DIGITAL/bqtools/blob/1bc3e620f663555d8936e745ee3224b9f6b1b716/fourtytwo/bqtools/__init__.py#L91) Python version: 3.7 Decompyle3: Pass Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Pass | Fail | Pass | Pass | > Same as 1/51 ## Error 1/54 Source: [link](https://github.com/nekitdev/braces.py/blob/6fb0513976fe064bb4cca2295066eb0df64b95d7/braces/token_transform.py#L18) Python version: 3.8 Decompyle3: Pass Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: ```python= def transform(): for token in l: for context in l: if b: z=z break ``` #### Closest Solution: ```python= def transform(): for token in l: for context in l: if b: z=z if b: break ``` ```c= 1 0 LOAD_CONST 0 (<code object transform at 0x40021aeb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('transform') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (transform) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object transform at 0x40021aeb30, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (l) 2 GET_ITER >> 4 FOR_ITER 30 (to 36) 6 STORE_FAST 0 (token) 3 8 LOAD_GLOBAL 0 (l) 10 GET_ITER >> 12 FOR_ITER 20 (to 34) 14 STORE_FAST 1 (context) 4 16 LOAD_GLOBAL 1 (b) 18 POP_JUMP_IF_FALSE 24 5 20 LOAD_FAST 2 (z) 22 STORE_FAST 2 (z) 6 >> 24 LOAD_GLOBAL 1 (b) 26 POP_JUMP_IF_FALSE 12 7 28 POP_TOP 30 JUMP_ABSOLUTE 4 32 JUMP_ABSOLUTE 12 >> 34 JUMP_ABSOLUTE 4 >> 36 LOAD_CONST 0 (None) 38 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object transform at 0x40021eebe0, file "main.py", line 1>) 2 LOAD_CONST 1 ('transform') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (transform) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object transform at 0x40021eebe0, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (l) 2 GET_ITER >> 4 FOR_ITER 26 (to 32) 6 STORE_FAST 0 (token) 3 8 LOAD_GLOBAL 0 (l) 10 GET_ITER >> 12 FOR_ITER 16 (to 30) 14 STORE_FAST 1 (context) 4 16 LOAD_GLOBAL 1 (b) 18 POP_JUMP_IF_FALSE 12 5 20 LOAD_FAST 2 (z) 22 STORE_FAST 2 (z) 6 24 POP_TOP 26 JUMP_ABSOLUTE 4 28 JUMP_ABSOLUTE 12 >> 30 JUMP_ABSOLUTE 4 >> 32 LOAD_CONST 0 (None) 34 RETURN_VALUE ``` Output uncompyle6: ```python= def transform--- This code section failed: --- L. 2 0 LOAD_GLOBAL l 2 GET_ITER 4 FOR_ITER 32 'to 32' 6 STORE_FAST 'token' L. 3 8 LOAD_GLOBAL l 10 GET_ITER 12_0 COME_FROM 18 '18' 12 FOR_ITER 30 'to 30' 14 STORE_FAST 'context' L. 4 16 LOAD_GLOBAL b 18 POP_JUMP_IF_FALSE 12 'to 12' L. 5 20 LOAD_FAST 'z' 22 STORE_FAST 'z' L. 6 24 POP_TOP 26 CONTINUE 4 'to 4' 28 JUMP_BACK 12 'to 12' 30 JUMP_BACK 4 'to 4' Parse error at or near `CONTINUE' instruction at offset 26 ``` Output Decompyle3: ```python= def transform(): for token in l: for context in l: if b: z = z break ``` ## Error 1/55 Source: [link](https://github.com/nekitdev/braces.py/blob/6fb0513976fe064bb4cca2295066eb0df64b95d7/braces/__init__.py#L35) 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 make_version_details(): for key in l: if a: continue else: value = 1 value = 2 return ``` #### Closest Solution: ```python= def make_version_details(): for key in l: if a: continue value = 1 value = 2 return ``` ```c= 1 0 LOAD_CONST 0 (<code object make_version_details at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('make_version_details') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (make_version_details) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object make_version_details at 0x400246eb30, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (l) 2 GET_ITER >> 4 FOR_ITER 18 (to 24) 6 STORE_FAST 0 (key) 3 8 LOAD_GLOBAL 1 (a) 10 POP_JUMP_IF_FALSE 14 4 12 JUMP_ABSOLUTE 4 6 >> 14 LOAD_CONST 1 (1) 16 STORE_FAST 1 (value) 7 18 LOAD_CONST 2 (2) 20 STORE_FAST 1 (value) 22 JUMP_ABSOLUTE 4 8 >> 24 LOAD_CONST 0 (None) 26 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object make_version_details at 0x400246eb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('make_version_details') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (make_version_details) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object make_version_details at 0x400246eb30, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (l) 2 GET_ITER >> 4 FOR_ITER 20 (to 26) 6 STORE_FAST 0 (key) 3 8 LOAD_GLOBAL 1 (a) 10 POP_JUMP_IF_FALSE 16 4 12 JUMP_ABSOLUTE 4 14 JUMP_FORWARD 4 (to 20) 6 >> 16 LOAD_CONST 1 (1) 18 STORE_FAST 1 (value) 7 >> 20 LOAD_CONST 2 (2) 22 STORE_FAST 1 (value) 24 JUMP_ABSOLUTE 4 8 >> 26 LOAD_CONST 0 (None) 28 RETURN_VALUE ``` Output uncompyle6: ```python= def make_version_details--- This code section failed: --- L. 2 0 LOAD_GLOBAL l 2 GET_ITER 4 FOR_ITER 26 'to 26' 6 STORE_FAST 'key' L. 3 8 LOAD_GLOBAL a 10 POP_JUMP_IF_FALSE 16 'to 16' L. 4 12 JUMP_BACK 4 'to 4' 14 JUMP_FORWARD 20 'to 20' 16_0 COME_FROM 10 '10' L. 6 16 LOAD_CONST 1 18 STORE_FAST 'value' 20_0 COME_FROM 14 '14' L. 7 20 LOAD_CONST 2 22 STORE_FAST 'value' 24 JUMP_BACK 4 'to 4' Parse error at or near `JUMP_FORWARD' instruction at offset 14 ``` Output Decompyle3: ```python= Instruction context: L. 7 20 LOAD_CONST 2 22 STORE_FAST 'value' -> 24 JUMP_BACK 4 'to 4' test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/56 - Cannot Recreate Py 2.7 Source: [link](https://pypi.org/project/bree/#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 | > NOTE: The magic number is 62218 which means a certain version of python 2.7. However, python 2.7 decompiles perfectly. Current python 2.7 has 62211 as magic number. ### MWE: ```python= from __future__ import unicode_literals from tornado.web import UIModule class CSS(UIModule): def render(self, origin, compress=None, *args, **kwargs): debug = self.handler.css_debug to_show = [] buff = '' if debug or compress is None: if isinstance(origin, str): to_show = [origin] else: to_show = origin else: if isinstance(compress, str): to_show = [compress] else: to_show = compress for i in to_show: buff += '<link href="{}" media="screen" rel="stylesheet" type="text/css">'.format(self.handler.static_url(i)) pass return buff ``` ## Error 1/57 - (Duplicate) Cannot Recreate Py 2.7 Source: [link](https://pypi.org/project/bree/#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 | > NOTE: The magic number is 62218 which means a certain version of python 2.7. However, python 2.7 decompiles perfectly. Current python 2.7 has 62211 as magic number. Same as previous one. ## Error 1/58 Source: [link](https://github.com/brython-dev/brython/blob/ee011b8fbba9cd3d4e37255e1625354528639680/scripts/python_minifier.py#L35) Python version: 3.8 Decompyle3: Pass - Incorrect Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Fail | Pass | Pass | ### MWE: ```python= def minify(): for item in token_generator: if a and b: if c or d or e : z = z else: z = z ``` #### Closest Solution: ```python= def minify(): for item in token_generator: if a and b: tmp = c or d or e if tmp : z = z else: z = z ``` ```c= 1 0 LOAD_CONST 0 (<code object minify at 0x400236e9d0, file "main.py", line 1>) 2 LOAD_CONST 1 ('minify') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (minify) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object minify at 0x400236e9d0, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (token_generator) 2 GET_ITER >> 4 FOR_ITER 38 (to 44) 6 STORE_FAST 0 (item) 3 8 LOAD_GLOBAL 1 (a) 10 POP_JUMP_IF_FALSE 38 12 LOAD_GLOBAL 2 (b) 14 POP_JUMP_IF_FALSE 38 4 16 LOAD_GLOBAL 3 (c) 18 JUMP_IF_TRUE_OR_POP 26 20 LOAD_GLOBAL 4 (d) 22 JUMP_IF_TRUE_OR_POP 26 24 LOAD_GLOBAL 5 (e) >> 26 STORE_FAST 1 (tmp) 5 28 LOAD_FAST 1 (tmp) 30 POP_JUMP_IF_FALSE 42 6 32 LOAD_FAST 2 (z) 34 STORE_FAST 2 (z) 36 JUMP_ABSOLUTE 4 8 >> 38 LOAD_FAST 2 (z) 40 STORE_FAST 2 (z) >> 42 JUMP_ABSOLUTE 4 >> 44 LOAD_CONST 0 (None) 46 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object minify at 0x40021ee9d0, file "main.py", line 1>) 2 LOAD_CONST 1 ('minify') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (minify) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object minify at 0x40021ee9d0, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (token_generator) 2 GET_ITER >> 4 FOR_ITER 34 (to 40) 6 STORE_FAST 0 (item) 3 8 LOAD_GLOBAL 1 (a) 10 POP_JUMP_IF_FALSE 34 12 LOAD_GLOBAL 2 (b) 14 POP_JUMP_IF_FALSE 34 4 16 LOAD_GLOBAL 3 (c) 18 POP_JUMP_IF_TRUE 28 20 LOAD_GLOBAL 4 (d) 22 POP_JUMP_IF_TRUE 28 24 LOAD_GLOBAL 5 (e) 26 POP_JUMP_IF_FALSE 38 5 >> 28 LOAD_FAST 1 (z) 30 STORE_FAST 1 (z) 32 JUMP_ABSOLUTE 4 7 >> 34 LOAD_FAST 1 (z) 36 STORE_FAST 1 (z) >> 38 JUMP_ABSOLUTE 4 >> 40 LOAD_CONST 0 (None) 42 RETURN_VALUE ``` Output uncompyle6: ```python= def minify--- This code section failed: --- L. 2 0 LOAD_GLOBAL token_generator 2 GET_ITER 4 FOR_ITER 40 'to 40' 6 STORE_FAST 'item' L. 3 8 LOAD_GLOBAL a 10 POP_JUMP_IF_FALSE 34 'to 34' 12 LOAD_GLOBAL b 14 POP_JUMP_IF_FALSE 34 'to 34' L. 4 16 LOAD_GLOBAL c 18 POP_JUMP_IF_TRUE 28 'to 28' 20 LOAD_GLOBAL d 22 POP_JUMP_IF_TRUE 28 'to 28' 24 LOAD_GLOBAL e 26 POP_JUMP_IF_FALSE 38 'to 38' 28_0 COME_FROM 22 '22' 28_1 COME_FROM 18 '18' L. 5 28 LOAD_FAST 'z' 30 STORE_FAST 'z' 32 JUMP_BACK 4 'to 4' 34_0 COME_FROM 14 '14' 34_1 COME_FROM 10 '10' L. 7 34 LOAD_FAST 'z' 36 STORE_FAST 'z' 38_0 COME_FROM 26 '26' 38 JUMP_BACK 4 'to 4' Parse error at or near `COME_FROM' instruction at offset 38_0 ``` Output Decompyle3: ```python= def minify(): for item in token_generator: if not a and b or c or d or e: z = z else: z = z ``` ## Error 1/59 Source: [link](https://github.com/PingThingsIO/btrdb-python/blob/02a0e4eae7166c19e670870d233b188819eda7e1/btrdb/utils/conversion.py#L74) 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 decode(): try: return x except err: pass ``` #### Closest Solution: No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-1) #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object decode at 0x40021aea80, file "main.py", line 1>) 2 LOAD_CONST 1 ('decode') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (decode) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object decode at 0x40021aea80, 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 DUP_TOP 10 LOAD_GLOBAL 1 (err) 12 COMPARE_OP 10 (exception match) 14 POP_JUMP_IF_FALSE 26 16 POP_TOP 18 POP_TOP 20 POP_TOP 5 22 POP_EXCEPT 24 JUMP_FORWARD 2 (to 28) >> 26 END_FINALLY >> 28 LOAD_CONST 0 (None) 30 RETURN_VALUE ``` Output uncompyle6: ```python= def decode--- 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 DUP_TOP 10 LOAD_GLOBAL err 12 COMPARE_OP exception-match 14 POP_JUMP_IF_FALSE 26 'to 26' 16 POP_TOP 18 POP_TOP 20 POP_TOP L. 5 22 POP_EXCEPT 24 JUMP_FORWARD 28 'to 28' 26_0 COME_FROM 14 '14' 26 END_FINALLY 28_0 COME_FROM 24 '24' Parse error at or near `POP_TOP' instruction at offset 18 ``` Output Decompyle3: ```python= Instruction context: L. 5 22 POP_EXCEPT 24 JUMP_FORWARD 28 'to 28' -> 26_0 COME_FROM 14 '14' 26 END_FINALLY test/main.pyc -- # decompile failed # file test/main.pyc # Deparsing stopped due to parse error ``` ## Error 1/60 Source: [link](https://github.com/PingThingsIO/btrdb-python/blob/02a0e4eae7166c19e670870d233b188819eda7e1/btrdb/utils/credentials.py#L45) Python version: 3.8 Decompyle3: Pass Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: ```python= def load_credentials_from_file(): with open(CREDENTIALS_PATH, 'r') as stream: return stream ``` #### Closest Solution: ```python= def load_credentials_from_file(): tmp = None with open(CREDENTIALS_PATH, 'r') as stream: tmp = stream return tmp ``` ```c= 1 0 LOAD_CONST 0 (<code object load_credentials_from_file at 0x40021eeb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('load_credentials_from_file') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (load_credentials_from_file) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object load_credentials_from_file at 0x40021eeb30, file "main.py", line 1>: 2 0 LOAD_CONST 0 (None) 2 STORE_FAST 0 (tmp) 3 4 LOAD_GLOBAL 0 (open) 6 LOAD_GLOBAL 1 (CREDENTIALS_PATH) 8 LOAD_CONST 1 ('r') 10 CALL_FUNCTION 2 12 SETUP_WITH 10 (to 24) 14 STORE_FAST 1 (stream) 4 16 LOAD_FAST 1 (stream) 18 STORE_FAST 0 (tmp) 20 POP_BLOCK 22 BEGIN_FINALLY >> 24 WITH_CLEANUP_START 26 WITH_CLEANUP_FINISH 28 END_FINALLY 5 30 LOAD_FAST 0 (tmp) 32 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 0 (<code object load_credentials_from_file at 0x40021eeb30, file "main.py", line 1>) 2 LOAD_CONST 1 ('load_credentials_from_file') 4 MAKE_FUNCTION 0 6 STORE_NAME 0 (load_credentials_from_file) 8 LOAD_CONST 2 (None) 10 RETURN_VALUE Disassembly of <code object load_credentials_from_file at 0x40021eeb30, file "main.py", line 1>: 2 0 LOAD_GLOBAL 0 (open) 2 LOAD_GLOBAL 1 (CREDENTIALS_PATH) 4 LOAD_CONST 1 ('r') 6 CALL_FUNCTION 2 8 SETUP_WITH 18 (to 28) 10 STORE_FAST 0 (stream) 3 12 LOAD_FAST 0 (stream) 14 POP_BLOCK 16 ROT_TWO 18 BEGIN_FINALLY 20 WITH_CLEANUP_START 22 WITH_CLEANUP_FINISH 24 POP_FINALLY 0 26 RETURN_VALUE >> 28 WITH_CLEANUP_START 30 WITH_CLEANUP_FINISH 32 END_FINALLY 34 LOAD_CONST 0 (None) 36 RETURN_VALUE ``` Output uncompyle6: ```python= def load_credentials_from_file--- This code section failed: --- L. 2 0 LOAD_GLOBAL open 2 LOAD_GLOBAL CREDENTIALS_PATH 4 LOAD_STR 'r' 6 CALL_FUNCTION_2 2 '' 8 SETUP_WITH 28 'to 28' 10 STORE_FAST 'stream' L. 3 12 LOAD_FAST 'stream' 14 POP_BLOCK 16 ROT_TWO 18 BEGIN_FINALLY 20 WITH_CLEANUP_START 22 WITH_CLEANUP_FINISH 24 POP_FINALLY 0 '' 26 RETURN_VALUE 28_0 COME_FROM_WITH 8 '8' 28 WITH_CLEANUP_START 30 WITH_CLEANUP_FINISH 32 END_FINALLY Parse error at or near `ROT_TWO' instruction at offset 16 ``` Output Decompyle3: ```python= def load_credentials_from_file(): with open(CREDENTIALS_PATH, 'r') as stream: return stream ``` ## Error 1/61 Source: [link](https://svn.apache.org/repos/infra/infrastructure/trunk/projects/asfpy/asfpy/ldap.py) Python version: 3.8 Decompyle3: Pass Uncompyle6: Failed Error: `Deparsing stopped due to parse error` | Py3.8 | Py3.7 | Py3.6 | Py2.7 | | -------- | -------- | -------- | -------- | | Fail | Pass | Pass | Pass | ### MWE: ```python= def streams(versions=None): version_dict = {idx: versions[idx] for idx in l} ``` #### Closest Solution: ```python= def streams(versions=None): version_dict = {} for idx in l: version_dict[idx] = versions[idx] ``` ```c= 1 0 LOAD_CONST 3 ((None,)) 2 LOAD_CONST 1 (<code object streams at 0x400236ebe0, file "main.py", line 1>) 4 LOAD_CONST 2 ('streams') 6 MAKE_FUNCTION 1 (defaults) 8 STORE_NAME 0 (streams) 10 LOAD_CONST 0 (None) 12 RETURN_VALUE Disassembly of <code object streams at 0x400236ebe0, file "main.py", line 1>: 2 0 BUILD_MAP 0 2 STORE_FAST 1 (version_dict) 3 4 LOAD_GLOBAL 0 (l) 6 GET_ITER >> 8 FOR_ITER 16 (to 26) 10 STORE_FAST 2 (idx) 4 12 LOAD_FAST 0 (versions) 14 LOAD_FAST 2 (idx) 16 BINARY_SUBSCR 18 LOAD_FAST 1 (version_dict) 20 LOAD_FAST 2 (idx) 22 STORE_SUBSCR 24 JUMP_ABSOLUTE 8 >> 26 LOAD_CONST 0 (None) 28 RETURN_VALUE ``` #### MWE data: Bytecode for MWE: ```c= 1 0 LOAD_CONST 3 ((None,)) 2 LOAD_CONST 1 (<code object streams at 0x40021eeea0, file "main.py", line 1>) 4 LOAD_CONST 2 ('streams') 6 MAKE_FUNCTION 1 (defaults) 8 STORE_NAME 0 (streams) 10 LOAD_CONST 0 (None) 12 RETURN_VALUE Disassembly of <code object streams at 0x40021eeea0, file "main.py", line 1>: 2 0 LOAD_CLOSURE 0 (versions) 2 BUILD_TUPLE 1 4 LOAD_CONST 1 (<code object <dictcomp> at 0x40021eedf0, file "main.py", line 2>) 6 LOAD_CONST 2 ('streams.<locals>.<dictcomp>') 8 MAKE_FUNCTION 8 (closure) 10 LOAD_GLOBAL 0 (l) 12 GET_ITER 14 CALL_FUNCTION 1 16 STORE_FAST 1 (version_dict) 18 LOAD_CONST 0 (None) 20 RETURN_VALUE Disassembly of <code object <dictcomp> at 0x40021eedf0, file "main.py", line 2>: 2 0 BUILD_MAP 0 2 LOAD_FAST 0 (.0) >> 4 FOR_ITER 14 (to 20) 6 STORE_FAST 1 (idx) 8 LOAD_FAST 1 (idx) 10 LOAD_DEREF 0 (versions) 12 LOAD_FAST 1 (idx) 14 BINARY_SUBSCR 16 MAP_ADD 2 18 JUMP_ABSOLUTE 4 >> 20 RETURN_VALUE ``` Output uncompyle6: ```python= def streams--- This code section failed: --- L. 2 0 LOAD_CLOSURE 'versions' 2 BUILD_TUPLE_1 1 4 LOAD_DICTCOMP '<code_object <dictcomp>>' 6 LOAD_STR 'streams.<locals>.<dictcomp>' 8 MAKE_FUNCTION_8 'closure' 10 LOAD_GLOBAL l 12 GET_ITER 14 CALL_FUNCTION_1 1 '' 16 STORE_FAST 'version_dict' Parse error at or near `None' instruction at offset -1 ``` Output Decompyle3: ```python= def streams(versions=None): version_dict = {versions[idx]:idx for idx in l} ```