mmikolajczyk95/depyc
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
decompyle -- A Python byte-code decompiler Version 2.3 12 May 2004 Homepage: http://adal.eu.org/decompyle.php versions up to 2.2 of 'decompyle' were made by Hartmut Goebel (http://www.crazy-compilers.com/decompyle/) Introduction ------------ 'decompyle' converts Python byte-code back into equivalent Python source. It accepts byte-code from any Python version starting with 1.5 up to 2.3. The generated source is very readable: docstrings, lists, tuples and hashes get pretty-printed. 'decompyle' may also verify the equivalence of the generated source by by compiling it and comparing both byte-codes. 'decompyle' is based on John Aycock's generic small languages compiler 'spark' (http://www.csr.uvic.ca/~aycock/python/) and his prior work on 'decompyle'. Features -------- * decompyles Python byte-code into equivalent Python source * decompyles byte-code from Python versions 1.5 up to 2.3 * pretty-prints docstrings, hashes, lists and tuples * supports an option for verifing the generated Python source is equivalent to the byte-code. This is done by compiling the generated source and comparing both byte-codes. * decompyles and successfully verifies 100% of the Python 1.5, 2.0, 2.1 and 2.2 library * decompyles and successfully verifies 100% of the Python 1.5 library, including lib-stdwin, lib-tk, gnome and gtk. * reads directly from .pyc/.pyo files, bulk-decompyle whole directories * output may be written to file, a directory or to stdout * option for including byte-code disassembly into generated source * If translation fails, the part causing the problem is output. This helps improofing 'decompyle'. If this happens to you, please contact the author. For a list of changes please refer to the 'CHANGES' file. Requirements ------------ 'decompyle' requires Python 2.2 or later. Installation ------------ You may either create a RPM and install this, or install directly from the source distribution. Creating RPMS: python setup.py bdist_rpm If you need to force the python interpreter to eg. pyton2: python2 setup.py bdist_rpm --python=python2 Installation from the source distribution: python setup.py install To install to a user's home-dir: python setup.py install --home=<dir> To install to another prefix (eg. /usr/local) python setup.py install --prefix=/usr/local If you need to force the python interpreter to eg. pyton2: python2 setup.py install For more information on 'Installing Python Modules' please refer to http://www.python.org/doc/current/inst/inst.html Usage ----- decompyle -h prints short usage decompyle --help prints long usage Known Bugs/Restrictions ----------------------- * EXTENDED_ARG token is untested (this is a new token for Python 2.0 which is used only if many items exist within a code object). * Verifying decompyled source with optizimzed byte code (.pyo) when running without optimizations (option '-O' not given) fails in most cases. Same is true for vis-a-versa. This is due to the fact that Python generated different bytecode depending on option '-O'. * Python 2.2 generated different byte-code than prior version for the same source. This is due the intruduction of iterators. Currently 'decompyle' fails verifying this source if the byte-code was generated by an older version of Python. * Some sources generated by Python 2.3 can't be decompiled
About
Automatically exported from code.google.com/p/depyc
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published