Decompiler for Python 3.3 (forked from https://code.google.com/p/unpyc3)
The aim is to be able to recreate Python3 source code from code objects. Current version is able to decompile itself successfully :). It has been tested with Python 3.3 only.
It currently reconstructs most of Python 3 constructs but probably needs to be tested more thoroughly. All feedback welcome.
>>> from unpyc3 import decompile >>> def foo(x, y, z=3, *args): ... global g ... for i, j in zip(x, y): ... if z == i + j or args[i] == j: ... g = i, j ... return ... >>> print(decompile(foo)) def foo(x, y, z=3, *args): global g for i, j in zip(x, y): if z == i + j or args[i] == j: g = i, j return >>>
Unpyc3 is made of a single python module. Download unpyc3.py and try it now!
the unpyc3 module is able de decompile itself! (try import unpyc3; unpyc3.decompile(unpyc3)) so theorically I could just distribute the .pyc file.
- Support for keyword-only arguments
- Handle assert statements
- Show docstrings for functions and modules
- Nice spacing between function/class declarations
- I am not the original author and just hacked this enough to work with Python 3.3
- I will not be maintaining this repository to any degree
- Also thanks to MadeCoder at StackOverflow.com for their work