python-uncompyle6 v3.6.1 Release Notes

Release Date: 2019-12-24 // almost 2 years ago
  • Overall, as in the past, the focus has been on just fixing bugs, more geared
    ๐Ÿ‘ in the later 3.x range. Handling "async for/with" in 3.8+ works better.

    Numerous bugs around handling lambda with keyword-only and * args in the
    ๐Ÿ›  3.0-3.8 have been fixed. However many still remain.

    binary_expr and unary_expr have been renamed to bin_op and
    ๐Ÿ‘ unary_op to better correspond the Python AST names.

    ๐Ÿ‘ Some work was done Python 3.7+ to handle and better; less was done
    along the lines of handling or. Much more is needed to improve
    ๐Ÿ“œ parsing stability of 3.7+. More of what was done with and needs to
    be done with or and this will happen first in the "decompyle3"

    Later this will probably be extended backwards to handle the 3.6-
    ๐Ÿ”– versions better. This however comes with a big decompilation speed
    penalty. When we redo control flow this should go back to normal, but
    for now, accuracy is more important than speed.

    ๐Ÿ“œ Another assert transform rule was added. Parser rules to distingish
    try/finally in 3.8 were added and we are more stringent about what
    can be turned into an assert. There was some grammar cleanup here

    ๐Ÿ›  A number of small bugs were fixed, and some administrative changes to
    ๐Ÿ‘‰ make make check-short really be short, but check more throughly what
    it checks. minimum xdis version needed was bumped to include in the
    ๐Ÿ†• newer 3.6-3.9 releases. See the ChangeLog for details.