Commit Graph

  • e50bebb7c8 Reinstate list comprehension test. I think we've found/fixed the initialization bug. rocky 2015-12-30 18:51:22 -05:00
  • 2e91de8355 Start using our replacement for inspect.iscode rocky 2015-12-30 18:43:22 -05:00
  • 5bbe2c4a45 Doc changes. rocky 2015-12-30 18:20:50 -05:00
  • 6ffd2fca90 document GenericASTTraversal.preorder and default. rocky 2015-12-30 17:26:45 -05:00
  • b3ede4b64b Walker->SourceWalker Traverser->FragmentsWalker rocky 2015-12-30 17:04:18 -05:00
  • 1785113045 Tidy parse3 grammer a little rocky 2015-12-30 10:26:07 -05:00
  • 657eeb7de8 Towards Python3 getting try/except working more often. rocky 2015-12-30 09:46:52 -05:00
  • 313a8578b3 Fix another cross-version bug: eliminate version-specific library 'dis' and use corresponding version-indepent routine instead. rocky 2015-12-29 22:23:50 -05:00
  • a30f3625ac Fix Python 2 cross deparsing pythond bytecode tuples co_consts, co_names, co_varnames. Reinstate cross Python 2-3 uncompiling rocky 2015-12-29 22:10:05 -05:00
  • e17d94f28f Syntax error typo rocky 2015-12-29 17:35:49 -05:00
  • 16af79f042 Make sure internObjects is (re)initialized rocky 2015-12-29 17:33:54 -05:00
  • 116263dd8c inspect.iscode -> hasattr for now until we write a cross-version iscode rocky 2015-12-29 17:05:48 -05:00
  • 34841abe14 scanner3: Python 2.6 compatibility: change set initializations. Get rid of * import opcode_*: only a little of the much-needed larger cleanup Makefile: remove 3.x bytecode checking from Python 2.x for now. DRY Makefile a little bit (but more is needed) rocky 2015-12-29 08:23:44 -05:00
  • 226f3c7e63 Python 2.6.9 compatibility rocky 2015-12-28 23:55:03 -05:00
  • f77c4b53c4 Marshal loading of = >python 3.4 from Python < 3.4 rocky 2015-12-28 14:39:15 -05:00
  • 6f0a252693 Add Python3 marshal codes and start to handle cross-version Python code object types, introducing scan.Code3 rocky 2015-12-28 12:45:23 -05:00
  • 625feb0517 Possibly closer to getting 2.7 to read 3.4 bytecode rocky 2015-12-27 22:24:30 -05:00
  • 820fdb4771 Fix up Python 2.x's ability to get code from Python 3.x's bytecode rocky 2015-12-27 19:34:44 -05:00
  • d774222eb1 defer some tests rocky 2015-12-27 17:11:58 -05:00
  • 7ec54b15d8 Merge branch 'master' of github.com:rocky/python-uncompyle6 rocky 2015-12-27 16:51:48 -05:00
  • 7c5b8d803c More tests rocky 2015-12-27 16:49:37 -05:00
  • c508413689 3.2 bytecode rocky 2015-12-27 15:19:53 -05:00
  • f859758aff Get ready for release 2.1.1 release-2.1.1 rocky 2015-12-27 12:55:43 -05:00
  • 44cd349cc7 DRY Python3 scanner code. Some cross version handling fixed. Some Python 3.2 and 3.3 deparse fixes. release-2.1.0 rocky 2015-12-27 04:32:46 -05:00
  • 276709cbb9 DRY Python3 scanner code. Some cross version handling fixed. Some Python 3.2 and 3.3 deparse fixes. rocky 2015-12-27 04:32:46 -05:00
  • 4640e7dece Running native on Python 3.3 needs more work rocky 2015-12-26 19:32:32 -05:00
  • ce8c7a4dc2 Add ok-2.7 tests for 3.4 full testing rocky 2015-12-26 19:25:46 -05:00
  • 6bd61deccc Add verify tests. Add Python 2.6 bytecode and use. rocky 2015-12-26 19:14:53 -05:00
  • 3ac3ef24ac Add node and template code to cleanup "for" handling rocky 2015-12-26 10:42:57 -05:00
  • d6ac51d0a2 Try Python 2.6 testing on travis rocky 2015-12-26 10:25:20 -05:00
  • 69a8404edb For testing we can't 3.3 bytecodes on 2.7 yet, so use 3.2 rocky 2015-12-26 10:24:02 -05:00
  • 008bd79719 Fix up Python 3.2, 3.3, and 3.4 cross-version scanners Try travis 2.6 and 3.3 rocky 2015-12-26 10:19:26 -05:00
  • e8ee3ac751 Travis: try checking 3.4 rocky 2015-12-26 07:41:58 -05:00
  • 7a2703634f Fix up looping by reinstating JUMP_ABSOLUTE -> JUMP_BACK or CONTINUE get jump offsets into jump attributes. Fix up 3.2 scanner paritally and use that in 3.4 for in cross version disassembly. rocky 2015-12-26 03:06:03 -05:00
  • fe9c8d5734 Python3 try/except handling improvements. Add Walker exception and use that: fixes erroneous uncompyle success message on parse error. rocky 2015-12-26 00:12:02 -05:00
  • 0409cee6a9 WIP redo try/except for Python3 rocky 2015-12-25 17:45:13 -05:00
  • 39f0f7440b Fix bugs in using pysource from fragments. rocky 2015-12-25 10:47:07 -05:00
  • 1d533cbb23 Two modes of disassembly, one where we show hidden code and one where we don't. rocky 2015-12-25 10:08:12 -05:00
  • 5e3b5ce786 README.rst typos release-2.0.0 rocky 2015-12-25 00:35:11 -05:00
  • ea8bea4cd8 Get ready for releaes 2.0.0 rocky 2015-12-25 00:26:34 -05:00
  • 223b028393 Port deparse test from python-deparse to py.test rocky 2015-12-25 00:02:17 -05:00
  • 1088031335 Remove Python3 class __qualname__ assignment. Change LOAD_NAME to LOAD_CLASSNAME to make parsing more reliable and intentional. rocky 2015-12-24 22:31:24 -05:00
  • c0d50c4d96 Improve Python3 class definition handling rocky 2015-12-24 19:21:36 -05:00
  • d2406e9d57 One more place for API change rocky 2015-12-24 11:50:08 -05:00
  • e3a5d487eb Show embeded timestamp of byte-decompiled file rocky 2015-12-24 11:30:57 -05:00
  • 484cd703bf Lint rocky 2015-12-23 20:11:06 -05:00
  • 0c45fcfab9 WIP: Python3 exceptions rocky 2015-12-23 20:08:07 -05:00
  • d47415a677 Start Python3 class(superclass) handling rocky 2015-12-23 15:42:52 -05:00
  • f630fe15fb parse2.py, pysource.py: add buildclass nonterminal to structure tree better and make more similar to Python3 load.py: handle magic errors better main.py: correct use when passing a .py instead of a .pyc better and a message err when file not found. pysource.py: fix up main docstring; code moved from main.py rocky 2015-12-23 13:49:56 -05:00
  • 46828cd769 Add fragmnet offsets for 'from x import..' rocky 2015-12-23 07:34:18 -05:00
  • 72acf4311f Propogate offsets in imports. Added a new %x format specifier. rocky 2015-12-22 18:00:45 -05:00
  • 35592b50ed Allow comments in grammar rules. Start working on Python3 class (not finished). More test organization. rocky 2015-12-22 11:41:10 -05:00
  • 41cceb5931 Remove Python2 buitin "print" from Python3's grammr. Start class tests rocky 2015-12-22 05:50:00 -05:00
  • 217b1b6f54 main.py, pysource.py DRY deparse_code from main. Is better on showing exception errrors such as when a pyc file is not found uncompyle6: Hook in --grammar option to showing grammar. rules. Default now does not show timestamp. rocky 2015-12-22 05:15:00 -05:00
  • 4f0fe90eef Add spark option to show grammer. Revise uncompyle options. Start to reorganize tests more rocky 2015-12-22 03:54:17 -05:00
  • d3d375d954 grammar rocky 2015-12-21 21:58:33 -05:00
  • 15e3b44d63 Add meat to CI tag rocky 2015-12-21 21:53:20 -05:00
  • db58a63e73 Use travis badge for now rocky 2015-12-21 21:39:46 -05:00
  • ce3c653b40 Make README.rst reflect current situation better rocky 2015-12-21 21:36:35 -05:00
  • 6a49cd2c69 Bug in for loop with try. Add more of 2.7's COME_FROM statements. spark.py: add tracing reduce rules. main: reduce cutsines. Start history rocky 2015-12-21 21:08:08 -05:00
  • 6b0bb124ea Start Python3 execption handling rocky 2015-12-21 15:33:10 -05:00
  • d75083c9db Regularize test names. rocky 2015-12-21 12:34:19 -05:00
  • 1456f820f2 Start Python3 slices. Split off token routine. rocky 2015-12-21 12:17:57 -05:00
  • 5dc3af3238 Start slice and build list on Python3. Do sanity check on marshal load of code. rocky 2015-12-21 06:39:01 -05:00
  • 9cdcdfd305 Part of a much needed cleanup. Move semantics routines into its own directory. Move out lots of stuff from __init__ to their own files. Add file loading tests. Document AST handling a tad more complete. rocky 2015-12-20 23:03:35 -05:00
  • 6910e1b1b4 Python 3 decompilation from Python2 rocky 2015-12-20 18:10:18 -05:00
  • 21920b5852 First list comprehensions from Python3. More test makefile hacking rocky 2015-12-20 17:16:05 -05:00
  • ba5a6e790b dissasemble_file output is needed for pytest rocky 2015-12-20 12:18:13 -05:00
  • 7880e0d7b1 Go over makefiles to make "make check" work. walker, deparser: use zip_longest rocky 2015-12-20 12:07:49 -05:00
  • aa2fc0f5a5 3.4: correct picking up parameter names on oa function call rocky 2015-12-19 20:52:18 -05:00
  • 18ce905edf Python3 compatiblity for getting precidence. n_mkfunc needs to key off of bytecode version, not running Python version. rocky 2015-12-19 18:58:30 -05:00
  • 0459b3cdc7 rSt-style linking rocky 2015-12-19 17:54:37 -05:00
  • 3b3d1c17ca Update what this is about rocky 2015-12-19 17:52:04 -05:00
  • 93ab1f0281 Python 3.4: MAKE_FUNCTION starts to work. rocky 2015-12-19 11:15:48 -05:00
  • c0fcb5fc52 Docs rocky 2015-12-19 03:14:48 -05:00
  • a75bd0bf97 Python 3 bytecode handles opcodes with varargs (better). Decompiling assert works. Add more of the simple tests and their compiled bytecode. rocky 2015-12-19 03:00:39 -05:00
  • f70641da5d disas.py: track load_module API change opcode_23.py: make it more like opcode_27.py rocky 2015-12-18 23:03:47 -05:00
  • 0a49c7a15b verify.py: Don't try to verify bytecode against compiled code if magics of running interpreter mismatch bytecode to be compared. load_module() now returns the magic found in the code object file. rocky 2015-12-18 22:04:50 -05:00
  • 6bc425b45e marshal.py: Python2 marshal code shouldn't try to turn a code object into a string. parse3.py: handle both keyword and positional function calls. scanner34.py: Remove extra level of quoting in LOAD_CONST. Keyward handling now works cross Python 2/3. Some other spelling and doc fixes. rocky 2015-12-18 21:15:54 -05:00
  • 347219a009 Python3 postional arguments. Clean up code more along the lines of uncompyle3. rocky 2015-12-18 17:07:35 -05:00
  • e5f58e8ecb disas.py: Do better for finding/turning a .py file into a .pyc file across supported versions of Python. Add for else list comprehension test rocky 2015-12-18 08:47:30 -05:00
  • 78847fe454 Restrict marshal.loads when magic is the same. This is more stringent than using the Python major/minor version rocky 2015-12-17 22:34:13 -05:00
  • 97f48f1322 Frank Ebersoll's grammar fix to make "assert isinstance(1, int)" work. rocky 2015-12-17 21:41:47 -05:00
  • 9d8f1cbf65 Remove 2.7 lib testfile pending further resolution rocky 2015-12-17 21:03:20 -05:00
  • 5b2f83cf62 correct makefile build targets rocky 2015-12-17 20:58:17 -05:00
  • 2fc2d6c699 Python 2.6 compatability via ericfrederich's patch. DRY version-checking code rocky 2015-12-17 20:48:54 -05:00
  • a309a77ea7 Python3: remove "return None" at end of main for uncompyle. Fix up verify for Python3. First automated Python 3.4 tests via "makecheck-3.4" in test directory. rocky 2015-12-17 18:49:16 -05:00
  • 29f02edf79 Add spark grammar debugging. Start to comment grammer construct covered by simple tests. rocky 2015-12-17 12:44:40 -05:00
  • 3604933a74 Python 3.4 correct grammar for some looping constructs rocky 2015-12-17 10:29:27 -05:00
  • 87a3c5d687 Python 3.4 if ifelse decompyling now works. rocky 2015-12-17 08:10:43 -05:00
  • 2dc8375ed0 Supoer multiple parsers, specifically for Python2 and Python3. In the process some OO cleanup and some global variable hacks removed. rocky 2015-12-16 22:08:29 -05:00
  • a362b47b15 Add LICENSE. Add demo programs and DRY code a little rocky 2015-12-16 16:23:18 -05:00
  • 06653a6163 On Python3.4 decompiling Python 3.4 instructions, use its built-in disassembler routines. In contrast to what was here, they most likely work! rocky 2015-12-16 09:13:14 -05:00
  • 9fecb48744 Tidy a little bit rocky 2015-12-16 01:52:11 -05:00
  • 8c94acfca0 Start 3.4 more stringent disassembly testing. Disassembly format has changed slightly. misc small bugs. rocky 2015-12-16 00:40:28 -05:00
  • 7cdfd41eff 2.7 pyc for disasm test rocky 2015-12-15 18:00:51 -05:00
  • dafca53022 Add some disassemble tests using pytest. rocky 2015-12-15 17:55:57 -05:00
  • fcfe451547 Less ignore. Not sure what's up with not finding marsh in python3 rocky 2015-12-15 12:34:49 -05:00
  • 0c17af5def disasm is unused code. More ignore. rocky 2015-12-15 12:15:00 -05:00
  • 683c75d37e Split out marhsal and disassemble code and spell disassemble correctly. Fix some lint issues rocky 2015-12-15 12:10:03 -05:00