---
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}
```