mirror of
https://github.com/vinta/awesome-python.git
synced 2026-03-19 13:41:30 -05:00
[PR #809] [CLOSED] Add uncompyle6 Python bytecode decompiler #727
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/vinta/awesome-python/pull/809
Author: @rocky
Created: 1/7/2017
Status: ❌ Closed
Base:
master← Head:uncompyle6📝 Commits (1)
9542e3eAdd uncompyle6 Python bytecode decompiler📊 Changes
1 file changed (+2 additions, -1 deletions)
View changed files
📝
README.md(+2 -1)📄 Description
What is this Python project?
uncompyle6 translates Python bytecode back into equivalent Python source code. It accepts bytecodes from Python version 2.1 to 3.6 or so, including PyPy bytecode and Dropbox’s Python 2.5 bytecode.
What's the difference between this Python project and similar ones?
There were a number of decompyle, uncompile, uncompyle2, uncompyle3 forks around. All of them came basically from the same code base, and almost all of them no were no longer actively maintained. Only one handled Python 3, and even there, only 3.2 or 3.3 depending on which code is used. This code pulls these together and moves forward. It also addresses a number of open issues in the previous forks.
What makes this different from other CPython bytecode decompilers?: its ability to deparse just fragments and give source-code information around a given bytecode offset.
I use this to deparse fragments of code inside my trepan debuggers. For that, I need to record text fragments for all bytecode offsets (of interest). This purpose although largely compatible with the original intention is yet a little bit different.
--
Anyone who agrees with this pull request could vote for it by adding a 👍 to it, and usually, the maintainer will merge it when votes reach 20.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.