Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Python 2.7 decompiler

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fix code generation of function calls issue

Function calls inside generator expressions, set comprehensions, and dict comprehensions were sometimes  mangled due to not invoking _customize on the associated anonymous function.
latest commit c443db784d
wibiti authored
Octocat-spinner-32 scripts add --deob March 13, 2013
Octocat-spinner-32 test Update original authors URL. November 16, 2012
Octocat-spinner-32 uncompyle2 Fix code generation of function calls issue March 19, 2013
Octocat-spinner-32 MANIFEST.in first real commit January 05, 2011
Octocat-spinner-32 PKG-INFO Updating original authors email-address. November 16, 2012
Octocat-spinner-32 README Add credits to the original author. November 16, 2012
Octocat-spinner-32 compile_tests first real commit January 05, 2011
Octocat-spinner-32 setup.cfg Updating original authors email-address. November 16, 2012
Octocat-spinner-32 setup.py Updating original authors email-address. November 16, 2012
Octocat-spinner-32 test_one first real commit January 05, 2011
Octocat-spinner-32 test_pythonlib first real commit January 05, 2011
README
                          uncompyle2 
        A Python 2.7 byte-code decompiler, written in Python 2.7
                          0.13
                          2012-2-22

Introduction
------------

'uncompyle2' converts Python byte-code back into equivalent Python
source. It accepts byte-code from Python version 2.7 only. Additionally,
it will only run on Python 2.7.

The generated source is very readable: docstrings, lists, tuples and
hashes get pretty-printed.

'uncompyle2' may also verify the equivalence of the generated source by
by compiling it and comparing both byte-codes.

'uncompyle2' is based on John Aycock's generic small languages compiler
'spark' (http://www.csr.uvic.ca/~aycock/python/) and his prior work on
a tool called 'decompyle'. This tool has been vastly improved by
Hartmut Goebel `http://www.crazy-compilers.com/`_

Additional note (3 July 2004, Ben Burton):

    This software is no longer available from the original website. It
    has now become a commercial decompilation service, with no
    software available for download.

    Any developers seeking to make alterations or enhancements to this code
    should therefore consider these debian packages an appropriate starting
    point.

Features
--------

  * decompiles Python byte-code into equivalent Python source

  * decompiles byte-code from Python version 2.7

  * pretty-prints docstrings, hashes, lists and tuples
  
  * reads directly from .pyc/.pyo files, bulk-decompile whole
    directories

  * output may be written to file, a directory or to stdout

  * option for including byte-code disassembly into generated source

  For a list of changes please refer to the 'CHANGES' file.


Requirements
------------

uncompyle2 requires Python 2.7


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

uncompyle2 -h		prints short usage
uncompyle2 --help	prints long usage


Known Bugs/Restrictions
-----------------------


Something went wrong with that request. Please try again.