Compare commits

...

1075 Commits

Author SHA1 Message Date
rocky
e12d840447 2.x tolerance 2024-03-16 03:30:39 -04:00
rocky
83f3424d26 Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-03-15 23:13:28 -04:00
rocky
db53037b56 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-15 23:12:35 -04:00
rocky
9128813798 Merge branch 'master' into python-3.3-to-3.5 2024-03-15 23:12:22 -04:00
rocky
b7eae4f360 Get ready for release 3.9.1 2024-03-15 23:09:33 -04:00
rocky
4ddb1565aa Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-03-15 23:02:48 -04:00
rocky
aeb9b2e665 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-15 22:51:26 -04:00
rocky
75d90b933c Merge branch 'master' into python-3.3-to-3.5 2024-03-15 22:43:29 -04:00
rocky
3aed87ac5e Get ready for release 3.9.1 2024-03-15 22:40:13 -04:00
rocky
af873f1e88 Merge branch 'master' into python-3.3-to-3.5 2024-03-15 22:38:54 -04:00
rocky
ee72f6d685 Get ready for release 3.9.1 2024-03-15 22:32:29 -04:00
rocky
bec88e4aaa Name phases "disassembly" and "tokenization" 2024-03-14 15:31:53 -04:00
rocky
8d6d8b31e0 Merge branch 'master' into python-3.3-to-3.5 2024-03-14 15:27:52 -04:00
rocky
85e5d72529 Adjust setup message 2024-03-14 15:21:14 -04:00
rocky
274d5e9405 Adjust setup.p 2024-03-14 15:19:50 -04:00
rocky
88ea782ced Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-14 15:18:49 -04:00
rocky
7209405b2c Adjust setup to correct version 2024-03-14 15:17:37 -04:00
rocky
b88af23406 Mis spelling corrections 2024-03-14 05:39:30 -04:00
rocky
c151085387 Merge hell 2024-03-13 21:44:41 -04:00
rocky
493694024d Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-03-13 21:44:34 -04:00
rocky
2e7029ce07 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-13 21:42:42 -04:00
rocky
a8f89fa006 Merge branch 'master' into python-3.3-to-3.5 2024-03-13 21:41:58 -04:00
rocky
daf54d2740 2.6 scanner show -A headers now 2024-03-13 21:39:35 -04:00
rocky
5dd265021f Add --asm++ or -A option 2024-03-13 21:34:47 -04:00
rocky
ed205650e0 Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-03-13 21:14:00 -04:00
rocky
fcccf5bb97 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-13 21:11:57 -04:00
rocky
dc79ec3a25 Correct variable name 2024-03-13 21:09:25 -04:00
rocky
252f18400c Merge branch 'master' into python-3.3-to-3.5 2024-03-13 21:09:07 -04:00
rocky
bf59e3c65e Small variable name fix 2024-03-13 21:08:08 -04:00
rocky
bb5bec29f7 Merge branch 'master' into python-3.3-to-3.5 2024-03-13 21:06:58 -04:00
rocky
628b18fce7 rename assembly phases and tweak a err msg...
before tokenization -> disassembly
after tokenization -> tokenization
2024-03-13 21:02:27 -04:00
rocky
ebe0137b2d Merge hell 2024-03-08 04:41:46 -05:00
rocky
3b1742e779 Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-03-08 04:41:40 -05:00
rocky
f671aeee5d Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-08 04:36:33 -05:00
rocky
ad92f53e39 Merge branch 'master' into python-3.3-to-3.5 2024-03-08 04:35:18 -05:00
R. Bernstein
e6ff6033cf Merge pull request #489 from rocky/withasstmt-to-with_as
withasstmt -> with_as
2024-03-08 04:12:55 -05:00
rocky
156188f8bb withasstmt -> with_as
This matches Python's AST naamae better. Some linting and
sorting of dictionary keys done as well.
2024-03-08 04:10:33 -05:00
R. Bernstein
3724e02183 Merge pull request #488 from rocky/with-as-with-pass
Add context manager test...
2024-03-07 18:53:14 -05:00
rocky
8542df4639 Add context manager test...
handle degenerate 3.8 withas
2024-03-07 18:08:07 -05:00
R. Bernstein
b5c4e4b28b Merge pull request #487 from rocky/withasstmt-no-parens
simplify withas (for now)
2024-03-06 17:41:42 -05:00
rocky
f1169af582 simplify withas (for now) 2024-03-06 17:19:57 -05:00
rocky
40f9b523b0 Merge hell 2024-03-02 12:20:57 -05:00
rocky
5681100764 Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-03-02 12:20:41 -05:00
rocky
fb9260c6ec Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-02 12:03:35 -05:00
rocky
5c0fd39e0b Merge branch 'master' into python-3.3-to-3.5 2024-03-02 12:03:15 -05:00
rocky
33f49849f5 Add some 3.3 and 3.4 stdlib tests back in 2024-03-02 12:02:40 -05:00
rocky
7a05a36f63 Merge branch 'master' into python-3.3-to-3.5 2024-03-02 11:54:53 -05:00
rocky
c499d0a60a Fix in 3.3 subclass detection in class closures 2024-03-02 11:54:11 -05:00
rocky
dfe9d3c34c Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-03-02 07:11:50 -05:00
rocky
d9907350b7 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-02 07:11:16 -05:00
rocky
28e33f4b92 Merge branch 'master' into python-3.3-to-3.5 2024-03-02 07:04:36 -05:00
rocky
d2d4367dae Add 3.3 bytecode testing..
Also, correct ifelse detection in 3.3
2024-03-02 07:01:40 -05:00
rocky
30463f75d6 2.4 tolerance (remove annotations) 2024-03-02 05:38:38 -05:00
rocky
40e64ba3e0 Merge hell 2024-03-02 05:31:19 -05:00
rocky
0993bb026b Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-03-02 05:31:10 -05:00
rocky
371b5c7600 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-02 05:19:30 -05:00
rocky
29e413c13c Merge branch 'master' into python-3.3-to-3.5 2024-03-02 05:19:12 -05:00
rocky
c591f4e6e6 Administrivia 2024-03-02 05:18:56 -05:00
rocky
0645cdfcb6 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-03-02 05:07:27 -05:00
rocky
7c91694cf9 merge hell 2024-03-02 05:07:12 -05:00
rocky
ac9c7d1047 Merge branch 'master' into python-3.3-to-3.5 2024-03-02 05:07:05 -05:00
rocky
69c5d463e6 Add liberapay name 2024-03-02 04:59:20 -05:00
rocky
830a2ebf44 Sync with decompyle3 2024-03-02 04:32:26 -05:00
rocky
e3be41164e Add pop return check from decompyle3 2024-02-25 08:34:13 -05:00
rocky
08009f9fc7 improve list comprehensions 2024-02-25 08:19:18 -05:00
rocky
3721722764 Merge branch 'master' into python-3.3-to-3.5 2024-02-25 06:41:50 -05:00
rocky
d3ed646a8e Make a pass over 3.2 stdlib exclusions 2024-02-25 06:41:25 -05:00
rocky
a5f28e94bf Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-25 06:14:44 -05:00
rocky
2db15210c9 Merge branch 'master' into python-3.3-to-3.5 2024-02-25 06:12:05 -05:00
rocky
d9ff58391f Admnistrivia 2024-02-25 06:11:50 -05:00
rocky
58f9935bd6 Merge branch 'master' into python-3.3-to-3.5 2024-02-25 06:09:10 -05:00
rocky
404517e426 Admnistrivia 2024-02-25 06:09:01 -05:00
rocky
2b8406e7a8 mark "psuedo ops" 2024-02-25 06:08:06 -05:00
rocky
4a50de38e4 sync with other versions 2024-02-24 18:31:57 -05:00
rocky
9fd139a41d changes from other branches 2024-02-24 18:26:37 -05:00
rocky
6c26f3fb8d ADD_VALUE types 2024-02-24 18:23:30 -05:00
rocky
f9eb15582a Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-02-24 18:22:34 -05:00
rocky
518bedb1d9 ADD_VALUE attributes 2024-02-24 18:07:28 -05:00
rocky
c4791885ff Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-24 17:45:42 -05:00
rocky
e4127b34a5 Merge branch 'master' into python-3.3-to-3.5 2024-02-24 17:44:16 -05:00
rocky
8a1fd7e127 Keep optype info in token...
It is useful for ADD_VALUE
2024-02-24 17:41:32 -05:00
rocky
d2a171609e Remove messed-up show_tree call 2024-02-24 12:56:30 -05:00
rocky
76039a229d Go over 2.6 excludes 2024-02-24 12:12:06 -05:00
rocky
f3b3733f15 Go over 2.6 excludes 2024-02-24 12:09:39 -05:00
rocky
136eb6b104 Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-02-24 10:28:24 -05:00
rocky
f540f681c1 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-24 10:27:33 -05:00
rocky
df6f39cb26 Merge branch 'master' into python-3.3-to-3.5 2024-02-24 10:27:03 -05:00
rocky
27dfb956d5 Administrivia 2024-02-24 10:26:45 -05:00
rocky
6d4d3df659 Administrivia 2024-02-24 10:26:02 -05:00
rocky
9ceb9eb9ac Administrivia 2024-02-24 10:25:10 -05:00
rocky
5a367717fa Merge hell 2024-02-24 10:14:31 -05:00
rocky
f7b0e895ed Fix bug ADD_VALUE for tuples 2024-02-24 08:13:25 -05:00
rocky
50f3c64277 Administrivia 2024-02-24 07:44:24 -05:00
rocky
76bca014dc Merge hell 2024-02-24 07:24:14 -05:00
rocky
aa5911c574 Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-02-24 07:23:46 -05:00
rocky
6cf305f7ef Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-24 07:21:21 -05:00
rocky
e77ccba40e Merge hell 2024-02-24 07:15:47 -05:00
rocky
2fcb7a62e1 Merge branch 'master' into python-3.3-to-3.5 2024-02-24 07:12:07 -05:00
rocky
1ef631dd76 Track change in xdis Instruction ...
we now need to set positions which will be used in newer Pythons.
2024-02-18 21:13:30 -05:00
rocky
3e00880c1b remove double-quote preference here....
it is now done in xdis which is where it is better done
2024-02-18 08:21:07 -05:00
rocky
40c4764492 prefer string double quote, yet again. 2024-02-17 20:37:12 -05:00
rocky
8c3143ce4c Sync with decompyle3 2024-02-17 20:14:30 -05:00
rocky
0a08b8d3fc Simplify double quote preference in string 2024-02-17 19:46:57 -05:00
rocky
028d87ddde Merge hell 2024-02-17 15:27:15 -05:00
rocky
b538da1e5f Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-02-17 15:24:29 -05:00
rocky
40ab77c7ba Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-17 15:23:02 -05:00
rocky
afb79f84e2 No f-string in this branch 2024-02-17 15:22:02 -05:00
rocky
1f462cf503 Merge branch 'master' into python-3.3-to-3.5 2024-02-17 15:21:08 -05:00
rocky
9f9f6de983 Administrivia
Don't use finish in sourced admin programs
2024-02-17 15:14:51 -05:00
rocky
f94100d24c sync with decompile3 2024-02-17 15:09:00 -05:00
rocky
3ef4ab4944 Prefer using double quote for strings 2024-02-17 12:57:48 -05:00
rocky
60ca6f485b More administrivia 2024-02-12 09:06:57 -05:00
rocky
7f30699f95 Merge branch 'python-3.0-to-3.2' into python-2.4-to-2.7 2024-02-12 08:58:09 -05:00
rocky
288b9b5c60 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-12 08:51:01 -05:00
rocky
c0a86e6b9f Merge branch 'master' into python-3.3-to-3.5 2024-02-12 08:50:38 -05:00
rocky
909ec81b55 More administrivia 2024-02-12 08:50:31 -05:00
rocky
05ebaf9ec1 More administrivia 2024-02-12 08:46:16 -05:00
rocky
aa8bcb6621 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-12 08:17:29 -05:00
rocky
94e57f3ccf Merge branch 'master' into python-3.3-to-3.5 2024-02-12 08:17:09 -05:00
rocky
e73cd749e7 More administrivia -
go over git branch checkout programs
2024-02-12 08:16:13 -05:00
rocky
1ed2b92988 Administrivia
rename branch to python-2.4-to-2.7
2024-02-12 08:07:54 -05:00
rocky
a1ffe3e106 Make uncompyle6 CLI work again 2024-02-12 05:16:59 -05:00
rocky
fe5f99ca98 Merge branch 'python-3.0-to-3.2' into python-2.4 2024-02-12 01:43:52 -05:00
rocky
a6eda99713 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-12 01:40:14 -05:00
rocky
4cf0f83257 Merge branch 'master' into python-3.3-to-3.5 2024-02-12 01:38:59 -05:00
rocky
02ed25e7cb Bugs found in 3.0 decomplation...
parsers/parse30.py; fix set comprehension grammar bug
uncompyle6/semantics/n_actions.py: evidence of the evils of modifying node data (via node.pop)
2024-02-12 00:58:42 -05:00
rocky
35f9020871 Adjust for 3.0..3.1 branch 2024-02-12 00:29:18 -05:00
rocky
497e2df88a Merge hell 2024-02-11 23:54:51 -05:00
rocky
a51cd0df5d Merge branch 'python-3.0-to-3.2' into python-2.4 2024-02-11 23:52:59 -05:00
rocky
297c65d485 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-11 23:41:27 -05:00
rocky
950dd05791 Merge hell 2024-02-11 23:40:42 -05:00
rocky
e9ff6136b5 Merge branch 'master' into python-3.3-to-3.5 2024-02-11 23:40:30 -05:00
R. Bernstein
ca04ae98f7 Merge pull request #483 from rocky/xdis-fix-woes
Xdis fix woes
2024-02-11 23:28:43 -05:00
rocky
2886d2bd08 Track important changes to xdis
Annotation counts have changed.
EXTENDED_ARGS adjustment in instructions have been corrected.
2024-02-11 23:24:19 -05:00
rocky
8348d86b09 Better annotation parsing for < 3.6 2024-02-11 19:46:13 -05:00
rocky
f9f5a64c87 Attempt to fix annotation bugs 2024-02-11 19:14:50 -05:00
rocky
c7b71b4e34 Merge branch 'python-3.0-to-3.2' into python-2.4 2024-02-11 12:36:17 -05:00
rocky
4372ab86d3 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-11 12:34:42 -05:00
rocky
a4971ee27d Remove f-strings from merge from master 2024-02-11 12:33:54 -05:00
rocky
70690f2ede Sync with master 2024-02-11 12:19:27 -05:00
rocky
ab1b81a8da Merge branch 'python-3.0-to-3.2' into python-2.4 2024-02-11 12:18:39 -05:00
rocky
53bb14426b Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-11 11:58:00 -05:00
rocky
82a64b421d Handle annotations properly 2024-02-11 11:57:18 -05:00
rocky
c048b26d4e Merge branch 'master' into python-3.3-to-3.5 2024-02-11 11:57:12 -05:00
rocky
454fac4adb Handle 3.3 MAKE_FUNCTION annotation args properly 2024-02-11 11:50:25 -05:00
rocky
ece788e09e Merge hell 2024-02-11 09:18:43 -05:00
rocky
d8e212c9ea Merge branch 'master' into python-3.3-to-3.5 2024-02-11 09:11:03 -05:00
rocky
147155e1d5 Administrivia:
automate merging
2024-02-11 08:42:32 -05:00
rocky
f1bf86088e Sync with decompyle3 2024-02-10 21:06:05 -05:00
rocky
c8b92e2275 Add needed newline separating abstract tree 2024-02-10 20:04:18 -05:00
rocky
5d8c40358e showtree workaround until we have better sync..
with decompyle3
2024-02-10 16:29:59 -05:00
rocky
dd8ee1466d Redo uncompyel6 options ...
Use click now and make more like decompyle3
2024-02-10 13:24:09 -05:00
R. Bernstein
d7a1d5bbad Merge pull request #482 from rocky/sync-with-decompile3
Sync with decompile3
2024-02-05 17:10:13 -05:00
rocky
61105840af Sync with decompyle3 2024-02-05 17:06:47 -05:00
rocky
f605f859ae Partial sync with decompyle3 2024-02-05 16:57:59 -05:00
rocky
33bc80bb24 f-string convert a file 2024-02-05 16:26:59 -05:00
rocky
86e22bbacb One more 2024-02-05 16:20:15 -05:00
rocky
f7436a4ff2 More lint 2024-02-05 16:17:48 -05:00
rocky
d01a047dfd More 2-x grammar test fixes 2024-02-04 15:05:47 -05:00
rocky
ad16ed69eb Go over 2.x grammar testing 2024-02-04 14:54:07 -05:00
rocky
9c5addc0f0 Python 2.5 compatability 2024-02-04 13:56:28 -05:00
rocky
aadc66fe4a Merge branch 'python-3.0-to-3.2' into python-2.4 2024-02-04 13:18:47 -05:00
rocky
a1f463982f Black one more file 2024-02-04 12:40:25 -05:00
rocky
ec4f98af63 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2024-02-04 12:39:44 -05:00
rocky
1e72250f79 Merge branch 'master' into python-3.3-to-3.5 2024-02-04 12:37:14 -05:00
rocky
42ed183dbb Fix imports 2024-02-04 12:36:08 -05:00
rocky
ef92f08f56 Black files 2024-02-04 12:29:30 -05:00
rocky
bdc751f444 Merge branch 'master' into python-3.3-to-3.5 2024-02-04 12:25:41 -05:00
rocky
b0e139e6cc Partial merge 2024-02-04 12:16:17 -05:00
rocky
c25962b998 Fix wrong number of Instruction parameters 2024-02-03 23:12:18 -05:00
rocky
956829d974 Correct imports 2024-02-03 23:06:07 -05:00
rocky
e65a2db971 Small tweak 2024-02-03 18:40:38 -05:00
rocky
9f9074c285 Add a type annotation 2024-02-03 15:43:07 -05:00
rocky
9772454a3b Sync fragments with decompyle3 2024-02-03 15:28:48 -05:00
rocky
f7caf9b675 Remove strayh blank line 2024-02-03 15:15:55 -05:00
rocky
5f29d14608 Fix --linemap option, yet again. 2024-02-03 15:08:58 -05:00
rocky
1e95ebd5f6 Bump 3.8 version to latest 2024-02-03 14:49:56 -05:00
rocky
db6c7159f8 lint 2024-02-03 14:47:08 -05:00
rocky
9839cfe93b Add pre-commit hook 2024-02-03 12:44:30 -05:00
rocky
d249c522a7 Fix up linemap option 2024-02-03 12:37:48 -05:00
R. Bernstein
675206911a Merge pull request #480 from jwilk-forks/spelling
Fix typos
2024-01-19 18:16:30 -05:00
Jakub Wilk
7a2348e4cc Fix typos 2024-01-19 23:20:13 +01:00
rocky
dcc9d1a571 Fix spelling via "codespell" 2023-12-17 10:52:32 -05:00
R. Bernstein
e9120eab45 Update HOW-TO-REPORT-A-BUG.md
grammar typo
2023-10-14 18:38:21 -04:00
rocky
77d727541b Note -F -extended in pydisasm 2023-10-10 09:20:18 -04:00
rocky
0ea75cadca Small bit of linting 2023-10-06 02:44:41 -04:00
rocky
0c18d35043 Bump python master version default 2023-09-29 22:08:28 -04:00
rocky
34ef91312e Revise to not zip attachment expected 2023-09-03 09:36:06 -04:00
rocky
803678e9b4 Track recent xdis changes 2023-08-26 14:39:42 -04:00
rocky
20c58e2e2a Small semantic action acceptance change 2023-08-26 14:15:23 -04:00
rocky
9829e04611 Bug in collection printing ...
`"%s" % value` can fail if value is a tuple
2023-08-17 19:35:08 -04:00
R. Bernstein
c58e6efa3d Merge pull request #471 from rocky/add-ending_return
Simpilfy grammar via ending_return
2023-08-13 07:56:33 -04:00
rocky
c0957d956f Simpilfy grammar via ending_return 2023-08-13 07:50:13 -04:00
rocky
b3ddf95d7a comprehension in lambda for 3.0 & 3.1 2023-08-12 07:12:10 -04:00
rocky
d1dc5a404c Merge branch 'master' into python-3.3-to-3.5 2023-08-12 06:38:56 -04:00
R. Bernstein
9a14d2dea8 Merge pull request #470 from rocky/comprehension-in-lambda-parsing-bug
Handle comprehensions inside a lambda
2023-08-12 06:38:28 -04:00
rocky
f50086f1da Remove type annotation 2023-08-11 14:26:41 -04:00
rocky
6dcb20341b Merge branch 'python-3.0-to-3.2' into python-2.4 2023-08-11 14:24:10 -04:00
rocky
ae75b4f677 Merge branch 'comprehension-in-lambda-parsing-bug' into python-3.3-to-3.5 2023-08-11 14:20:58 -04:00
rocky
20af515dda Handle comprehensions inside a lambda 2023-08-11 12:13:46 -04:00
R. Bernstein
48a0a411b8 Merge pull request #468 from rocky/ifstmt-reduce-check-bug
Fixes #467
2023-08-09 05:39:23 -04:00
rocky
8865599145 Fixes #467 2023-08-09 04:48:42 -04:00
rocky
4aa7f1ce67 Merge branch 'python-3.0-to-3.2' into python-2.4 2023-07-29 13:03:38 -04:00
rocky
3a178836a6 Fix a small default-value bug 2023-07-29 13:00:21 -04:00
rocky
18f253ffbe 3.3 compatibility 2023-07-29 12:57:52 -04:00
rocky
6b01da76ea Merge branch 'master' into python-3.3-to-3.5 2023-07-29 12:57:37 -04:00
R. Bernstein
2ff80c040c Merge pull request #465 from rocky/chained-compare-rename
Chained compare rename
2023-07-29 12:15:25 -04:00
rocky
ddeb5af6d6 compare_chained2 _> compare_chained_right 2023-07-29 12:09:25 -04:00
rocky
843e3585e2 chained-compare1 -> chained-compare-middle 2023-07-29 12:01:14 -04:00
rocky
ea76de02bd Tweak bug-report 2023-07-07 10:13:14 -04:00
rocky
3a8f3e550d Include xdis version in bug report 2023-07-05 07:59:04 -04:00
rocky
227f494fa8 Double -a option show asm before tokenization 2023-07-04 07:13:54 -04:00
rocky
99f054ea9d Forgot to include 3.3 in recent generator fix 2023-07-01 23:22:57 -04:00
rocky
96fd3312a6 Merge from 3.0 branch 2023-07-01 10:58:29 -04:00
rocky
489d479bd0 Merge branch 'python-3.0-to-3.2' into python-2.4 2023-07-01 10:54:04 -04:00
rocky
f55febfbf0 Merge from master 2023-07-01 10:34:04 -04:00
rocky
df1772164c Merge from master 2023-07-01 10:33:04 -04:00
rocky
d6608712f1 correct fn name on older 3.x cross decompile...
Also black, lint, and isort some
2023-06-30 20:30:06 -04:00
rocky
dc286b91c8 pip woes 2023-06-30 16:46:03 -04:00
rocky
120b66b89e Try Python 3.8 as base image 2023-06-30 16:41:32 -04:00
rocky
1c28bc1c82 Update Python version and exdis version 2023-06-30 16:38:43 -04:00
R. Bernstein
3f21b2a115 Update build to large resource class in config.yml 2023-06-30 16:34:55 -04:00
rocky
a57ff9227d merge with 3.0 branch 2023-06-30 16:20:48 -04:00
rocky
69823fbff4 Merge branch 'python-3.0-to-3.2' into python-2.4 2023-06-30 16:20:42 -04:00
rocky
47f0d5cd69 Merge with master 2023-06-30 16:00:54 -04:00
rocky
4b296e1ead Correct generator function parsing for 3.3..3.5 2023-06-30 15:43:27 -04:00
rocky
aae7777d92 Merge conflicts 2023-06-30 02:28:23 -04:00
rocky
2bfd0434a7 Merge branch 'python-3.0-to-3.2' into python-2.4 2023-06-30 02:28:10 -04:00
rocky
4bd6e609dd formatting 2023-06-30 02:05:55 -04:00
rocky
0897d47afa Merge branch 'master' into python-3.3-to-3.5 2023-06-30 01:57:41 -04:00
rocky
828b1c989d Fix fragment bugs
mostly with respect to show_ast handling
2023-06-29 15:56:53 -04:00
rocky
568b64b59e Allow decompilation of older bytecode from 3.9+ 2023-06-16 07:30:25 -04:00
rocky
36f00d334e Revert last change. 2023-06-16 07:10:37 -04:00
rocky
b0086460de Exit when version is not supported 2023-06-15 21:32:17 -04:00
rocky
41d26bde79 Lint some files 2023-05-29 11:00:44 -04:00
rocky
ebcc12e2c3 Misc lint things 2023-05-29 10:36:50 -04:00
rocky
286bb5948c Go over bug-report template 2023-04-30 22:19:27 -04:00
rocky
c01ab5e001 Tweaks to long-literal handling...
* Use version tuple comparison for version testing
* small lintin of n_actions
* revise test so assert is not removed in 3.8
2023-04-19 02:08:36 -04:00
R. Bernstein
6f3fe06594 Merge pull request #452 from andrem-eberle/master
Proposed fix for the extra quotes
2023-04-19 02:01:45 -04:00
Andre Eberle
54776275c0 Modified n_actions.py to issue __repr__ on py2 and __str__ py3, should fix the extra quotes 2023-04-18 00:12:00 -04:00
rocky
22373b4195 Update 2.5 stdlib excludes 2023-04-17 23:35:00 -04:00
rocky
d0714edfe6 Update 2.{4,5} stdlib excludes 2023-04-17 23:33:33 -04:00
rocky
9746b21bbf Update 2.7 literal test 2023-04-17 23:20:42 -04:00
rocky
d2fc7d2dd3 Merge branch 'python-3.0-to-3.2' into python-2.4 2023-04-17 23:18:06 -04:00
rocky
b7ad271aa2 Revert 3.6ish type annotation 2023-04-17 23:09:21 -04:00
rocky
060c8df174 Merge branch 'master' into python-3.3-to-3.5 2023-04-17 23:07:38 -04:00
R. Bernstein
2f650a6969 Merge pull request #451 from andrem-eberle/master
Tentative fix for #439
2023-04-17 19:32:33 -04:00
Andre Eberle
4d420e2e37 Typo in comments 2023-04-17 19:26:35 -04:00
Andre Eberle
d1ef91dd49 Added tests for issue #439, global/const issues 2023-04-17 19:20:37 -04:00
Andre Eberle
3314c0d222 Fix to the ADD_VALUE_x opcodes 2023-04-17 18:53:51 -04:00
R. Bernstein
3d5e2201d2 Merge pull request #449 from rocky/correct-aboslute-import-and-docstring
Correct a couple of bugs...
2023-04-17 16:45:31 -04:00
rocky
7ad0c37c62 Correct a couple of bugs...
We weren't distinguising relative imports from absolute imports.
Fixes #444

Picking out docstring was broken too.
2023-04-17 16:35:27 -04:00
R. Bernstein
b6aa58790f Merge pull request #446 from rocky/do-not-quote-non-str-args
Use xdis pattr extraction for LOAD_NAME
2023-04-16 15:47:53 -04:00
rocky
ad00b9a4ee Use xdis pattr extraction for LOAD_NAME 2023-04-15 07:31:35 -04:00
rocky
551e428086 Go over stdlib test for 2.{6,7} 2023-04-08 22:10:21 -04:00
rocky
0b06b6943a Go over stdlib test for 2.{6,7} 2023-04-08 22:09:34 -04:00
rocky
82afbb5e98 Merge branch 'python-3.0-to-3.2' into python-2.4 2023-04-08 21:53:12 -04:00
rocky
dba73d6f02 Merge branch 'master' into python-3.3-to-3.5 2023-04-08 21:49:22 -04:00
R. Bernstein
cd0049933f Merge pull request #440 from andrem-eberle/master
Tentative fix for issue #437.
2023-04-08 20:37:31 -04:00
Andre Eberle
7f3c1fa3a4 Tentative fix for issue #437. I added a new set of rules in ifelsestmt.py to check against for offsets. Seems to have fixed current issue. The result output is switching nested if-else-if-else-etc to a chain of if-elif-elif now, but semantically seems correct. 2023-04-08 16:54:55 -04:00
rocky
078c1ffd16 merge stuff 2023-03-25 02:45:42 -04:00
rocky
70073e89bf Merge branch 'python-3.0-to-3.2' into python-2.4 2023-03-25 02:45:06 -04:00
rocky
be855a3001 Renstate some code 2023-03-25 02:35:59 -04:00
rocky
0b8edba0dd Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2023-03-25 02:28:32 -04:00
rocky
5a2e5cf6bb Merge branch 'master' into python-3.3-to-3.5 2023-03-25 02:27:59 -04:00
rocky
655ab203ea Merge branch 'master' into python-3.3-to-3.5 2023-03-25 02:22:59 -04:00
rocky
f76c35c902 Slightly nicer docstring detection for closure 2023-03-25 02:20:26 -04:00
rocky
82963cdf2c Preserve docstring in closures..
This change synchronized from decompyle3
2023-03-24 20:31:49 -04:00
rocky
a20972dd12 xdis PYTHON_VERSION removal 2023-02-26 19:29:08 -05:00
rocky
18b5934b2d Allow xdis 6.1.0 2023-02-26 19:21:30 -05:00
rocky
793e9ced6a Merge branch 'master' into python-3.3-to-3.5 2023-01-24 21:49:38 -05:00
R. Bernstein
982abe0980 Merge pull request #430 from rocky/sync-with-decompyle3
Synch with decompyle3 code a little bit
2023-01-19 05:10:20 -05:00
rocky
41d1ba31f3 Synch with decompyle3 code a little bit 2023-01-19 04:31:19 -05:00
rocky
e03f4cfe43 Try adding no blank templates 2023-01-18 22:23:06 -05:00
R. Bernstein
53a5e03a8f Merge pull request #429 from rocky/reinstate-pos-args
Reinstate pos_args in CALL_METHOD
2023-01-18 21:23:23 -05:00
rocky
7c99564640 Reinstate pos_args in CALL_METHOD 2023-01-18 21:01:11 -05:00
rocky
931abc5726 self.opc.version -> self.opc.version_tuple
The next release of xdis will no longer support self.opc.version (a
float value which doesn't work in the presense of 3.10 and above)
2023-01-18 17:08:39 -05:00
rocky
c4e7e99185 Remove runtests testing for now 2023-01-16 11:42:50 -05:00
rocky
b50ca11709 Disable runtests-circleci for now 2023-01-16 10:35:42 -05:00
rocky
078d306aca Try for special CircleCI runtests 2023-01-16 10:30:28 -05:00
rocky
1345e6fc24 Fixup runtests for CIRCLECI 2023-01-16 09:42:14 -05:00
rocky
2580e20469 Update 2.4 CircleCI branch 2023-01-16 09:35:53 -05:00
rocky
ee7fda2869 Remove a CircleCI test for 3.0-3.2...
until we can find an image that might run this
2023-01-16 09:03:14 -05:00
rocky
f2d141c466 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2023-01-16 03:51:43 -05:00
rocky
cb7bbbb2e1 Merge branch 'master' into python-3.3-to-3.5 2023-01-16 03:51:18 -05:00
rocky
2b3cd696db 3.0 set comprehension bug 2023-01-16 03:50:50 -05:00
rocky
d7fdafc1f7 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2023-01-16 03:41:55 -05:00
rocky
1cac7d50c1 Merge branch 'master' into python-3.3-to-3.5 2023-01-16 03:41:25 -05:00
rocky
50697bb79e Improve set comprehension for Python 3.0 2023-01-16 03:40:55 -05:00
rocky
4171dfc7e9 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2023-01-16 02:12:43 -05:00
R. Bernstein
137dd64a46 Merge pull request #427 from rocky/make-fn-or-closure-with-annotatation
try to be more honest about MAKE_{FUNCTION,CLOSURE}
2023-01-16 02:12:13 -05:00
rocky
df7310e8ca Merge branch 'make-fn-or-closure-with-annotatation' into python-3.3-to-3.5 2023-01-16 02:11:16 -05:00
rocky
8479e66add Annotate arg parsing 2023-01-16 01:22:39 -05:00
rocky
4281083641 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2023-01-14 10:04:43 -05:00
rocky
5102e5f6e0 Merge hell 2023-01-14 10:02:01 -05:00
rocky
bee35aa05d Merge branch 'master' into python-3.3-to-3.5 2023-01-14 10:01:57 -05:00
rocky
4828ae99a3 Merge branch 'master' into python-3.3-to-3.5 2023-01-14 09:43:28 -05:00
rocky
26b60f6fb8 Handle Python 3.4 MAKE_CLOSURE fns ...
Is done just like Python 3.3
2023-01-14 09:42:16 -05:00
rocky
18133794e6 Merge branch 'master' into python-3.3-to-3.5 2023-01-14 08:40:54 -05:00
rocky
499acce8e6 Merge branch 'master' into python-3.3-to-3.5 2023-01-14 00:06:14 -05:00
rocky
aa1e6a7567 Old egg build tolerance 2022-12-22 23:48:19 -05:00
rocky
9e2ba8f01d Merge branch 'python-3.3-to-3.5' into python-2.4 2022-12-22 23:39:16 -05:00
rocky
3ea0d67be9 Add check program for Python 3.3-3.5 2022-12-22 23:33:49 -05:00
rocky
f41a16b7e9 Merge branch 'master' into python-3.3-to-3.5 2022-12-22 23:21:59 -05:00
rocky
6ba779b915 Get ready for release 3.9.0 2022-12-22 23:12:54 -05:00
rocky
c07814538c Merge branch 'python-3.0-to-3.2' into python-2.4 2022-12-01 17:48:51 -05:00
rocky
2b9887ce9b x#Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2022-12-01 17:42:44 -05:00
rocky
86ba02d5f2 Merge branch 'master' into python-3.3-to-3.5 2022-12-01 17:36:30 -05:00
rocky
7e362a8635 Merge branch 'python-3.0-to-3.2' into python-2.4 2022-11-27 05:11:09 -05:00
rocky
d42fee1b50 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2022-11-27 05:02:42 -05:00
rocky
54e9de4a7d Merge branch 'master' into python-3.3-to-3.5 2022-11-27 05:01:44 -05:00
rocky
e0aa4e9fad Merge branch 'python-3.0-to-3.2' into python-2.4 2022-11-05 10:39:24 -04:00
rocky
f8798945ab Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2022-11-05 10:37:51 -04:00
rocky
c1a5d3ce8d Merge branch 'master' into python-3.3-to-3.5 2022-11-05 10:32:52 -04:00
rocky
a941326a30 Add generator expression Python 3.0 .. 3.2 2022-11-05 10:13:21 -04:00
rocky
555fbe81da Tidy else if -> elif 2022-11-05 00:37:07 -04:00
rocky
bef6ba7445 Merge branch 'python-3.0-to-3.2' into python-2.4 2022-11-05 00:32:35 -04:00
rocky
5b36e45805 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2022-11-05 00:28:40 -04:00
rocky
a774cc1892 Merge branch 'master' into python-3.3-to-3.5 2022-11-05 00:27:57 -04:00
rocky
e03274c78c Fix another 3.0 list comprehension parse 2022-11-05 00:25:32 -04:00
rocky
c2ed6776e6 Merge branch 'python-3.0-to-3.2' into python-2.4 2022-11-04 02:07:03 -04:00
rocky
5ff3a54ed7 Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2022-11-04 02:06:36 -04:00
rocky
1323500a76 Merge branch 'master' into python-3.3-to-3.5 2022-11-04 02:06:00 -04:00
rocky
9923a4c775 More 3.0 lambda comphension fixes 2022-11-04 02:02:34 -04:00
rocky
69c5954815 Sync with python-3.0-3.2 branch 2022-11-04 01:00:20 -04:00
rocky
d14365766f Merge branch 'python-3.0-to-3.2' into python-2.4 2022-11-04 00:59:47 -04:00
rocky
dd20a38412 Sync with python-3.3-3.5 branch 2022-11-04 00:57:24 -04:00
rocky
b83bcb871a Merge branch 'python-3.3-to-3.5' into python-3.0-to-3.2 2022-11-04 00:56:50 -04:00
rocky
076a40c06d Merge branch 'master' into python-3.3-to-3.5 2022-11-04 00:54:56 -04:00
rocky
504845668c Merge branch 'master' into python-3.3-to-3.5 2022-11-04 00:50:01 -04:00
rocky
375101d960 Merge branch 'master' into python-3.3-to-3.5 2022-11-04 00:47:00 -04:00
rocky
2a393a408b Handle 3.0 list comprehensions properly 2022-11-04 00:36:22 -04:00
rocky
e596fb0917 Allow running from 3.0 2022-11-03 16:20:52 -04:00
rocky
2f3ffd5044 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-11-03 15:26:21 -04:00
rocky
0ce23288cb Merge branch 'master' into python-3.3-to-3.5 2022-11-03 15:23:32 -04:00
rocky
8776657302 Merge branch 'master' into python-2.4 2022-10-16 19:36:53 -04:00
rocky
1ecceb6471 Merge branch 'master' into python-3.3-to-3.5 2022-10-16 19:34:23 -04:00
rocky
8c60166cf6 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-10-16 18:26:35 -04:00
rocky
7d1b306b10 Merge branch 'master' into python-3.3-to-3.5 2022-10-16 18:25:32 -04:00
rocky
7cf4e31101 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-10-16 17:53:19 -04:00
rocky
7ce05a1934 Merge branch 'master' into python-3.3-to-3.5 2022-10-16 17:51:46 -04:00
rocky
b89409a6d0 Go over 2.7 stdlib exclusions 2022-09-30 20:08:50 -04:00
rocky
61784c4f43 remove test in 2.4: no builtin "all()" 2022-09-30 03:42:56 -04:00
rocky
f926acf7f1 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-09-30 03:42:00 -04:00
rocky
291b8e0f90 Merge branch 'master' into python-3.3-to-3.5 2022-09-30 03:34:58 -04:00
rocky
a49f21bb1c Merge branch 'python-3.3-to-3.5' into python-2.4 2022-09-30 02:54:43 -04:00
rocky
68c646f1bb Remove type annotations 2022-09-30 02:50:53 -04:00
rocky
28bd433c9a Merge branch 'master' into python-3.3-to-3.5 2022-09-30 02:47:02 -04:00
rocky
3fcdc323f5 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-09-22 06:39:05 -04:00
rocky
e1f41b724e Merge branch 'master' into python-3.3-to-3.5 2022-09-22 06:38:17 -04:00
rocky
6aa0725bae Sync with master 2022-09-20 17:33:38 -04:00
rocky
c37301b02b Merge branch 'python-3.3-to-3.5' into python-2.4 2022-09-20 17:31:24 -04:00
rocky
2fc80fc747 Merge branch 'master' into python-3.3-to-3.5 2022-09-20 17:29:15 -04:00
rocky
eaa063a15f Deal with 2.x EXTENDED_ARGS on JUMP_ABSOLUTE
in scanner2's "continue" detection
2022-09-18 21:05:40 -04:00
rocky
83bf645535 Python 2.4 tolerance 2022-09-16 16:18:54 -04:00
rocky
43ed4f249e Merge branch 'python-3.3-to-3.5' into python-2.4 2022-09-16 15:53:56 -04:00
rocky
a173f27e7c Merge branch 'master' into python-3.3-to-3.5 2022-09-16 15:47:33 -04:00
rocky
e4e9cb2758 Merge branch 'master' into python-3.3-to-3.5 2022-09-16 15:45:05 -04:00
rocky
55368c8b29 Reduce 2.6 excluded tests 2022-08-23 21:50:37 -04:00
rocky
17300f631f Merge branch 'python-3.3-to-3.5' into python-2.4 2022-08-23 21:50:34 -04:00
rocky
3b3ff705f9 Merge branch 'master' into python-3.3-to-3.5 2022-08-23 21:42:05 -04:00
rocky
dabc57a1fd Merge branch 'python-3.3-to-3.5' into python-2.4 2022-08-23 17:24:52 -04:00
rocky
a59e9c1aa8 Merge branch 'master' into python-3.3-to-3.5 2022-08-23 17:08:42 -04:00
rocky
4789ae0d94 2.6 runtest adjustments
FOr some tests PYTHON needs to be set to pytest
2022-08-23 08:10:07 -04:00
rocky
66fe00ffb6 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-08-23 07:46:48 -04:00
rocky
8483a5102b Merge branch 'master' into python-3.3-to-3.5 2022-08-23 07:43:26 -04:00
rocky
507a754616 2.4 tolerance 2022-07-07 02:22:16 -04:00
rocky
6daca33443 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-07-07 02:11:44 -04:00
rocky
930d03ab07 3.5- tolerance 2022-07-07 02:10:26 -04:00
rocky
0ca5866ec7 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-07-07 02:00:32 -04:00
rocky
d03a4235df pre 3.6 tolerance 2022-07-07 01:58:40 -04:00
rocky
7a4df3226e Merge branch 'master' into python-3.3-to-3.5 2022-07-07 01:56:27 -04:00
rocky
32114b5550 Python 2.4 tolerance 2022-07-04 07:32:49 -04:00
rocky
697d765a43 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-07-04 07:12:09 -04:00
rocky
b512b20b56 Merge branch 'master' into python-3.3-to-3.5 2022-07-04 07:10:49 -04:00
rocky
175821f9d5 Remove erroneously checked-in files 2022-06-08 13:53:49 -04:00
rocky
a99f0e51ab Merge branch 'python-3.3-to-3.5' into python-2.4 2022-06-08 13:27:56 -04:00
rocky
50f6625cd1 Merge branch 'master' into python-3.3-to-3.5 2022-06-08 12:53:50 -04:00
rocky
14fe8c5356 some lambda's can't have \n + grammar cleanup 2022-05-14 20:25:33 -04:00
rocky
0ca2eca32f Merge branch 'python-3.3-to-3.5' into python-2.4 2022-05-14 19:39:47 -04:00
rocky
4096d310e4 Correct 2.5-7 relative import formatting 2022-05-14 19:38:09 -04:00
rocky
5c6c6c663d Bugs in 2.x relative import '.' and 1.x bytecode 2022-05-14 19:38:09 -04:00
rocky
8f09437537 Correct 2.x formatting "slice2" nonterminal 2022-05-14 19:38:09 -04:00
rocky
d89153f910 semi-black scanner26.py 2022-05-14 19:37:59 -04:00
rocky
c504bb2491 2.5-2.7 relative import fixes 2022-05-14 19:25:26 -04:00
rocky
540f619745 Bugs with 1.0 bytecode and 2.x relative "." import 2022-05-14 17:37:12 -04:00
rocky
4b9b3f27f9 Remove failed merge chevron remnants 2022-05-14 17:08:51 -04:00
rocky
550273d117 test_grammar corrections for Python < 3.0 2022-05-14 17:04:41 -04:00
rocky
b8cc1be32b Remove diff merge schmutz 2022-05-14 16:57:23 -04:00
rocky
a040439f48 bug in formatting slice2 nonterminal 2022-05-14 16:51:28 -04:00
rocky
5f48a8bf2f python-3.3-3.5 merge 2022-05-14 14:38:03 -04:00
rocky
0170e39f5d Merge branch 'python-3.3-to-3.5' into python-2.4 2022-05-14 10:43:42 -04:00
rocky
b8856993d2 merge from master 2022-05-14 09:55:19 -04:00
rocky
4f6d3a3d7e Merge branch 'master' into python-3.3-to-3.5 2022-05-14 09:02:53 -04:00
rocky
fa62724f14 Handle BUILD_{LIST,SET} more efficiently 2022-04-27 10:06:30 -04:00
rocky
5220aa3b65 WIP - deal with BUILD_LIST 2022-04-27 05:15:33 -04:00
rocky
c8b94cf48f Small tewaks 2022-04-27 05:06:14 -04:00
rocky
5268796134 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-04-27 04:05:50 -04:00
rocky
e930c9c6ef Merge branch 'master' into python-3.3-to-3.5 2022-04-27 04:02:17 -04:00
rocky
a2780bc1c2 2.4 tolerance 2022-04-26 03:00:18 -04:00
rocky
9fe3f94240 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-04-26 02:46:29 -04:00
rocky
3471d11dd5 Merge in literal speedups 2022-04-26 02:45:31 -04:00
rocky
2a0a6c904c Merge branch 'long-collection-python3' into python-3.3-to-3.5 2022-04-26 02:38:02 -04:00
rocky
2d6f31df97 Use attr insead of pattrr for non-strings 2022-04-26 02:35:34 -04:00
rocky
e5d82f7613 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-04-25 08:05:28 -04:00
rocky
d8d8ed60d7 Python 3.3 tolerance 2022-04-25 07:56:41 -04:00
rocky
0f525c142d Python 3.3 tolerance 2022-04-25 07:53:36 -04:00
rocky
ee4d166e71 Merge branch 'master' into python-3.3-to-3.5 2022-04-25 07:44:10 -04:00
rocky
4be5c89efb Merge branch 'python-3.3-to-3.5' into python-2.4 2022-04-21 05:40:12 -04:00
rocky
7720c8aa10 Merge branch 'master' into python-3.3-to-3.5 2022-04-21 05:34:38 -04:00
rocky
003ad0ceef Merge branch 'master' into python-3.3-to-3.5 2022-04-21 05:29:25 -04:00
rocky
484ded7635 Python 2.4 compliance 2022-04-20 08:30:44 -04:00
rocky
cdacc9770e Merge branch 'python-3.3-to-3.5' into python-2.4 2022-04-20 08:27:15 -04:00
rocky
aff0cd4baa Merge branch 'master' into python-3.3-to-3.5 2022-04-20 08:20:50 -04:00
rocky
a3c1943806 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-04-17 12:22:47 -04:00
rocky
dd98eb8764 Merge branch 'master' into python-3.3-to-3.5 2022-04-17 12:21:53 -04:00
rocky
7ef3284f17 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-04-17 11:51:49 -04:00
rocky
ee439540da Merge branch 'master' into python-3.3-to-3.5 2022-04-17 11:43:28 -04:00
rocky
5b2db856ec merge conflicts 2022-04-17 11:35:12 -04:00
rocky
ae68f1823d Merge branch 'python-3.3-to-3.5' into python-2.4 2022-04-17 11:35:03 -04:00
rocky
9539a5c95c Merge conflicts 2022-04-17 11:03:17 -04:00
rocky
6899f2bd96 Merge branch 'master' into python-3.3-to-3.5 2022-04-17 11:03:00 -04:00
rocky
81e4169dea Python 2.4 tolerance 2022-04-16 09:13:06 -04:00
rocky
3c2ed93b34 Python 2.4 seems broken 2022-04-15 08:57:55 -04:00
rocky
97f8d91e35 Merge branch 'master' into python-3.3-to-3.5 2022-04-15 08:42:40 -04:00
rocky
48fc42d182 Remove workflows testing...
It no longer works on 2.7
2022-03-31 06:48:09 -04:00
rocky
6e00a3bdbb Merge branch 'python-3.3-to-3.5' into python-2.4 2022-03-31 06:44:20 -04:00
rocky
b0250f4f9a Merge branch 'master' into python-3.3-to-3.5 2022-03-31 06:27:07 -04:00
rocky
27583856cb Remove 3.x "... if ... else" from this branch 2022-03-05 10:37:28 -05:00
rocky
c5bc21bf6a Correct some 2.6 bugs in chained compare ...
and other bugs

* main.py: was botching a version triple test
* parse2{5,6}.py: Add 2.6 try/except end position checking via COME_FROM offsets
* parse26.py: adjust grammar rule for chained-compare2

such as in try-except
2022-03-05 03:54:20 -05:00
rocky
f89a3e8fa1 Remove some 3.6ish type annotations 2022-03-04 05:16:12 -05:00
rocky
2efe2b5b47 WIP 2022-03-04 05:07:31 -05:00
rocky
209f19c1da Some variable name changes...
and sync with master
2022-03-04 04:51:36 -05:00
rocky
76f7bae0a6 Merge branch 'master' into python-3.3-to-3.5 2022-03-04 04:48:50 -05:00
rocky
05f743ed14 Merge hell 2022-01-14 08:09:02 -05:00
rocky
a93bec73cf merge hell 2022-01-14 08:04:33 -05:00
rocky
997942e235 Merge branch 'master' into python-3.3-to-3.5 2022-01-14 08:04:01 -05:00
rocky
3ab9272eb0 Merge branch 'python-3.3-to-3.5' into python-2.4 2022-01-03 22:10:47 -05:00
rocky
7c4b82243b Merge branch 'master' into python-3.3-to-3.5 2022-01-03 22:08:46 -05:00
rocky
b5203a077d Merge branch 'python-3.3-to-3.5' into python-2.4 2022-01-01 22:43:35 -05:00
rocky
92c0534cd4 Merge branch 'master' into python-3.3-to-3.5 2022-01-01 22:42:02 -05:00
rocky
54299bb3e6 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-12-31 11:42:33 -05:00
rocky
256d19d9b4 Merge branch 'master' into python-3.3-to-3.5 2021-12-31 11:42:11 -05:00
rocky
3a80c765ac Merge branch 'python-3.3-to-3.5' into python-2.4 2021-12-31 11:37:08 -05:00
rocky
56f10a8cfa Merge branch 'master' into python-3.3-to-3.5 2021-12-31 11:33:26 -05:00
rocky
62bff2f78d Merge branch 'python-3.3-to-3.5' into python-2.4 2021-12-31 11:31:46 -05:00
rocky
82d10e025c Merge branch 'master' into python-3.3-to-3.5 2021-12-31 11:29:11 -05:00
rocky
08f79e67fb Merge branch 'python-3.3-to-3.5' into python-2.4 2021-12-26 19:06:34 -05:00
rocky
2ac85acca5 Merge branch 'master' into python-3.3-to-3.5 2021-12-26 19:05:27 -05:00
rocky
b3163d09e8 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-12-26 18:53:19 -05:00
rocky
b96e1df14b Merge branch 'master' into python-3.3-to-3.5 2021-12-26 18:52:58 -05:00
rocky
90930b66ce Merge branch 'master' into python-3.3-to-3.5 2021-12-23 22:55:36 -05:00
rocky
89829fbe4f Merge branch 'python-3.3-to-3.5' into python-2.4 2021-12-23 22:26:44 -05:00
rocky
290f70f202 Merge branch 'master' into python-3.3-to-3.5 2021-12-23 22:25:26 -05:00
rocky
164168e7f4 unmap_dict -> dict_unmap ...
This matches Python's AST (Dict) better. Variations or specializations
of an AST name, e.g. "unmap" should come at the end, not the beginning.
2021-12-23 22:24:45 -05:00
rocky
5d0dc5fffd Remove 2.7+ism 2021-12-23 16:58:06 -05:00
rocky
040ed20b59 Sync with master 2021-12-23 16:47:46 -05:00
rocky
f06bd69858 Sync with master 2021-12-23 16:44:53 -05:00
rocky
819524fbd0 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-12-23 16:23:19 -05:00
rocky
ef03e7151d Add operator precedence to -T output 2021-12-23 16:20:58 -05:00
rocky
fbd5cf5994 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-12-17 06:25:54 -05:00
rocky
5a7755e047 Merge branch 'master' into python-3.3-to-3.5 2021-12-17 06:23:29 -05:00
rocky
ae81a830a8 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-11-28 06:21:44 -05:00
rocky
98d7e42886 Merge branch 'master' into python-2.4 2021-11-28 06:21:30 -05:00
rocky
3aadd0574e Merge branch 'master' into python-3.3-to-3.5 2021-11-28 06:21:07 -05:00
rocky
eff663cc4e Merge branch 'master' into python-3.3-to-3.5 2021-11-28 06:19:20 -05:00
rocky
9caceed001 Administrivia 2021-11-28 06:19:07 -05:00
rocky
a11b290a81 Merge branch 'master' into python-3.3-to-3.5 2021-11-28 06:18:44 -05:00
rocky
bba9c577d1 Administrivia 2021-11-28 06:17:30 -05:00
rocky
0a781164c3 Python 2.4 tolerance 2021-11-28 05:24:59 -05:00
rocky
7a98ac990d sys.exc typo 2021-11-25 04:05:49 -05:00
rocky
8bae4e8d9c Merge branch 'python-3.3-to-3.5' into python-2.4 2021-11-25 03:22:46 -05:00
rocky
c4baec28de No fstrings here 2021-11-24 15:38:28 -05:00
rocky
62da9f4583 Merge branch 'master' into python-3.3-to-3.5 2021-11-24 15:14:35 -05:00
rocky
65cf9ac48f Merge branch 'python-3.3-to-3.5' into python-2.4 2021-11-21 14:20:04 -05:00
rocky
890230b791 Merge branch 'master' into python-3.3-to-3.5 2021-11-21 14:12:54 -05:00
rocky
f72070e6d0 Administrivia - workflows CI 2021-11-07 10:21:56 -05:00
rocky
94832d654f Merge branch 'master' into python-3.3-to-3.5 2021-11-03 05:02:26 -04:00
rocky
6bb2605bed Remove PYTHON3 2021-11-03 03:16:58 -04:00
rocky
47e615bbfc Merge branch 'python-3.3-to-3.5' into python-2.4 2021-11-03 03:08:22 -04:00
rocky
77742532aa Merge branch 'master' into python-3.3-to-3.5 2021-11-03 03:02:13 -04:00
rocky
948ecf3123 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-11-03 02:38:24 -04:00
rocky
e233b2f63a Merge branch 'master' into python-3.3-to-3.5 2021-11-03 02:26:11 -04:00
rocky
343f0f781a Python 2.4 specialization 2021-11-03 02:07:02 -04:00
rocky
e87b2d6718 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-11-03 02:06:04 -04:00
rocky
0742f0b83f Specialize for Python 3.3-3.5 2021-11-03 01:56:41 -04:00
rocky
2fbe61aa11 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-11-03 01:46:03 -04:00
rocky
f36acf6faa Merge branch 'master' into python-3.3-to-3.5 2021-11-03 01:27:54 -04:00
rocky
96617c0895 Merge branch 'master' into python-3.3-to-3.5 2021-11-03 01:20:09 -04:00
rocky
e50cd1e07d Fix off-by-one in setup's 3.6 range comparison 2021-10-30 06:00:10 -04:00
rocky
1358d40aef Merge branch 'python-3.3-to-3.5' into python-2.4 2021-10-29 22:32:01 -04:00
rocky
c8c6f1a63d Merge hell 2021-10-29 22:29:15 -04:00
rocky
850500c7ad Merge branch 'master' into python-3.3-to-3.5 2021-10-29 22:25:36 -04:00
rocky
9ec8918c1f Merge branch 'python-3.3-to-3.5' into python-2.4 2021-10-28 18:54:42 -04:00
rocky
08ed185608 Merge branch 'master' into python-3.3-to-3.5 2021-10-28 18:46:08 -04:00
rocky
25cd759dbe Packaging adminstrivia 2021-10-26 18:39:07 -04:00
rocky
000c060093 One more PYTHON_VERSION_TRIPLE conversion 2021-10-26 06:49:49 -04:00
rocky
39d79217ca Merge hell 2021-10-26 06:47:35 -04:00
rocky
5390e3b838 Merge hell 2021-10-26 06:42:23 -04:00
rocky
8aeb0aad8c Merge branch 'python-3.3-to-3.5' into python-2.4 2021-10-26 06:41:20 -04:00
rocky
a2e34ab75c Merge branch 'master' into python-3.3-to-3.5 2021-10-26 06:19:01 -04:00
rocky
5c2af69925 Loosen check to allow running from 2.4-3.10
We still only can *decompile* 2.4-3.8
2021-10-26 06:08:17 -04:00
rocky
8076c60eee Remove float2str 2021-10-26 04:43:08 -04:00
rocky
1b4b6b334e Merge branch 'master' into python-3.3-to-3.5 2021-10-25 09:09:51 -04:00
rocky
482dbb5c82 Modernize and sync with decompyle3 better 2021-10-25 09:04:12 -04:00
rocky
08e27a8b0f Merge branch 'python-3.3-to-3.5' into python-2.4 2021-10-24 01:54:39 -04:00
rocky
55ffaa1aff Merge branch 'master' into python-3.3-to-3.5 2021-10-24 01:52:52 -04:00
rocky
91fa73bf01 Try CI on 2.4 branch 2021-10-24 00:58:36 -04:00
rocky
9a1b77aff4 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-10-24 00:49:32 -04:00
rocky
79d5790e3f Workflows CI adjusment 2021-10-23 16:06:02 -04:00
rocky
381a470d90 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-10-23 16:02:28 -04:00
rocky
64b75625a9 Merge branch 'master' into python-3.3-to-3.5 2021-10-23 15:56:19 -04:00
rocky
536d45deb1 Another version bug 2021-10-23 10:01:53 -04:00
rocky
dce7e809e2 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-10-23 09:52:40 -04:00
rocky
5ddbea73f4 Merge branch 'master' into python-3.3-to-3.5 2021-10-23 09:50:29 -04:00
rocky
8a9a4ca6cc CircleCI testing 2021-10-23 09:12:45 -04:00
rocky
b8e9ce8a7a CircleCI testing 2021-10-23 09:08:11 -04:00
rocky
d75bf1c32a Admnistrivia 2021-10-23 08:56:33 -04:00
rocky
cef3203601 merge hell 2021-10-23 08:46:05 -04:00
rocky
5b657ac7d8 Merge branch 'python-3.3-to-3.5' into python-2.4 2021-10-23 08:42:32 -04:00
rocky
1509bc4828 Administrivia 2021-10-23 08:35:00 -04:00
rocky
fad5089175 Administrivia 2021-10-23 08:33:39 -04:00
rocky
52262dc38a Merge hell 2021-10-23 08:27:47 -04:00
rocky
b61255535e Merge branch 'master' into python-3.3-to-3.5 2021-10-23 08:26:39 -04:00
rocky
ce58ed7434 CircleCI testing 2021-10-23 08:10:21 -04:00
rocky
01859ce820 Don not upgrade pip on older pythons 2021-10-23 07:53:50 -04:00
rocky
ada786e08c Administrivia 2021-10-21 16:38:12 -04:00
rocky
cfb5c442e2 Version twiddling 2021-10-21 16:33:42 -04:00
rocky
37f953c353 More version twiddling 2021-10-21 16:28:41 -04:00
rocky
4d84a723f4 Use right xdis branch 2021-10-21 16:22:57 -04:00
rocky
ddbfc168c5 CI testing 3.5, 3.6
Workflows doesn't go back before 3.5.
It is okay to use 3.6 in testing the 3.3-3.5 branch
2021-10-21 16:14:26 -04:00
rocky
a463220df2 Break out code for 3.3-3.5 versions 2021-10-21 16:12:39 -04:00
rocky
3684b38310 One more test 2021-06-15 22:50:36 -04:00
rocky
f472275196 Merge branch 'master' into python-2.4 2021-06-15 22:47:45 -04:00
rocky
2bca6753d3 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2021-06-15 22:47:36 -04:00
rocky
a0cb9c5d6a merge hell 2020-10-31 11:37:58 -04:00
rocky
3ca66d0184 Merge branch 'master' into python-2.4 2020-10-31 11:37:53 -04:00
rocky
316adff2d4 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2020-09-05 06:02:58 -04:00
rocky
1a3bd3cabe Merge branch 'master' into python-2.4 2020-09-05 06:02:41 -04:00
rocky
9bc9532c24 Merge branch 'master' into python-2.4 2020-09-05 05:58:41 -04:00
rocky
732e3331b8 Get ready for release 3.7.4 2020-09-05 05:51:09 -04:00
rocky
fae5525514 Administrivia 2020-07-25 15:42:31 -04:00
rocky
730b739907 Merge branch 'master' into python-2.4 2020-07-25 13:38:24 -04:00
rocky
844144f90a Get ready for release 3.7.3 2020-07-25 13:21:37 -04:00
rocky
c105edff47 Merge branch 'master' into python-2.4 2020-07-21 18:52:31 -04:00
rocky
f65aac7b97 Merge branch 'master' into python-2.4 2020-07-16 07:11:55 -04:00
rocky
68a145d050 Merge branch 'master' into python-2.4 2020-07-06 18:47:55 -04:00
rocky
c2e3ff0f43 Set bug-report expectations. 2020-07-06 14:34:16 -04:00
rocky
b49033d584 test_pwd.py now works 2020-07-06 10:26:35 -04:00
rocky
d822017520 Add try/else reduction rule 2020-07-06 10:04:08 -04:00
rocky
3dc6c31ae5 Fix bug in detecting 2.7 except-handler ranges 2020-07-05 22:11:37 -04:00
rocky
8de663ff52 A test unexplicably got fixed somewhere previously 2020-07-05 21:20:47 -04:00
rocky
6e0b010cd3 Merge branch 'master' into python-2.4 2020-06-27 23:13:43 -04:00
rocky
4b2f26ca70 Merge branch 'master' into python-2.4 2020-06-27 11:45:16 -04:00
rocky
e91fe14612 Merge branch 'master' into python-2.4 2020-06-27 11:34:20 -04:00
rocky
8ce921c5b7 Last commit fixed test_pep352 test 2020-06-27 11:21:34 -04:00
rocky
5d609ae1aa Merge branch 'master' into python-2.4 2020-06-27 11:17:21 -04:00
rocky
7042d00203 Merge branch 'master' into python-2.4 2020-06-27 09:17:39 -04:00
rocky
6c8b3bfbe9 Merge branch 'master' into python-2.4 2020-06-26 08:47:02 -04:00
rocky
38cd854b81 Merge branch 'master' into python-2.4 2020-06-17 10:16:34 -04:00
rocky
33be603e3d Merge branch 'master' into python-2.4 2020-06-17 05:42:50 -04:00
rocky
5753f8114c Merge branch 'master' into python-2.4 2020-06-12 21:18:55 -04:00
rocky
1bfa4228d6 Administrivia 2020-05-19 01:27:54 -04:00
rocky
6116eb64d1 Bump version 2020-05-19 01:25:38 -04:00
rocky
cb411bcd04 Merge branch 'master' into python-2.4 2020-05-19 01:24:08 -04:00
rocky
527d1b4163 Merge branch 'master' into python-2.4 2020-05-18 23:25:53 -04:00
rocky
f82b862c25 Merge branch 'master' into python-2.4 2020-05-05 22:20:54 -04:00
rocky
cafe96a44a Merge branch 'master' into python-2.4 2020-04-30 18:00:37 -04:00
rocky
fe5cea7042 Merge branch 'master' into python-2.4 2020-04-27 23:01:53 -04:00
rocky
6981743788 Merge branch 'master' into python-2.4 2020-04-21 13:49:52 -04:00
rocky
0e0c5b91fc Merge branch 'master' into python-2.4 2020-04-20 23:11:19 -04:00
rocky
b29a008cb3 2.7 or reduce check rule 2020-04-16 16:24:40 -04:00
rocky
3bfc51e34b Merge branch 'master' into python-2.4 2020-04-16 15:56:58 -04:00
rocky
486f10be6c grammar normalization for "or" rule...
tracks what's been going on in master.
2020-04-16 14:00:48 -04:00
rocky
f5bcdeec95 Merge branch 'master' into python-2.4 2020-04-16 13:09:07 -04:00
rocky
880a60c3e4 Merge branch 'master' into python-2.4 2020-04-11 09:58:36 -04:00
rocky
0cb0de53ae Merge branch 'master' into python-2.4 2020-04-01 11:29:10 -04:00
rocky
f57a238e47 Merge branch 'master' into python-2.4 2020-03-31 10:31:44 -04:00
rocky
57109ed066 Conversion from 2.7+ 2020-03-31 10:27:08 -04:00
rocky
c52af6cee9 Merge branch 'master' into python-2.4 2020-03-31 10:26:42 -04:00
rocky
bd9a8261fa Merge branch 'master' into python-2.4 2020-03-25 10:59:21 -04:00
rocky
0e4e45518d Merge branch 'master' into python-2.4 2020-02-17 16:17:26 -05:00
rocky
bb5bbc9645 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4
Conflicts:
	test/run-and-email.sh
2020-02-16 19:37:23 -05:00
rocky
283db0faea run-and-email.sh tweak 2020-02-16 19:35:17 -05:00
rocky
049a3415a7 Merge branch 'master' into python-2.4 2020-02-16 18:28:49 -05:00
rocky
3d2fc7a5e6 run-and-email message tweak 2020-02-16 11:59:21 -05:00
rocky
2a040bee5f Tweak to run-and-email message 2020-02-16 11:04:58 -05:00
rocky
3bd29b9c9a Merge branch 'master' into python-2.4 2020-02-15 08:12:52 -05:00
rocky
d4381ef73f More bugs found via sre_parse.py decompilation 2020-02-15 05:04:42 -05:00
rocky
3918bf248d Correct a comment 2020-02-14 22:47:48 -05:00
rocky
a37ae1be0d Fix parsing bug in 2.3 and 2.4 from sre.py 2020-02-14 10:45:06 -05:00
rocky
108c6ecfe3 Small tweak in mailbody line 2020-02-14 08:41:52 -05:00
rocky
9f4458db9a better batch testing for older Pythons 2020-02-13 21:04:26 -05:00
rocky
ac7bec5ad8 Merge branch 'master' into python-2.4 2020-02-13 18:34:08 -05:00
rocky
74848140c5 Script typo 2020-02-10 18:36:10 -05:00
rocky
9db3f1cf1d Merge branch 'master' into python-2.4 2020-02-10 18:26:56 -05:00
rocky
799570d068 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2020-02-09 13:35:06 -05:00
rocky
3db66fad1d Merge branch 'master' into python-2.4 2020-02-09 13:34:08 -05:00
rocky
4e6c449250 Merge branch 'master' into python-2.4 2020-02-09 13:30:18 -05:00
rocky
da119a31f7 Update README.rst 2020-02-09 12:41:52 -05:00
rocky
ae9f83c191 CircleCI try 15 2020-02-09 10:49:58 -05:00
rocky
846020bf5a CircleCI try 14 2020-02-09 10:46:21 -05:00
rocky
cf5c81ab21 CircleCI try 13 2020-02-09 10:44:27 -05:00
rocky
244ab4e3b3 CircleCI try 12 2020-02-09 10:43:24 -05:00
rocky
07290bd443 CircleCI try 11 2020-02-09 10:42:28 -05:00
rocky
ef9c34098a CircleCI try 10 2020-02-09 10:41:30 -05:00
rocky
57bca5102d CircleCI try 9 2020-02-09 10:32:05 -05:00
rocky
a29d1e1531 CircleCI try 8 2020-02-09 10:28:20 -05:00
rocky
3d649e049b CircleCI try 7 2020-02-09 10:27:01 -05:00
rocky
26a7b984aa CircleCI try 6 2020-02-09 10:17:09 -05:00
rocky
9b41dfd951 CircleCI try 5 2020-02-09 10:14:41 -05:00
rocky
1091d32882 CircleCI try 4 2020-02-09 10:09:37 -05:00
rocky
432859d677 CircleCI try 3 2020-02-09 10:04:30 -05:00
rocky
25b7752915 CircleCI try 2 2020-02-09 10:01:54 -05:00
rocky
bac3fea8cd Merge branch 'master' into python-2.4 2020-02-09 09:55:41 -05:00
rocky
9cc9bceadf Go over older 2.x exclusions 2020-02-04 21:57:20 -05:00
rocky
36e09738c3 Merge branch 'master' into python-2.4 2020-02-04 21:34:15 -05:00
rocky
90439c562f Python 2.5 runtests exclusions 2020-02-04 20:30:19 -05:00
rocky
d9975defe9 Merge branch 'master' into python-2.4 2020-02-04 20:21:35 -05:00
rocky
425b50cf1c Merge branch 'master' into python-2.4 2020-02-02 05:38:27 -05:00
rocky
2216eb7b01 Merge branch 'master' into python-2.4 2020-02-01 22:29:10 -05:00
rocky
31468a2328 Merge branch 'master' into python-2.4 2020-01-29 15:39:46 -05:00
rocky
d39191477b Merge branch 'master' into python-2.4 2020-01-28 01:44:05 -05:00
rocky
5489ee9857 Merge branch 'master' into python-2.4 2020-01-26 12:15:10 -05:00
rocky
f8c437230d Get ready for release 3.6.3 2020-01-26 12:08:40 -05:00
rocky
e30051b460 Merge branch 'master' into python-2.4 2020-01-26 12:00:11 -05:00
rocky
b12893f343 2.4 compatibility 2020-01-22 06:25:58 -05:00
rocky
80b0d4284b Merge branch 'master' into python-2.4 2020-01-22 05:54:20 -05:00
rocky
afedf43ee1 Add "ifelsestmt" reduce rule checking 2020-01-21 16:01:19 -05:00
rocky
8684137f80 Merge branch 'master' into python-2.4 2020-01-21 07:16:36 -05:00
rocky
dc16f03f50 Split out 2.5 runtest exclusions to its own file 2020-01-21 07:11:45 -05:00
rocky
2c608c7909 Merge branch 'master' into python-2.4 2020-01-21 06:50:49 -05:00
rocky
3540c951dc Merge branch 'master' into python-2.4 2020-01-13 12:56:51 -05:00
rocky
4b46a8ffdf Small fixes 2020-01-13 11:41:53 -05:00
rocky
74961caed1 Merge branch 'master' into python-2.4 2020-01-13 11:25:59 -05:00
rocky
359672415b Merge branch 'master' into python-2.4 2020-01-12 22:04:14 -05:00
rocky
5b889bf4f3 Fix test_grammar.py for 2.4 2020-01-12 11:28:37 -05:00
rocky
7adfc9c2dc Merge branch 'master' into python-2.4 2020-01-12 10:23:52 -05:00
rocky
773bbdab0a Use copysign in 2.6 nuke -0.0 test if < 2.6 2020-01-07 04:37:28 -05:00
rocky
9df8dd7384 Go over 2.5 for reduction rules and tests 2020-01-06 23:32:36 -05:00
rocky
ae148d57e5 Merge branch 'master' into python-2.4 2020-01-06 23:32:31 -05:00
rocky
78c4db722a Python 2.4- doesn't have condition expresions 2020-01-06 04:42:23 -05:00
rocky
eefe7bdb6b runtests.sh update 2020-01-05 21:24:21 -05:00
rocky
e07e2a498e 2.x if vs ifelse reduction-rule testing 2020-01-05 21:04:42 -05:00
rocky
4bf7e60bad Merge branch 'master' into python-2.4 2020-01-05 18:43:42 -05:00
rocky
37b7a4b0b6 Merge hell 2020-01-05 18:07:13 -05:00
rocky
b842189d8a Merge branch 'master' into python-2.4 2020-01-05 18:06:57 -05:00
rocky
2f9284c3a0 Administrative change 2019-12-24 12:50:44 -05:00
rocky
49a65f9454 Merge branch 'master' into python-2.4 2019-12-24 12:47:58 -05:00
rocky
72526dc806 Merge branch 'master' into python-2.4 2019-12-23 20:51:43 -05:00
rocky
747ec0d0bc "make check-short" now works 2019-12-23 11:11:07 -05:00
rocky
a3932c7aec Merge branch 'master' into python-2.4 2019-12-23 11:11:00 -05:00
rocky
c683f3a88d Merge branch 'master' into python-2.4 2019-12-17 18:28:22 -05:00
rocky
a1d0ee9694 Merge branch 'master' into python-2.4 2019-12-16 13:37:43 -05:00
rocky
bee7bea330 Merge branch 'master' into python-2.4 2019-12-15 21:19:08 -05:00
rocky
e82a37528d Administrivia: improve setup scripts 2019-12-15 10:54:42 -05:00
rocky
93b31a2fa4 Merge branch 'master' into python-2.4 2019-12-15 10:51:34 -05:00
rocky
59124c913f Merge branch 'master' into python-2.4 2019-12-14 21:33:11 -05:00
rocky
de4a15a5b3 Extend "and" reduction test to Python 2.4 2019-12-14 19:48:33 -05:00
rocky
1f1a734598 Update runtest.sh tests that fail 2019-12-14 18:11:32 -05:00
rocky
96270b34d0 Merge branch 'master' into python-2.4 2019-12-14 18:05:28 -05:00
rocky
bc21e3163f Merge branch 'master' into python-2.4 2019-12-14 11:03:51 -05:00
rocky
ab4a998867 Merge hell 2019-12-10 16:13:46 -05:00
rocky
efac5268a4 Merge branch 'master' into python-2.4 2019-12-09 22:05:20 -05:00
rocky
ddaa7ef337 Fix 2.x false tryelsestmtl detection...
reinstate lots of stdlib tests which are fixed by this change.
2019-12-09 16:29:43 -05:00
rocky
120bdaedb9 Bump xdis version 2019-12-09 14:08:02 -05:00
rocky
a73ca4bf18 Start better try/else detection 2019-12-09 14:03:52 -05:00
rocky
1c8f885629 2.5 bugs...
Handling "with"
Go over 2.5 runtests.sh exclusions
2019-12-09 06:53:40 -05:00
rocky
dfac71e092 Exclude one more test for time..
This saves CircleCI 40 seconds in elapsed time
2019-12-09 06:06:20 -05:00
rocky
827bd32a67 was not handling 2.4 "if not"...
As the late Danny Gumport used to say: "not"'s can turn you into
knots.

Also go over 2.4 runtest failures
2019-12-09 05:57:50 -05:00
rocky
34957487f0 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2019-12-09 04:31:01 -05:00
rocky
1c943a465a CircleCI/PIP woes with Python 2.4 2019-12-09 04:30:41 -05:00
rocky
c77d9233f0 CircleCI/PIP woes with Python 2.4 2019-12-09 04:27:22 -05:00
rocky
8cbdaecfc9 Merge hell 2019-12-09 04:06:34 -05:00
rocky
9bde5c6cac Merge branch 'master' into python-2.4 2019-12-09 03:29:55 -05:00
rocky
ecf6de26a0 Add operator tests 2019-11-18 18:20:31 -05:00
rocky
495a969ccf Merge branch 'master' into python-2.4 2019-11-18 18:15:51 -05:00
rocky
1dafe0bd6a Merge branch 'master' into python-2.4 2019-11-17 20:18:57 -05:00
rocky
2c33a06535 Merge branch 'master' into python-2.4 2019-11-16 18:01:23 -05:00
rocky
efd8fe54b2 Merge branch 'master' into python-2.4 2019-11-10 13:37:14 -05:00
rocky
d3acbe2641 Merge hell 2019-11-10 12:16:57 -05:00
rocky
5b0f772dc7 Merge branch 'master' into python-2.4 2019-11-10 12:16:04 -05:00
rocky
93e26c7326 Fragment merge hell 2019-10-12 20:08:12 -04:00
rocky
914369bd36 Merge branch 'master' into python-2.4 2019-10-12 20:06:04 -04:00
rocky
fcc4aff62c Try to fix up README.RsT 2019-10-02 14:10:13 -04:00
rocky
a6e2074606 Merge branch 'master' into python-2.4 2019-10-02 13:53:24 -04:00
rocky
44382ec78e Merge branch 'master' into python-2.4 2019-10-02 10:51:01 -04:00
rocky
592aba9dd8 Merge branch 'master' into python-2.4 2019-10-02 10:35:39 -04:00
rocky
2fb9b8f64d Remove 2.6.9 form older version. (Is newer?) 2019-08-24 08:39:04 -04:00
rocky
d8d52d5181 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2019-08-24 08:33:07 -04:00
rocky
94c01d395a Merge branch 'master' into python-2.4 2019-08-24 08:32:21 -04:00
rocky
9bced5d2c9 Merge branch 'master' into python-2.4 2019-08-24 08:29:03 -04:00
rocky
fd7caf7f3f Tweak runtests so it works on 2.6 2019-08-11 21:58:57 -04:00
rocky
e2d7fd5f09 Merge branch 'master' into python-2.4 2019-08-11 21:37:10 -04:00
rocky
e29e979fbf Merge branch 'master' into python-2.4 2019-08-10 20:40:01 -04:00
rocky
729fdc9c8d Merge branch 'master' into python-2.4 2019-08-10 18:47:38 -04:00
rocky
0574f5302c Merge branch 'master' into python-2.4 2019-08-05 10:37:29 -04:00
rocky
595ac95f32 Merge branch 'master' into python-2.4 2019-07-25 07:50:02 -04:00
rocky
ed92f03bed Merge branch 'master' into python-2.4 2019-07-18 05:30:46 -04:00
rocky
43b1981244 Except for 2.4 2019-07-04 10:24:08 -04:00
rocky
cb5d4f4989 Merge branch 'master' into python-2.4 2019-07-04 10:23:41 -04:00
rocky
0639fdbbb7 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2019-07-04 10:02:18 -04:00
rocky
e56088b566 Need parens in unpack in 2.4ish 2019-07-03 20:04:45 -04:00
rocky
40d2ef3071 Merge branch 'master' into python-2.4 2019-07-03 19:38:47 -04:00
rocky
5afa14a945 More except_cond futzing 2019-07-03 19:23:23 -04:00
rocky
4f5ad533c3 Reinstate except_cond{2,3} rules 2019-07-03 19:21:39 -04:00
rocky
7f7487206a Reinstate except_cond{2,3} rules 2019-07-03 18:59:24 -04:00
rocky
82d8e0cd47 master merge hell 2019-07-03 18:36:53 -04:00
rocky
1c21e1c9d2 Merge branch 'master' into python-2.4 2019-07-03 18:35:11 -04:00
rocky
cd2072b8e3 Merge branch 'master' into python-2.4 2019-06-29 15:57:22 -04:00
rocky
145c18fbeb Merge branch 'master' into python-2.4 2019-06-23 21:14:40 -04:00
rocky
18bb1bc9e3 Fix Python 2.xisms 2019-06-23 18:15:53 -04:00
rocky
c0e8ce22af Merge branch 'master' into python-2.4 2019-06-23 17:51:21 -04:00
rocky
72a95e7cce Add back in validate. 2019-06-17 02:00:55 -04:00
rocky
3983aa1b92 One more deparse_code removal 2019-06-16 22:30:05 -04:00
rocky
8d85e78960 Merge branch 'master' into python-2.4 2019-06-16 22:00:33 -04:00
rocky
d3eca29934 Merge branch 'master' into python-2.4 2019-06-15 10:09:44 -04:00
rocky
f3b72884c6 Merge hell? 2019-06-12 13:09:22 -04:00
rocky
504164fcea Merge branch 'master' into python-2.4 2019-06-12 13:08:30 -04:00
rocky
aa21fe0b31 Give up on 3.8 in this branch 2019-06-08 18:57:43 -04:00
rocky
2995acb8d9 Merge branch 'master' into python-2.4 2019-06-08 18:57:08 -04:00
rocky
3436a3a256 Merge branch 'master' into python-2.4 2019-06-06 08:45:18 -04:00
rocky
d634c5c17a Merge branch 'master' into python-2.4 2019-06-06 02:53:55 -04:00
rocky
f9fd63d5f5 Merge branch 'master' into python-2.4 2019-06-05 11:38:37 -04:00
rocky
123be56e5d Simplify docstrings...
main.py: 2.7ism creaped in.
2019-05-24 10:45:29 -04:00
rocky
7f46d8bb2a Merge branch 'master' into python-2.4 2019-05-24 10:37:51 -04:00
rocky
60d96b6a5a Merge branch 'master' into python-2.4 2019-05-19 17:11:30 -04:00
rocky
f9bb0b0a46 Merge branch 'master' into python-2.4 2019-05-08 08:57:59 -04:00
rocky
325bba5be5 Merge branch 'master' into python-2.4 2019-05-08 07:00:54 -04:00
rocky
715bf9cbab Merge branch 'master' into python-2.4 2019-05-08 06:05:28 -04:00
rocky
8187fdf4a6 Merge branch 'master' into python-2.4 2019-05-05 16:10:44 -04:00
rocky
900a0980c1 Administrivia Add 2.6 back into older dist 2019-05-03 23:23:37 -04:00
rocky
da44660a72 2.6 doesn't have print_function 2019-05-03 23:22:01 -04:00
rocky
76c2883f62 Merge branch 'master' into python-2.4 2019-05-03 23:14:28 -04:00
rocky
d2fccfe357 Merge branch 'master' into python-2.4 2019-05-01 09:18:12 -04:00
rocky
23b7e6db18 Better 3.6 FORMAT_VALUE handling 2019-04-30 23:09:26 -04:00
rocky
1727977828 Merge branch 'master' into python-2.4 2019-04-30 23:09:07 -04:00
rocky
7fed369e88 Merge branch 'master' into python-2.4 2019-04-30 05:17:58 -04:00
rocky
81bbb81a42 Merge branch 'master' into python-2.4 2019-04-27 04:41:14 -04:00
rocky
3fa444a98d Merge branch 'master' into python-2.4 2019-04-23 19:12:59 -04:00
rocky
5475934c0d Fix 2.x delete statements expression confusion 2019-04-23 15:44:05 -04:00
rocky
636257f879 Was mssing 2.5 cond3 semantic rule 2019-04-23 13:07:30 -04:00
rocky
c6bdfdd592 Merge branch 'master' into python-2.4 2019-04-23 11:54:58 -04:00
rocky
5a089c311a Merge branch 'master' into python-2.4 2019-04-19 06:03:07 -04:00
rocky
6c3639aef2 Merge branch 'master' into python-2.4 2019-04-16 10:41:17 -04:00
rocky
37ac0a3665 Merge branch 'master' into python-2.4 2019-04-15 20:35:01 -04:00
rocky
40b910e4e2 Merge branch 'master' into python-2.4 2019-04-15 12:08:35 -04:00
rocky
e058377214 Merge branch 'master' into python-2.4 2019-04-14 19:29:52 -04:00
rocky
57185d17fd 2.4-branch uncompyle6 doesn't support -c 2019-04-14 07:11:59 -04:00
rocky
f2e2bc7fa1 Merge branch 'master' into python-2.4 2019-04-14 07:11:10 -04:00
rocky
950035db9c Merge branch 'master' into python-2.4 2019-04-14 06:54:32 -04:00
rocky
f36c11d9d7 Merge branch 'master' into python-2.4 2019-04-14 06:13:25 -04:00
rocky
64a4b75ed9 Merge branch 'master' into python-2.4 2019-04-13 23:40:40 -04:00
rocky
adc7e5242c More run tests 2019-04-10 12:32:34 -04:00
rocky
612a813c7c Merge branch 'master' into python-2.4 2019-04-10 12:03:39 -04:00
rocky
199ba86984 Merge branch 'master' into python-2.4 2019-03-28 11:22:28 -04:00
rocky
a4ae9a39af Merge branch 'master' into python-2.4 2019-03-23 18:26:47 -04:00
rocky
ddf73b653c Use Python 2.7, not 3.7 2019-03-10 14:17:59 -04:00
rocky
83773846d6 Merge branch 'master' into python-2.4 2019-03-10 14:12:23 -04:00
rocky
8246f54831 Python 2.5. tolerance 2019-01-26 18:50:17 -05:00
rocky
92d6b62d56 Merge branch 'master' into python-2.4 2019-01-26 18:33:39 -05:00
rocky
bff171897a Merge branch 'master' into python-2.4 2018-12-30 12:28:02 -05:00
rocky
189d7c6562 Merge branch 'master' into python-2.4 2018-12-16 02:28:09 -05:00
rocky
a54a558a44 Merge branch 'master' into python-2.4 2018-12-10 06:40:41 -05:00
rocky
6443257e60 Merge branch 'master' into python-2.4 2018-11-12 10:29:40 -05:00
rocky
343f01cb8f Merge branch 'master' into python-2.4 2018-10-27 11:31:32 -04:00
rocky
87d0b6e3fb Merge branch 'master' into python-2.4 2018-09-20 17:40:46 -04:00
rocky
eb317480d8 Merge branch 'master' into python-2.4 2018-09-19 15:46:08 -04:00
rocky
663b6ca50f Merge branch 'master' into python-2.4 2018-08-12 06:48:10 -04:00
rocky
908dea4a23 Merge branch 'master' into python-2.4 2018-07-15 12:40:27 -04:00
rocky
309ccb8734 Merge branch 'master' into python-2.4 2018-07-05 21:50:13 -04:00
rocky
d687b44f70 Merge branch 'master' into python-2.4 2018-07-03 15:46:12 -04:00
rocky
b94d67e99a Remove CircleCI 1.1 2018-06-26 22:36:31 -04:00
rocky
1f8a5dfa06 Another CircleCI 2.0 try 2018-06-25 16:53:25 -04:00
rocky
d420b2864e Fix CircleCI testing? 2018-06-25 16:40:36 -04:00
rocky
12e46504f3 Another CircleCI 2.0 try 2018-06-25 13:33:36 -04:00
rocky
d3bd73c281 More CircleCI 2.0 config 2018-06-25 13:29:28 -04:00
rocky
86e29eaac8 More CircleCI 2.0 config 2018-06-25 13:28:39 -04:00
rocky
e934d79170 More CircleCI 2.0 config 2018-06-25 13:27:23 -04:00
rocky
398981e887 Try CircleCI 2.0 2018-06-25 13:17:14 -04:00
rocky
96c9a67554 Merge branch 'master' into python-2.4 2018-06-25 13:14:24 -04:00
rocky
44ffb04ee1 Merge branch 'master' into python-2.4 2018-06-23 23:09:43 -04:00
rocky
c78f9a3b7d Merge branch 'master' into python-2.4 2018-06-23 12:25:03 -04:00
rocky
f088ded236 Merge branch 'master' into python-2.4 2018-06-23 05:48:49 -04:00
rocky
beaedc7ca1 Merge branch 'master' into python-2.4 2018-06-22 21:10:20 -04:00
rocky
f9392ed908 Merge branch 'master' into python-2.4 2018-06-22 14:33:22 -04:00
rocky
eb30181e51 Merge branch 'master' into python-2.4 2018-06-19 12:28:58 -04:00
rocky
9edeb84adc Merge branch 'master' into python-2.4 2018-06-13 13:37:52 -04:00
rocky
f7a8aabdee Realign make_function3 with master 2018-06-13 13:21:46 -04:00
rocky
214f5f32a3 Merge branch 'master' into python-2.4 2018-06-13 13:13:05 -04:00
rocky
53b471a3df Merge branch 'master' into python-2.4 2018-06-12 15:05:40 -04:00
rocky
2b730628d5 Merge branch 'master' into python-2.4 2018-06-12 08:31:13 -04:00
rocky
48006ab350 Merge branch 'master' into python-2.4 2018-06-11 12:01:52 -04:00
rocky
b3642094b2 Now allow 3.0 2018-06-11 11:39:01 -04:00
rocky
a574168ca8 Merge branch 'master' into python-2.4 2018-06-11 11:38:19 -04:00
rocky
263b4b5653 Merge branch 'master' into python-2.4 2018-06-10 16:49:29 -04:00
rocky
19818ae632 Merge branch 'master' into python-2.4 2018-06-04 15:35:31 -04:00
rocky
477d73c71d Merge branch 'master' into python-2.4 2018-06-04 15:29:40 -04:00
rocky
7272ac4a60 Merge branch 'master' into python-2.4 2018-06-04 10:59:56 -04:00
rocky
7659277c5c Past fix of conditional_not bleed into 2.5...
and it shouldn't have
2018-05-19 12:58:45 -04:00
rocky
761eee7ae7 Merge branch 'master' into python-2.4 2018-05-19 12:36:34 -04:00
rocky
600cee26d9 Properly resolve a merge conflict 2018-05-11 10:25:35 -04:00
rocky
61466808f5 Merge branch 'master' into python-2.4 2018-05-08 09:18:32 -04:00
rocky
de25c5f003 Merge branch 'master' into python-2.4 2018-05-01 03:17:49 -04:00
rocky
8880568045 Merge branch 'master' into python-2.4 2018-04-29 10:09:03 -04:00
rocky
3c7d460036 Merge branch 'master' into python-2.4 2018-04-22 04:51:07 -04:00
rocky
ee3f2446f9 Merge branch 'master' into python-2.4 2018-04-16 13:10:16 -04:00
rocky
0b24eca8d7 Merge branch 'master' into python-2.4 2018-04-08 05:39:28 -04:00
rocky
3116ac8323 Merge branch 'master' into python-2.4 2018-04-08 05:27:16 -04:00
rocky
19bb16270d Merge conflicts 2018-04-03 10:56:27 -04:00
rocky
35c41f8065 Merge branch 'master' into python-2.4 2018-04-03 10:55:51 -04:00
rocky
9d36e7742e Merge branch 'master' into python-2.4 2018-04-01 15:17:37 -04:00
rocky
75f3624f31 Merge branch 'master' into python-2.4 2018-04-01 13:48:16 -04:00
rocky
2e78c007ee Merge branch 'master' into python-2.4 2018-03-27 04:10:47 -04:00
rocky
f5a10ed5d0 Merge branch 'master' into python-2.4 2018-03-26 19:41:20 -04:00
rocky
de75849ae3 Merge branch 'master' into python-2.4 2018-03-26 14:52:01 -04:00
rocky
30d6dcdd69 Merge branch 'master' into python-2.4 2018-03-26 12:56:54 -04:00
rocky
c48345a5c0 More grammar coverage work 2018-03-26 08:14:15 -04:00
rocky
a1cdc5e40c Grammar testing 2018-03-26 08:13:17 -04:00
rocky
661bfd4e52 Merge branch 'master' into python-2.4 2018-03-26 08:04:32 -04:00
rocky
6ac48bb0e1 Merge branch 'master' into python-2.4 2018-03-25 17:57:26 -04:00
rocky
a18b4b1505 Merge branch 'master' into python-2.4 2018-03-25 17:37:04 -04:00
rocky
b2c832e19f Merge branch 'master' into python-2.4 2018-03-24 10:55:43 -04:00
rocky
1462a8beb0 simply since we don't do 3.0 in this branch 2018-03-21 20:43:11 -04:00
rocky
f877e65919 Merge branch 'master' into python-2.4 2018-03-21 20:19:32 -04:00
rocky
78898ed187 Add PYTHON3 import 2018-03-21 19:59:35 -04:00
rocky
ef03d78c4d Merge branch 'master' into python-2.4 2018-03-21 19:57:59 -04:00
rocky
48b251273a Merge branch 'master' into python-2.4 2018-03-07 11:48:50 -05:00
rocky
c91b5e1164 Need additional try vs try/else checks 2018-03-07 07:37:13 -05:00
rocky
f8fd474b55 Merge branch 'master' into python-2.4 2018-03-07 07:36:41 -05:00
rocky
bc5f43ab05 Merge branch 'master' into python-2.4 2018-03-06 09:55:15 -05:00
rocky
1da2118e13 Merge branch 'master' into python-2.4 2018-03-05 12:26:45 -05:00
rocky
67e8f5d1a7 Merge branch 'master' into python-2.4 2018-03-05 07:55:17 -05:00
rocky
2a76013ed5 Merge branch 'master' into python-2.4 2018-03-04 21:46:46 -05:00
rocky
681bbd616b Merge branch 'master' into python-2.4 2018-03-02 11:14:01 -05:00
rocky
46390a161e Merge branch 'master' into python-2.4 2018-03-02 10:07:20 -05:00
rocky
28d0ec7a2a Merge branch 'master' into python-2.4 2018-03-02 08:06:53 -05:00
rocky
8a842c57d3 Omit empty parens in 2.4 2018-03-01 18:17:11 -05:00
rocky
fb333f1505 Merge branch 'master' into python-2.4 2018-03-01 17:22:45 -05:00
rocky
ab257dc7ce Merge branch 'master' into python-2.4 2018-02-27 17:49:22 -05:00
rocky
e3d8751338 Sync with master + lint 2018-02-27 10:41:46 -05:00
rocky
a1532bbfea Merge branch 'master' into python-2.4 2018-02-27 10:40:40 -05:00
rocky
128963d2e9 yield before 2.4 may need "None" 2018-02-22 22:23:57 -05:00
rocky
1cb9fc8b43 I hate conflicted merges 2018-02-22 21:46:05 -05:00
rocky
b9147b7872 Distingish 2.4-2.6 try from try/else 2018-02-22 20:24:21 -05:00
rocky
5496271000 Merge branch 'master' into python-2.4 2018-02-22 20:15:45 -05:00
rocky
16b5df4ba4 2.4 test_types was fixed by prior commit 2018-02-22 19:16:41 -05:00
rocky
fee6114d74 Merge branch 'master' into python-2.4 2018-02-22 19:15:24 -05:00
rocky
b14655dd43 == -> is 2018-02-21 18:08:27 -05:00
rocky
3de2890050 Merge branch 'master' into python-2.4 2018-02-21 17:43:37 -05:00
rocky
90ae3e42f6 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2018-02-21 07:54:17 -05:00
rocky
158a1886fe Fix 2.4/2.5 try/else detection bug...
in a hacky way
2018-02-21 04:13:57 -05:00
rocky
d2285f0d61 remove a 2.7 runtest.sh exception 2018-02-21 02:54:40 -05:00
rocky
2e44ac25a1 Merge branch 'master' into python-2.4 2018-02-19 17:07:11 -05:00
rocky
9d425039a2 Merge branch 'master' into python-2.4 2018-02-17 11:28:45 -05:00
rocky
832f04a486 Merge branch 'master' into python-2.4 2018-02-15 10:47:14 -05:00
rocky
657d5ef024 pydisasm fixes 2018-02-15 07:33:51 -05:00
rocky
e92c2503d1 Merge branch 'master' into python-2.4 2018-02-15 07:31:11 -05:00
rocky
b74662cf3d Merge branch 'master' into python-2.4 2018-02-05 06:27:33 -05:00
rocky
ed3b0e81b9 Remove schmutz from merge 2018-01-31 16:52:43 -05:00
rocky
75755c8cfc Merge branch 'master' into python-2.4 2018-01-31 16:46:04 -05:00
rocky
4ce769399f Correct Python versions in CircleCI tests 2018-01-29 15:44:34 -05:00
rocky
d0dfdcfcde Add Some run tests 2018-01-29 15:41:19 -05:00
rocky
4e949a798d Merge branch 'master' into python-2.4 2018-01-29 15:41:14 -05:00
rocky
4fb379afb4 Get ready for release 2.15.0 2018-01-27 12:26:22 -05:00
rocky
eb7484c671 Merge branch 'master' into python-2.4 2018-01-27 11:47:57 -05:00
rocky
79470ffff7 Merge branch 'master' into python-2.4 2018-01-20 15:30:45 -05:00
rocky
44af6c42a2 Merge branch 'master' into python-2.4 2018-01-19 03:33:29 -05:00
rocky
d7380dc549 Merge branch 'master' into python-2.4 2018-01-19 03:18:23 -05:00
rocky
b2f6e1cf1a Merge branch 'master' into python-2.4 2018-01-18 19:05:19 -05:00
rocky
7c9437f0a9 Merge branch 'master' into python-2.4 2018-01-18 01:27:52 -05:00
rocky
162bb0a85f Merge branch 'master' into python-2.4 2018-01-13 01:05:38 -05:00
rocky
e44ccd5787 Merge branch 'master' into python-2.4 2018-01-12 20:57:10 -05:00
rocky
c4612b7484 Fix ok status on --weak-verify 2018-01-12 09:57:32 -05:00
rocky
731c5a2092 Merge branch 'master' into python-2.4 2018-01-12 09:57:17 -05:00
rocky
7efbd55b69 Merge branch 'master' into python-2.4 2018-01-11 21:55:43 -05:00
rocky
5dbec5b383 Merge branch 'master' into python-2.4 2018-01-11 10:35:49 -05:00
rocky
f28ad69c38 Merge branch 'master' into python-2.4 2018-01-11 01:48:28 -05:00
rocky
49a71819a1 Correct Python 2.5- decorator parsing 2018-01-10 11:02:54 -05:00
rocky
ed7d11525a Check Python version in setup.py ...
to make the code is compatible. Fixes #146
2018-01-10 09:49:39 -05:00
rocky
5b1dcccddc Merge branch 'master' into python-2.4 2018-01-10 09:39:39 -05:00
rocky
992a08f5ce Check Python version in setup.py ...
to make sure we are running a compatible version.
2018-01-10 09:38:55 -05:00
rocky
49ef408699 Reinstates run tests that now work 2018-01-09 08:48:57 -05:00
rocky
0487f2fb7a Merge branch 'master' into python-2.4 2018-01-09 08:40:31 -05:00
rocky
e43c8acd30 Merge branch 'master' into python-2.4 2018-01-09 03:19:48 -05:00
rocky
97604a93dd Small typo 2018-01-09 00:28:04 -05:00
rocky
d266e9e123 Merge branch 'master' into python-2.4 2018-01-09 00:23:33 -05:00
rocky
7ac8bf91df Merge branch 'master' into python-2.4 2018-01-08 23:21:24 -05:00
rocky
772d36015c 2.4-compatiblity for next iteration 2018-01-08 22:18:59 -05:00
rocky
f381211291 Merge branch 'master' into python-2.4 2018-01-08 22:13:05 -05:00
rocky
aca4cb233d Merge branch 'master' into python-2.4 2018-01-08 12:24:59 -05:00
rocky
01ef3b774f Merge branch 'master' into python-2.4 2018-01-08 11:44:11 -05:00
rocky
9041dead7f Merge branch 'master' into python-2.4 2018-01-07 21:36:19 -05:00
rocky
4ea308f75a Fix another 2.5- try/else bug (in a loop) 2018-01-07 08:36:17 -05:00
rocky
e5f06eb551 Fix bug 2.5- in try/else inside ifelsestmt 2018-01-06 22:10:05 -05:00
rocky
c68030e9fa Merge branch 'master' into python-2.4 2017-12-15 19:21:59 -05:00
rocky
fd95839701 Merge branch 'master' into python-2.4 2017-12-15 08:26:03 -05:00
rocky
6305023219 Handl 2.4- try/finally properly 2017-12-14 19:20:57 -05:00
rocky
c7dda72a84 Merge branch 'master' into python-2.4 2017-12-14 17:58:03 -05:00
rocky
7caedcb50d Merge branch 'master' into python-2.4 2017-12-14 09:51:50 -05:00
rocky
1856e09a0c 2.4 tolerance 2017-12-14 08:45:13 -05:00
rocky
e47568e147 Merge branch 'master' into python-2.4 2017-12-14 08:40:43 -05:00
rocky
c702ce3802 runtests for 2.4 and 2.5 2017-12-13 18:06:56 -05:00
rocky
a37f403410 Fix runtests.sh 2017-12-13 17:44:19 -05:00
rocky
9248a954bd Merge branch 'master' into python-2.4 2017-12-13 17:43:44 -05:00
rocky
89a7ad6f81 Update docs and failed decompiles (for 2.5) 2017-12-13 10:02:30 -05:00
rocky
f432f4f698 Update runtest failures 2017-12-13 09:24:59 -05:00
rocky
5ef2d5cd9f Merge branch 'master' into python-2.4 2017-12-13 08:58:18 -05:00
rocky
204612ca85 Merge branch 'master' into python-2.4 2017-12-12 11:05:20 -05:00
rocky
df8c092212 Merge branch 'master' into python-2.4 2017-12-10 18:12:14 -05:00
rocky
55d2e598db Merge branch 'master' into python-2.4 2017-12-10 18:11:13 -05:00
rocky
3c67c7b32c Administrivia 2017-12-10 18:10:51 -05:00
rocky
5264ffc0e5 Merge branch 'master' into python-2.4 2017-12-10 18:02:23 -05:00
rocky
27b217a4ed Merge branch 'master' into python-2.4 2017-12-09 04:53:21 -05:00
rocky
d756548ac3 Correct 10_del.py syntax 2017-12-05 22:44:33 -05:00
rocky
0171e4d899 remove from exclusion those stdlib test that now work 2017-12-05 18:21:15 -05:00
rocky
a2054fb7dd Merge branch 'master' into python-2.4 2017-12-05 18:14:03 -05:00
rocky
f07c9c6dcf Merge branch 'master' into python-2.4 2017-12-05 08:32:31 -05:00
rocky
c677c946ea Merge branch 'master' into python-2.4 2017-12-05 05:59:50 -05:00
rocky
87063851be Merge branch 'master' into python-2.4 2017-12-05 05:44:59 -05:00
rocky
516c1a7910 Merge branch 'master' into python-2.4 2017-12-05 00:13:59 -05:00
rocky
2293f77841 Make 2.4 compatible 2017-12-04 14:18:39 -05:00
rocky
212771244a Merge branch 'master' into python-2.4 2017-12-04 14:15:30 -05:00
rocky
5fc33aeef5 Merge branch 'master' into python-2.4 2017-12-04 09:41:49 -05:00
rocky
fff0d1c988 Include weird 2.6 bugs in 2.5 2017-12-03 20:22:29 -05:00
rocky
987b5a2290 Merge branch 'master' into python-2.4 2017-12-03 19:57:26 -05:00
rocky
910d210e52 Merge branch 'master' into python-2.4 2017-12-03 13:03:28 -05:00
rocky
b719a0ee35 Merge branch 'master' into python-2.4 2017-12-03 12:29:05 -05:00
rocky
25329d2752 Update runtest failures 2017-12-03 11:20:06 -05:00
rocky
df4d80ff26 Merge branch 'master' into python-2.4 2017-12-03 11:19:48 -05:00
rocky
13ab06ecb1 Fix bug in 2.6- except_cond3 2017-12-03 06:10:37 -05:00
rocky
72e2d1a2bf One more _come_from -> _come_froms 2017-12-03 05:19:20 -05:00
rocky
c90210c063 Grammar "COME_FROM"_from cleanups ...
tryelse constructs in 2.x fixed up
_come_from -> _come_froms (COME_FROM*)
consolidate come_froms rule into sincle parser.py

sync unit/test_grammar.py
2017-12-03 05:04:06 -05:00
rocky
21a8726a47 Merge branch 'master' into python-2.4 2017-12-03 03:34:50 -05:00
rocky
ca7f267103 Merge branch 'master' into python-2.4 2017-12-02 21:18:00 -05:00
rocky
7b15e54b7d Add "global" in functions that just read 2017-12-02 19:11:11 -05:00
rocky
ccd007355c Merge branch 'master' into python-2.4 2017-12-02 17:10:10 -05:00
rocky
36aba02093 Correct Python 2.4 importmultiple rule 2017-12-02 14:17:59 -05:00
rocky
a5dd330218 Merge branch 'master' into python-2.4 2017-12-02 13:23:07 -05:00
rocky
fc0eb87620 Python 2.4 compatability 2017-12-02 10:01:33 -05:00
rocky
0b9fca2263 Sync with master 2017-12-02 09:51:15 -05:00
rocky
0d9464bb92 Merge branch 'master' into python-2.4 2017-11-29 05:09:22 -05:00
rocky
ff435227e9 2.5 test for UNARY_CONVERT 2017-11-28 10:01:24 -05:00
rocky
fcdc3f67af Python 2.4 doesn't do "with" 2017-11-28 09:55:25 -05:00
rocky
299936e554 Merge branch 'master' into python-2.4 2017-11-28 09:22:24 -05:00
rocky
2e192f0467 2.3- import statement fixes 2017-11-27 22:16:36 -05:00
rocky
9062f19a97 2.4 grammar reduction 2017-11-27 21:55:26 -05:00
rocky
f51e40a1de Merge branch 'master' into python-2.4 2017-11-27 21:41:01 -05:00
rocky
e411024696 Merge hell 2017-11-27 19:44:47 -05:00
rocky
01a27e22b4 2.5 grammar reduction and increase coverage 2017-11-27 19:39:37 -05:00
rocky
7553c4aed9 Add UNARY_INVERT_OP test 2017-11-27 12:49:39 -05:00
rocky
593304bc43 Administrivia 2017-11-27 12:40:44 -05:00
rocky
a9ca30fe34 Reduce Python 2.5- grammar rules 2017-11-27 12:17:10 -05:00
rocky
6030730870 Merge branch 'master' into python-2.4 2017-11-27 07:33:23 -05:00
rocky
b9436e4851 Merge branch 'master' into python-2.4 2017-11-26 19:24:24 -05:00
rocky
b0a7452d48 2.7 tryfinally grammar rule removal 2017-11-26 15:34:00 -05:00
rocky
5e05e521d9 Merge branch 'master' into python-2.4 2017-11-26 10:08:59 -05:00
rocky
7a052c349a Merge branch 'master' into python-2.4 2017-11-26 09:33:25 -05:00
rocky
35aca37557 Isolate kv, kv2, and kdv3 better 2017-11-26 06:53:22 -05:00
rocky
57fe56d72e localize kv 2017-11-26 01:35:03 -05:00
rocky
218e73540a Merge branch 'master' into python-2.4 2017-11-26 01:27:56 -05:00
rocky
0965e2cc96 Localize kv 2017-11-26 01:26:57 -05:00
rocky
5cf4f0a82f Merge hell 2017-11-25 23:15:07 -05:00
rocky
9b0225db60 Merge branch 'master' into python-2.4 2017-11-25 23:15:01 -05:00
rocky
8c0959de42 inf and nan tests 2017-11-25 23:11:27 -05:00
rocky
ccd71c857f Regularze grammar coverage rules 2017-11-24 22:44:22 -05:00
rocky
b89dbb0ee7 Merge hell 2017-11-24 21:48:24 -05:00
rocky
a5bdc1acd0 Merge branch 'master' into python-2.4 2017-11-24 21:48:14 -05:00
rocky
a279784d8d Merge branch 'master' into python-2.4 2017-11-23 17:17:54 -05:00
rocky
3a9f4f2984 Merge branch 'master' into python-2.4 2017-11-23 12:37:00 -05:00
rocky
51ae8313cf Merge branch 'master' into python-2.4 2017-11-22 14:45:16 -05:00
rocky
38f04f0073 More complete grammar coverage 2017-11-22 11:15:39 -05:00
rocky
f3da5d770d Merge hell 2017-11-22 06:26:20 -05:00
rocky
24fb13cf23 Merge branch 'master' into python-2.4 2017-11-22 06:25:52 -05:00
rocky
524e8c8410 Python 2.5 "with". isolate 2.5-2.7 grammar better 2017-11-16 09:18:26 -05:00
rocky
52d1e44560 Merge branch 'master' into python-2.4 2017-11-16 09:18:19 -05:00
rocky
6055c5e165 Get ready for release python-2.4- 2017-11-13 10:58:46 -05:00
rocky
e0ed187ea6 2.4isms...
Need print without parens. Handle old-style classes more properly?
2017-11-13 10:52:43 -05:00
rocky
eafe048c7e Get ready for release python-2.4-2.13.3 2017-11-13 10:12:27 -05:00
rocky
c0e553dbb5 Merge branch 'master' into python-2.4 2017-11-13 10:11:00 -05:00
rocky
7e59987af7 Merge branch 'master' into python-2.4 2017-10-12 07:31:19 -04:00
rocky
1f012f7c46 Merge conflicts 2017-10-12 07:18:11 -04:00
rocky
d1a3d42ab8 Sync 2017-10-12 07:08:58 -04:00
rocky
05fd992c48 Update news 2017-10-12 07:06:19 -04:00
rocky
47f1d888eb Merge branch 'master' into python-2.4 2017-10-12 07:05:34 -04:00
rocky
ca9c227837 More administrivia 2017-10-11 22:17:50 -04:00
rocky
5df384bb71 Some admin tools I use 2017-10-11 21:16:35 -04:00
rocky
e80b36347a Remove creaping Python 2.6ism 2017-10-11 20:43:17 -04:00
rocky
9e37495493 Sync with master 2017-10-10 23:06:22 -04:00
rocky
77b93c5f21 Sync with master 2017-10-10 23:04:25 -04:00
rocky
0b198ee881 Sync with master 2017-10-10 23:02:20 -04:00
rocky
9e0c65881d Sync with master 2017-10-10 22:52:07 -04:00
rocky
c796d6a799 Merge commit '1d7a3c6444eab5a02d899f789f2a57cfdcbc5a84' into python-2.4 2017-10-10 22:50:28 -04:00
rocky
3892fb533a Misc bugs 2017-10-10 16:12:02 -04:00
rocky
2ea7487ca7 One more test 2017-10-05 11:19:36 -04:00
rocky
d4f6cec3d0 Sync with master 2017-10-05 11:17:49 -04:00
rocky
b1705e283d handle newer parser reduction behavior 2017-10-03 11:54:24 -04:00
rocky
eee751e22a Go over table-semantics description yet again 2017-10-03 05:44:55 -04:00
rocky
2b0fefb95f Sync with master 2017-10-02 03:12:26 -04:00
rocky
1a627ba207 Annotation field can be unicode...
When deparsing Python 3.x from Python 2.
2017-09-26 09:53:26 -04:00
rocky
ea75bcf47e Require xdis 3.6.0 or greater 2017-09-25 20:11:53 -04:00
rocky
6c6dcab857 Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2017-09-25 20:09:04 -04:00
rocky
0654aed6c8 Get ready for release 2.12.0 2017-09-25 20:08:50 -04:00
rocky
3447ca0767 Unit test for format-specifiers 2017-09-21 11:29:17 -04:00
rocky
1e858efafd Tidy pysource and fragments 2017-09-20 19:08:41 -04:00
rocky
ce88a72ea1 Tidy/regularize table entry formatting 2017-09-20 17:52:48 -04:00
rocky
7725b8e7de small fixes...
test_pythonlib.py: it is sys.exit not exit
pysource.py: restore node type on async_call function
2017-09-20 11:30:50 -04:00
rocky
62ddbe320d Start pysource unit test 2017-09-20 01:15:37 -04:00
rocky
a694601264 emgine -> template_engine 2017-09-17 12:03:49 -04:00
rocky
e06f88043f Merge branch 'master' into python-2.4 2017-08-31 09:54:23 -04:00
rocky
8fc3fd146f Merge branch 'master' into python-2.4 2017-08-31 09:47:02 -04:00
rocky
ce5066bddb Merge branch 'master' into python-2.4 2017-08-15 11:12:20 -04:00
rocky
93f18e2449 Allow version to be string...
in get_python_parser and get_scanner
2017-08-13 09:23:27 -04:00
rocky
783e62f3ca Merge branch 'python-2.4' of github.com:rocky/python-uncompyle6 into python-2.4 2017-08-10 09:45:11 -04:00
rocky
c38dc61021 xdis "is not" is now "is-not" 2017-08-09 22:07:32 -04:00
rocky
45782bbb39 Get ready for release 2.11.3 2017-08-09 21:46:27 -04:00
rocky
4c9cd5657e Merge branch 'master' into python-2.4 2017-08-09 21:45:50 -04:00
rocky
dc627d13b8 Get ready for release 2.11.3 2017-08-09 21:33:01 -04:00
rocky
ddc3489991 Python 2.4 comptiability and ...
exception match -> exception-match
2017-08-03 03:48:57 -04:00
rocky
5b24c20331 Bump xdis 2017-08-02 08:37:50 -04:00
rocky
8bb01143d8 Remove six from python 2.4/2.5 2017-08-02 08:28:08 -04:00
rocky
a9635da96a in xdis "exception match" is now "exception-match" 2017-08-02 06:36:40 -04:00
rocky
e790cb75fd Python 2.4 doesn't do six 2017-08-02 06:20:07 -04:00
rocky
348afeebbf Python 2.4 compatibility 2017-08-01 22:32:43 -04:00
rocky
6888553773 Merge branch 'master' into python-2.4 2017-06-25 18:56:31 -04:00
rocky
0f489672b9 More merge fixups from master 2017-06-18 16:05:22 -04:00
rocky
b7d8cbfaf5 Merge branch 'master' into python-2.4 2017-06-18 15:40:40 -04:00
rocky
df8d253f78 2.4 doesn't do six 2017-06-03 06:00:47 -04:00
rocky
89b42e3696 Nope it (appveyor) doesn't. 2017-06-03 05:55:21 -04:00
rocky
22e5a4a283 Administrivia
See if appveyor will handle 2.5
2017-06-03 05:53:41 -04:00
rocky
61810172d1 Merge branch 'master' into python-2.4 2017-06-03 05:50:42 -04:00
rocky
658c8b4be7 No decorators in Python < 2.6 2017-05-30 02:30:56 -04:00
rocky
d4dab54c7b Merge branch 'master' into python-2.4 2017-05-30 02:18:57 -04:00
rocky
5566b9ba6c Get ready for release 2.9.11 2017-05-06 07:49:09 -04:00
rocky
e56ab2dcd5 Sync with master 2017-05-06 07:17:04 -04:00
rocky
d6c45979ba Merge branch 'master' into python-2.4 2017-05-06 07:16:39 -04:00
rocky
a06e9bf32e Merge branch 'master' into python-2.4 2017-04-14 05:45:53 -04:00
rocky
7e8f7ba674 namedtuple25 -> namedtuple24 2017-04-14 05:42:44 -04:00
rocky
09eb7f7f78 Merge branch 'master' into python-2.4 2017-04-10 00:48:04 -04:00
rocky
f7a910ec66 Merge branch 'master' into python-2.4 2017-03-01 05:55:26 -05:00
rocky
6d6a73eea7 Merge branch 'master' into python-2.4 2017-02-25 21:02:12 -05:00
rocky
e4a7641927 Python <= 2.6 grammar fixes 2017-02-25 05:13:19 -05:00
rocky
b24b46d48c Merge branch 'master' into python-2.4 2017-02-25 04:48:06 -05:00
rocky
a65d7dce5b Python 2.5 was missing try else stmt 2017-02-22 05:30:07 -05:00
rocky
718a0a5d34 Merge branch 'master' into python-2.4 2017-02-22 05:29:49 -05:00
rocky
ea9e3ab3f5 Group coverage Makefile targets 2017-02-10 01:00:26 -05:00
rocky
770e988ff8 Changes based on coverage information 2017-01-29 22:54:30 -05:00
rocky
0fa0641974 Merge branch 'master' into python-2.4 2017-01-29 22:05:55 -05:00
rocky
c13e23cdae Get ready for release 2.9.9 2017-01-11 21:52:20 -05:00
rocky
fab4ebb768 Merge changes ...
* str() in Python 2.4 doesn't detect unicode.
* index() doesn't work on tuples
* ifelse change
2017-01-11 19:34:28 -05:00
rocky
89429339fa Merge branch 'master' into python-2.4 2017-01-11 19:25:44 -05:00
rocky
6ed129bd7a 2.4 verify hacks 2017-01-02 07:15:46 -05:00
rocky
c4fde6b53e Merge branch 'master' into python-2.4 2017-01-02 05:39:50 -05:00
rocky
a7d93e88b4 Merge branch 'master' into python-2.4 2017-01-02 05:39:13 -05:00
rocky
9891494142 We are version 2.9.9 2016-12-31 18:16:23 -05:00
rocky
f8544dfbbe 2.7->2.4 conversion 2016-12-31 10:56:43 -05:00
rocky
b00651d428 Merge master branche
Handle 2.2 list_if
2016-12-31 05:19:21 -05:00
rocky
da8dccbaca Merge branch 'master' into python-2.4 2016-12-29 02:08:12 -05:00
rocky
37272ae827 Merge commit '9b1dd0f' into python-2.4 2016-12-27 10:32:25 -05:00
rocky
7f2bee46b7 Bug in using python2 ast checking in python 2.5 2016-12-26 01:55:16 -05:00
rocky
c8a4dcf72b Removing NAME_MODULE, lint and bug fixes
scanner*.py: show_asm param is optional
verify.py: call correct scanners
main.py, verify.py: Use older Python print statements
2016-12-25 09:16:04 -05:00
rocky
012ff91cfb Merge branch 'master' into python-2.4 2016-12-25 07:57:17 -05:00
rocky
e690ddd50a Merge branch 'master' into python-2.4 2016-12-18 07:43:15 -05:00
rocky
45b7c1948c show-asm on python2.5 is optional
Make scanner2 a little more like scanner3.
2016-12-17 07:57:31 -05:00
rocky
e2fb7ca3d2 Python 2.6/2.7 tolerance in Python 2.4 branch 2016-12-17 06:51:47 -05:00
rocky
b3bda76582 Merge branch 'master' into python-2.4 2016-12-16 22:56:07 -05:00
rocky
ab6d322eca Get ready for release 2.9.7 2016-12-04 14:09:53 -05:00
rocky
1a8a0df107 Merge branch 'master' into python-2.4 2016-12-04 13:40:06 -05:00
rocky
0a37709b0a CircleCI build 2016-11-24 05:41:31 -05:00
rocky
98cd1417df Remove dup Python 3 grammar rule 2016-11-24 05:36:43 -05:00
rocky
460069ceaa Bug in 2.4 "if" dectection and...
Wrong language used in old-style exceptions: use "except Error,e" not
"except Error(e)""
2016-11-24 05:15:35 -05:00
rocky
316aa44f23 Python 2.6 grammary bug and..
__pkginfo.py__: Bump spark_parser version for parse_flags 'dups'
2016-11-24 04:09:32 -05:00
rocky
7133540c23 Make work on 2.4 2016-11-23 08:26:12 -05:00
rocky
590231741d Merge branch 'come-from-type' into python-2.4 2016-11-23 07:54:18 -05:00
rocky
a9349b8f3d Making it run on Python 2.4 and 2.5 2016-11-23 07:53:51 -05:00
228 changed files with 4873 additions and 2844 deletions

View File

@@ -1,77 +0,0 @@
version: 2
filters:
branches:
only: master
jobs:
build:
working_directory: ~/rocky/python-uncompyle6
parallelism: 1
shell: /bin/bash --login
# CircleCI 2.0 does not support environment variables that refer to each other the same way as 1.0 did.
# If any of these refer to each other, rewrite them so that they don't or see https://circleci.com/docs/2.0/env-vars/#interpolating-environment-variables-to-set-other-environment-variables .
environment:
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
COMPILE: --compile
# To see the list of pre-built images that CircleCI provides for most common languages see
# https://circleci.com/docs/2.0/circleci-images/
docker:
- image: circleci/python:3.6.9
steps:
# Machine Setup
# If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
# The following `checkout` command checks out your code to your working directory. In 1.0 we did this implicitly. In 2.0 you can choose where in the course of a job your code should be checked out.
- checkout
# Prepare for artifact and test results collection equivalent to how it was done on 1.0.
# In many cases you can simplify this from what is generated here.
# 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/'
- run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
# This is based on your 1.0 configuration file or project settings
- run:
working_directory: ~/rocky/python-uncompyle6
command: pip install --user virtualenv && pip install --user nose && pip install --user pep8
# Dependencies
# This would typically go in either a build or a build-and-test job when using workflows
# Restore the dependency cache
- restore_cache:
keys:
- v2-dependencies-{{ .Branch }}-
# fallback to using the latest cache if no exact match is found
- v2-dependencies-
- run:
command: | # Use pip to install dependengcies
pip install --user --upgrade setuptools
# Until the next release
pip install git+https://github.com/rocky/python-xdis#egg=xdis
pip install --user -e .
pip install --user -r requirements-dev.txt
# Save dependency cache
- save_cache:
key: v2-dependencies-{{ .Branch }}-{{ epoch }}
paths:
# This is a broad list of cache paths to include many possible development environments
# You can probably delete some of these entries
- vendor/bundle
- ~/virtualenvs
- ~/.m2
- ~/.ivy2
- ~/.bundle
- ~/.cache/bower
# Test
# This would typically be a build job when using workflows, possibly combined with build
# This is based on your 1.0 configuration file or project settings
- run: sudo python ./setup.py develop && make check-3.6
- run: cd ./test/stdlib && bash ./runtests.sh 'test_[p-z]*.py'
# Teardown
# If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
# Save test results
- store_test_results:
path: /tmp/circleci-test-results
# Save artifacts
- store_artifacts:
path: /tmp/circleci-artifacts
- store_artifacts:
path: /tmp/circleci-test-results

2
.github/FUNDING.yml vendored
View File

@@ -6,7 +6,7 @@ open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
liberapay: rocky
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View File

@@ -7,14 +7,19 @@ about: Tell us about uncompyle6 bugs
<!-- __Note:__ If you are using this program to do something illegal - don't.
The issue may be flagged to make it easier for those looking for illegal activity.
Bugs are not for asking questions about a problem you
If you are reporting a bug in decompilation, it will probably not be acted upon
unless it is narrowed to a small example. You may have to do some work remove
extraneous code from the source example. Most bugs can be expressed in 30 lines of
code.
Issues are not for asking questions about a problem you
are trying to solve that involve the use of uncompyle6 along the way,
although I may be more tolerant of this if you sponsor the project.
Bugs are also not for general or novice kind help on how to install
this Python program in your environment in the way you would like to
have it set up, or how to interpret a Python traceback e.g. that winds
up saying Python X.Y.Z is not supported.
this Python program and its dependencies in your environment, or in
the way you would like to have it set up, or how to interpret a Python
traceback e.g. that winds up saying Python X.Y.Z is not supported.
For these kinds of things, you will save yourself time by asking
instead on forums like StackOverflow that are geared to helping people
@@ -50,8 +55,9 @@ Prerequisites/Caveats
* Make sure the bytecode you have can be disassembled with a
disassembler and produces valid results.
* Try to make the bytecode that exhibits a bug as small as possible.
* Don't put bytecode and corresponding source code on any service that
requires registration to download.
requires registration to download. Instead attach it as a zip file.
* When you open a bug report there is no privacy. If you need privacy, then
contact me by email and explain who you are and the need for privacy.
But be mindful that you may be asked to sponsor the project for the
@@ -80,7 +86,7 @@ $ uncompyle6 <command-line-options>
$
```
Provide links to the Python bytecode. For example, you can create a
Attach a zip file to the Python bytecode or a
gist with the information. If you have the correct source code, you
can add that too.
@@ -107,6 +113,7 @@ If this is too long, then try narrowing the problem to something short.
Please modify for your setup
- Uncompyle6 version: output from `uncompyle6 --version` or `pip show uncompyle6`
- xdis version: output from `pydisasm --version` or or `pip show xdis`
- Python version for the version of Python the byte-compiled the file: `python -c "import sys; print(sys.version)"` where `python` is the correct CPython or PyPy binary.
- OS and Version: [e.g. Ubuntu bionic]
@@ -118,7 +125,11 @@ Please modify for your setup
## Priority
<!-- If this is blocking some important activity let us know what activity it blocks. -->
<!-- If this is important for a particular public good state that here.
If this is blocking some important activity let us know what activity it blocks.
Otherwise, we'll assume this has the lowest priority in addressing.
-->
## Additional Context

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: False

View File

@@ -1,31 +0,0 @@
name: uncompyle6 (osx)
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: macos-latest
strategy:
matrix:
os: [macOS]
python-version: [3.7, 3.8]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
# Until the next xdis release
pip install git+https://github.com/rocky/python-xdis#egg=xdis
pip install -e .
pip install -r requirements-dev.txt
- name: Test uncompyle6
run: |
make check

View File

@@ -1,30 +0,0 @@
name: uncompyle6 (ubuntu)
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.7, 3.8]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
# Until the next xdis release
pip install git+https://github.com/rocky/python-xdis#egg=xdis
pip install -e .
pip install -r requirements-dev.txt
- name: Test uncompyle6
run: |
make check

View File

@@ -1,31 +0,0 @@
name: uncompyle6 (windows)
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: macos-latest
strategy:
matrix:
os: [windows]
python-version: [3.7, 3.8]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
# Until the next xdis release
pip install git+https://github.com/rocky/python-xdis#egg=xdis
pip install -e .
pip install -r requirements-dev.txt
- name: Test uncompyle6
run: |
make check

4
.gitignore vendored
View File

@@ -2,6 +2,7 @@
*.pyo
*_dis
*~
.mypy_cache
/.cache
/.eggs
/.hypothesis
@@ -10,16 +11,17 @@
/.pytest_cache
/.python-version
/.tox
.mypy_cache
/.venv*
/README
/__pkginfo__.pyc
/dist
/how-to-make-a-release.txt
/nose-*.egg
/pycharm-venv
/tmp
/uncompyle6.egg-info
/unpyc
/venv
ChangeLog
__pycache__
build

11
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,11 @@
default_language_version:
python: python
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: check-merge-conflict
- id: debug-statements
stages: [commit]
- id: end-of-file-fixer
stages: [commit]

View File

@@ -1,16 +1,7 @@
language: python
python:
# - '3.5'
# - '2.7'
# - '3.4'
- '3.6'
- '3.8'
matrix:
include:
- python: '3.7'
dist: xenial # required for Python >= 3.7 (travis-ci/travis-ci#9069)
- 2.7 # this is a cheat here because travis doesn't do 2.4-2.6
install:
# Remove the next line when xdis 6.0.0 is released

View File

@@ -7,7 +7,7 @@ In the interest of shortening what is written here, I am going to start where we
For the earlier history up to 2006 and the code up until Python 2.4, which I find interesting, look at that link.
Sometime around 2014 was the dawn of ["uncompyle" and PyPI](https://pypi.python.org/pypi/uncompyle/1.1) &mdash; the era of
public version control. Dan Pascu's code although not public used [darcs](http://darcs.net/) for version control. I converted the darcs to to git and put this at [decompyle-2.4](https://github.com/rocky/decompile-2.4).
public version control. Dan Pascu's code although not public used [darcs](http://darcs.net/) for version control. I converted the darcs repository to git and put this at [decompyle-2.4](https://github.com/rocky/decompile-2.4).
# uncompyle, unpyc
@@ -17,7 +17,7 @@ The project exists not only on [github](https://github.com/gstarnberger/uncompyl
[bitbucket](https://bitbucket.org/gstarnberger/uncompyle) and later the defunct [google
code](https://code.google.com/archive/p/unpyc/) under the name _unpyc_. The git/svn history goes back to 2009. Somewhere in there the name was changed from "decompyle" to "unpyc" by Keknehv, and then to "uncompyle" by Guenther Starnberger.
The name Thomas Grainger isn't found in (m)any of the commits in the several years of active development. First Keknehv worked on this up to Python 2.5 or so while acceping Python bytecode back to 2.0 or so. Then "hamled" made a few commits earler on, while Eike Siewertsen made a few commits later on. But mostly "wibiti", and Guenther Starnberger got the code to where uncompyle2 was around 2012.
The name Thomas Grainger isn't found in (m)any of the commits in the several years of active development. First Keknehv worked on this up to Python 2.5 or so while accepting Python bytecode back to 2.0 or so. Then "hamled" made a few commits earlier on, while Eike Siewertsen made a few commits later on. But mostly "wibiti", and Guenther Starnberger got the code to where uncompyle2 was around 2012.
While John Aycock and Hartmut Goebel were well versed in compiler technology, those that have come afterwards don't seem to have been as facile in it. Furthermore, documentation or guidance on how the decompiler code worked, comparison to a conventional compiler pipeline, how to add new constructs, or debug grammars was weak. Some of the grammar tracing and error reporting was a bit weak as well.
@@ -38,7 +38,7 @@ I started working on this late 2015, mostly to add fragment support. In that, I
* this project - grammar and semantic actions for decompiling
([uncompyle6](https://pypi.python.org/pypi/uncompyle6)).
`uncompyle6`, abandons the idea found in some 2.7 version of `uncompyle` that support Python 2.6 and 2.5 by trying to rewite opcodes at the bytecode level.
`uncompyle6`, abandons the idea found in some 2.7 version of `uncompyle` that support Python 2.6 and 2.5 by trying to rewrite opcodes at the bytecode level.
Having a grammar per Python version is simpler to maintain, cleaner and it scales indefinitely.
@@ -68,13 +68,13 @@ project is largely by Michael Hansen and Darryl Pogue. If they supported getting
# So you want to write a decompiler for Python?
If you think, as I am sure will happen in the future, "hey, I can just write a decompiler from scratch and not have to deal with all all of the complexity in uncompyle6", think again. What is likely to happen is that you'll get at best a 90% solution working for a single Python release that will be obsolete in about a year, and more obsolete each subsequent year.
If you think, as I am sure will happen in the future, "hey, I can just write a decompiler from scratch and not have to deal with all of the complexity in uncompyle6", think again. What is likely to happen is that you'll get at best a 90% solution working for a single Python release that will be obsolete in about a year, and more obsolete each subsequent year.
Writing a decompiler for Python gets harder as it Python progresses. Writing decompiler for Python 3.7 isn't as easy as it was for Python 2.2. For one thing, now that Python has a well-established AST, that opens another interface by which code can be improved.
In Python 3.10 I am seeing (for the first time?) bytecode getting moved around so that it is no longer the case that line numbers have to be strictly increasing as bytecode offsets increase. And I am seeing dead code appear as well.
That said, if you still feel you want to write a single version decompiler, look at the test cases in this project and talk to me. I may have some ideas that I haven't made public yet. See also what I've wrtten about the on how this code works and on [decompilation in dynamic runtime languages](http://rocky.github.io/Deparsing-Paper.pdf) in general.
That said, if you still feel you want to write a single version decompiler, look at the test cases in this project and talk to me. I may have some ideas that I haven't made public yet. See also what I've written about the on how this code works and on [decompilation in dynamic runtime languages](http://rocky.github.io/Deparsing-Paper.pdf) in general.
@@ -82,8 +82,8 @@ That said, if you still feel you want to write a single version decompiler, look
This project deparses using an Earley-algorithm parse. But in order to do this accurately, the process of tokenization is a bit more involved in the scanner. We don't just disassemble bytecode and use the opcode name. That aspect hasn't changed from the very first decompilers. However understanding _what_ information needs to be made explicit and what pseudo instructions to add that accomplish this has taken some time to understand.
Earley-algorithm parsers have gotten negative press, most notably by the dragon book. Having used this a bit, I am convinced having a system that handles ambiguous grammars is the right thing to do and matches the problem well. Iin practice the speed of the parser isn't a problem when one understand what's up. And this has taken a little while to understand.
Earley-algorim parsers for context free languages or languages that are to a large extent context free and tend to be linear and the grammar stears towards left recursive rules. There is a technique for improving LL right recursion, but our parser doesn't have that yet.
Earley-algorithm parsers have gotten negative press, most notably by the dragon book. Having used this a bit, I am convinced having a system that handles ambiguous grammars is the right thing to do and matches the problem well. In practice the speed of the parser isn't a problem when one understand what's up. And this has taken a little while to understand.
Earley-algorithm parsers for context free languages or languages that are to a large extent context free and tend to be linear and the grammar steers towards left recursive rules. There is a technique for improving LL right recursion, but our parser doesn't have that yet.
The [decompiling paper](http://rocky.github.io/Deparsing-Paper.pdf) discusses these aspects in a more detail.

View File

@@ -22,7 +22,7 @@ TL;DR (too long; didn't read)
* Don't do something illegal. And don't ask me to do something illegal or help you do something illegal
* We already have an infinite supply of decompilation bugs that need fixing, and an automated mechanism for finding more. Decompilation bugs get addressed by easiness to fix and by whim. If you expect yours to be fixed ahead of those, you need to justify why.
* When asking for help, you may be asked for what you've tried on your own first. There are plenty of sources of information about this code.
* If you are looking for *timely* help or support, well, that is typically known paid service. I don't really have a mechanism for that since I have a full-time job. But supporting the project is an approximation.
* If you are looking for *timely* help or support, well, that is typically known as a _paid_ service. I don't really have a mechanism for that since I have a full-time job. But supporting the project is an approximation.
* Submitting a bug or issue report that is likely to get acted upon may require a bit of effort on your part to make it easy for the problem solver. If you are not willing to do that, please don't waste our time. As indicated above, supporting the project will increase the likelihood of your issue getting noticed and acted upon.
# Ethics
@@ -37,7 +37,7 @@ confidentiality. You may be asked about the authorship or claimed ownership of t
For many open-source projects bugs where the expectation is that bugs are rare, reporting bugs in a *thoughtful* way can be helpful. See also [How to Ask Questions the Smart Way](http://www.catb.org/~esr/faqs/smart-questions.html).
In this project though, most of the bug reports boil down to the something like: I have I am trying to reverse engineer some code that I am not the author/owner and that person doesn't want me to have access to. I am hitting a problem somewhere along the line which might have to do with decompilation, but it could be something else like how the bytecode was extracted, some problem in deliberately obfuscated code, or the use some kind of Python bytecode version that isn't supported by the decompiler.
In this project though, most of the bug reports boil down to the something like: I am trying to reverse engineer some code that I am not the author/owner and that person doesn't want me to have access to. I am hitting a problem somewhere along the line which might have to do with decompilation, but it could be something else like how the bytecode was extracted, some problem in deliberately obfuscated code, or the use some kind of Python bytecode version that isn't supported by the decompiler.
While you are free to report these, unless you sponsor the project, I may close them with about the same amount of effort spent that I think was used to open the report for them. And if you spent a considerable amount of time to create the bug report but didn't follow instructions given here and in the issue template, I am sorry in advance. Just go back, read, and follow instructions.
@@ -74,7 +74,7 @@ obfuscation.
Checking if bytecode is valid is pretty simple: disassemble the code.
Python comes with a disassembly module called `dis`. A prerequisite
module for this package, `xdis` has a cross-python version
disassembler called `pydisasm`.
disassembler called `pydisasm`. Using that with the `-F extended` option, generally provides a more comprehensive disassembly than is provided by other disassemblers.
## Semantic equivalence vs. exact source code

View File

@@ -43,8 +43,9 @@ check-3.0 check-3.1 check-3.2 check-3.6:
check-3.7: pytest
$(MAKE) -C test check
check-3.8:
$(MAKE) -C test check
#:Tests for Python 2.4-2.5 (don't have pytest)
check-2.4 check-2.5:
$(MAKE) -C test $@
#:PyPy 2.6.1 PyPy 5.0.1, or PyPy 5.8.0-beta0
# Skip for now

58
NEWS.md
View File

@@ -1,3 +1,23 @@
3.9.1: 2024-05-15
=================
Lots of changes major changes. track xdis API has changes.
Separate Phases more clearly:
* disassembly
* tokenization
* parsing
* abstracting to AST (more is done in newer projects)
* printing
Although we do not decompile bytecode greater than 3.8, code supports running from up to 3.12.
Many bugs fixed.
A lot of Linting and coding style modernization.
Work done in preparation for Blackhat Asia 2024
3.9.0: 2022-12-22
=================
@@ -8,7 +28,7 @@
* Correct 2.5-7 relative import formatting
* Miscellaneous bug fixing
* remove \n in lambda
* Python 2.6 gramar cleanup
* Python 2.6 grammar cleanup
* Correct some Python 2.6 chain compare decompilation
* Ensure no parenthesis subscript slices
* Correct 2.x formatting "slice2" nonterminal
@@ -35,7 +55,7 @@
================
* Fragment parsing was borked. This means deparsing in trepan2/trepan3k was broken
* 3.7+: narrow precedence for call tatement
* 3.7+: narrow precedence for call statement
* del_stmt -> delete to better match Python AST
* 3.8+ Add another `forelsestmt` (found only in a loop)
* 3.8+ Add precedence on walrus operator
@@ -66,7 +86,7 @@ Mostly small miscellaneous bug fixes
3.7.1: 2020-6-12 Fleetwood66
====================================================
Released to pick up new xdis version which has fixes to read bytestings better on 3.x
Released to pick up new xdis version which has fixes to read bytestrings better on 3.x
* Handle 3.7+ "else" branch removal adAs seen in `_cmp()` of `python3.8/distutils/version.py` with optimization `-O2`
* 3.6+ "with" and "with .. as" grammar improvements
@@ -89,10 +109,10 @@ More upheaval in xdis which we need to track here.
3.6.6: 2020-4-20 Love in the time of Cholera
============================================
The main reason for this release is an incompatablity bump in xdis which handles
The main reason for this release is an incompatibility bump in xdis which handles
3.7 SipHash better.
* Go over "yield" as an expression precidence
* Go over "yield" as an expression precedence
* Some small alignment with code in decompyle3 for "or" and "and" was done
@@ -118,7 +138,7 @@ The main focus in this release was fix some of the more glaring problems creapt
`uncompyle6` code is at a plateau where what is most needed is a code refactoring. In doing this, until everything refactored and replaced, decomplation may get worse.
Therefore, this release largely serves as a checkpoint before more major upheaval.
The upheaval, in started last release, I believe the pinnicle was around c90ff51 which wasn't a release. I suppose I should tag that.
The upheaval, in started last release, I believe the pinnacle was around c90ff51 which wasn't a release. I suppose I should tag that.
After c90ff5, I started down the road of redoing control flow in a more comprehensible, debuggable, and scalable way. See [The Control Flow Mess](https://github.com/rocky/python-uncompyle6/wiki/The-Control-Flow-Mess)
@@ -132,7 +152,7 @@ In the decompyle3 code, I've gone down the road making the grammar goal symbol b
I cringe in thinking about how the code has lived for so long without noticing such a simple stupidity, and lapse of sufficient thought.
Some stats from testing. The below give numbers of decompiled tests from Python's test suite which succesfully ran
Some stats from testing. The below give numbers of decompiled tests from Python's test suite which successfully ran
```
Version test-suites passing
@@ -175,14 +195,14 @@ On the most recent Python versions I regularly decompile thousands of Python pro
Does this mean the decompiler works perfectly? No. There are still a dozen or so failing programs, although the actual number of bugs is probably smaller though.
However, in perparation of a more major refactoring of the parser grammar, this release was born.
However, in preparation of a more major refactoring of the parser grammar, this release was born.
In many cases, decompilation is better. But there are some cases where decompilation has gotten worse. For lack of time (and interest) 3.0 bytecode suffered a hit. Possibly some code in the 3.x range did too. In time and with cleaner refactored code, this will come back.
Commit c90ff51 was a local maxiumum before, I started reworking the grammar to separate productions that were specific to loops versus those that are not in loops.
In the middle of that I added another grammar simplication to remove singleton productions of the form `sstmts-> stmts`. These were always was a bit ugly, and complicated output.
Commit c90ff51 was a local maximum before, I started reworking the grammar to separate productions that were specific to loops versus those that are not in loops.
In the middle of that I added another grammar simplification to remove singleton productions of the form `sstmts-> stmts`. These were always was a bit ugly, and complicated output.
At any rate if decompilation fails, you can try c90ff51. Or another decompiler. `unpyc37` is pretty good for 3.7. wibiti `uncompyle2` is great for 2.7. `pycdc` is mediocre for Python before 3.5 or so, and not that good for the most recent Python. Geerally these programs will give some sort of answer even if it isn't correct.
At any rate if decompilation fails, you can try c90ff51. Or another decompiler. `unpyc37` is pretty good for 3.7. wibiti `uncompyle2` is great for 2.7. `pycdc` is mediocre for Python before 3.5 or so, and not that good for the most recent Python. Generally these programs will give some sort of answer even if it isn't correct.
decompyle3 isn't that good for 3.7 and worse for 3.8, but right now it does things no other Python decompiler like `unpyc37` or `pycdc` does. For example, `decompyle3` handles variable annotations. As always, the issue trackers for the various programs will give you a sense for what needs to be done. For now, I've given up on reporting issues in the other decompilers because there are already enough issues reported, and they are just not getting fixed anyway.
@@ -213,7 +233,7 @@ indicate when an import contains a dotted import. Similarly, code for
3.7 `import .. as ` is basically the same as `from .. import`, the
only difference is the target of the name changes to an "alias" in the
former. As a result, the disambiguation is now done on the semantic
action side, rathero than in parsing grammar rules.
action side, rather than in parsing grammar rules.
Some small specific fixes:
@@ -246,13 +266,13 @@ 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
Another `assert` transform rule was added. Parser rules to distinguish
`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
too.
A number of small bugs were fixed, and some administrative changes to
make `make check-short` really be short, but check more throughly what
make `make check-short` really be short, but check more thoroughly what
it checks. minimum xdis version needed was bumped to include in the
newer 3.6-3.9 releases. See the `ChangeLog` for details.
@@ -261,7 +281,7 @@ newer 3.6-3.9 releases. See the `ChangeLog` for details.
=============================
The main focus in this release was more accurate decompilation especially
for 3.7 and 3.8. However there are some improvments to Python 2.x as well,
for 3.7 and 3.8. However there are some improvements to Python 2.x as well,
including one of the long-standing problems of detecting the difference between
`try ... ` and `try else ...`.
@@ -269,11 +289,11 @@ With this release we now rebase Python 3.7 on off of a 3.7 base; This
is also as it is (now) in decompyle3. This facilitates removing some of the
cruft in control-flow detection in the 2.7 uncompyle2 base.
Alas, decompilation speed for 3.7 on is greatly increased. Hopefull
Alas, decompilation speed for 3.7 on is greatly increased. Hopefully
this is temporary (cough, cough) until we can do a static control flow
pass.
Finally, runing in 3.9-dev is tolerated. We can disassemble, but no parse tables yet.
Finally, running in 3.9-dev is tolerated. We can disassemble, but no parse tables yet.
3.5.1 2019-11-17 JNC
@@ -566,7 +586,7 @@ function calls and definitions.
- Misc pydisasm fixes
- Weird comprehension bug seen via new loctraceback
- Fix Python 3.5+ CALL_FUNCTION_VAR and BUILD_LIST_UNPACK in call; with this
we can can handle 3.5+ f(a, b, *c, *d, *e) now
we can handle 3.5+ f(a, b, *c, *d, *e) now
2.15.1 2018-02-05
=====================
@@ -661,7 +681,7 @@ Overall: better 3.6 decompiling and some much needed code refactoring and cleanu
- Handle `EXTENDED_ARGS` better. While relevant to all Python versions it is most noticeable in
version 3.6+ where in switching to wordcodes the size of operands has been reduced from 2^16
to 2^8. `JUMP` instruction then often need EXTENDED_ARGS.
- Refactor find_jump_targets() with via working of of instructions rather the bytecode array.
- Refactor find_jump_targets() with via working of instructions rather the bytecode array.
- use `--weak-verify` more and additional fuzzing on verify()
- fragment parser now ignores errors in nested function definitions; an parameter was
added to assist here. Ignoring errors may be okay because the fragment parser often just needs,

View File

@@ -171,7 +171,7 @@ Expanding decompiler availability to multiple Python Versions
--------------------------------------------------------------
Above we mention decompiling multiple versions of bytecode from a
single Python interpreter. We we talk about having the decompiler
single Python interpreter. We talk about having the decompiler
runnable from multiple versions of Python, independent of the set of
bytecode that the decompiler supports.
@@ -185,7 +185,7 @@ implemented correctly. These also make excellent programs to check
whether a program has decompiled correctly.
Aside from this, debugging can be easier as well. To assist
understanding bytcode and single stepping it see `x-python
understanding bytecode and single stepping it see `x-python
<https://pypi.org/project/x-python/>`_ and the debugger for it
`trepan-xpy <https://pypi.org/project/trepanxpy/>`_.

View File

@@ -41,7 +41,7 @@ although compatible with the original intention, is yet a little bit
different. See this_ for more information.
Python fragment deparsing given an instruction offset is useful in
showing stack traces and can be encorporated into any program that
showing stack traces and can be incorporated into any program that
wants to show a location in more detail than just a line number at
runtime. This code can be also used when source-code information does
not exist and there is just bytecode. Again, my debuggers make use of
@@ -103,16 +103,16 @@ Installation
You can install from PyPI using the name ``uncompyle6``::
pip install uncompyle6
$ pip install uncompyle6
To install from source code, this project uses setup.py, so it follows the standard Python routine::
$ pip install -e . # set up to run from source tree
$ pip install -e . # set up to run from source tree
or::
$ python setup.py install # may need sudo
$ python setup.py install # may need sudo
A GNU Makefile is also provided so :code:`make install` (possibly as root or
sudo) will do the steps above.
@@ -122,7 +122,7 @@ Running Tests
::
make check
$ make check
A GNU makefile has been added to smooth over setting running the right
command, and running tests from fastest to slowest.
@@ -161,8 +161,8 @@ Python syntax changes, you should use this option if the bytecode is
the right bytecode for the Python interpreter that will be checking
the syntax.
You can also cross compare the results with either another version of
`uncompyle6` since there are are sometimes regressions in decompiling
You can also cross compare the results with another version of
`uncompyle6` since there are sometimes regressions in decompiling
specific bytecode as the overall quality improves.
For Python 3.7 and 3.8, the code in decompyle3_ is generally
@@ -199,7 +199,7 @@ On the lower end of Python versions, decompilation seems pretty good although
we don't have any automated testing in place for Python's distributed tests.
Also, we don't have a Python interpreter for versions 1.6, and 2.0.
In the Python 3 series, Python support is is strongest around 3.4 or
In the Python 3 series, Python support is strongest around 3.4 or
3.3 and drops off as you move further away from those versions. Python
3.0 is weird in that it in some ways resembles 2.6 more than it does
3.1 or 2.7. Python 3.6 changes things drastically by using word codes
@@ -303,15 +303,12 @@ See Also
.. _uncompyle2: https://github.com/wibiti/uncompyle2
.. _unpyc37: https://github.com/andrew-tavera/unpyc37
.. _this: https://github.com/rocky/python-uncompyle6/wiki/Deparsing-technology-and-its-use-in-exact-location-reporting
.. |buildstatus| image:: https://travis-ci.org/rocky/python-uncompyle6.svg
:target: https://travis-ci.org/rocky/python-uncompyle6
.. |packagestatus| image:: https://repology.org/badge/vertical-allrepos/python:uncompyle6.svg
:target: https://repology.org/project/python:uncompyle6/versions
.. |buildstatus| image:: https://travis-ci.org/rocky/python-uncompyle6.svg :target: https://travis-ci.org/rocky/python-uncompyle6
.. |packagestatus| image:: https://repology.org/badge/vertical-allrepos/python:uncompyle6.svg :target: https://repology.org/project/python:uncompyle6/versions
.. _PJOrion: http://www.koreanrandom.com/forum/topic/15280-pjorion-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%B4%D0%B5%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%BE%D0%B1%D1%84
.. _pydecipher: https://github.com/mitre/pydecipher
.. _Deobfuscator: https://github.com/extremecoders-re/PjOrion-Deobfuscator
.. _Py2EXE: https://en.wikipedia.org/wiki/Py2exe
.. |Supported Python Versions| image:: https://img.shields.io/pypi/pyversions/uncompyle6.svg
.. |Latest Version| image:: https://badge.fury.io/py/uncompyle6.svg
:target: https://badge.fury.io/py/uncompyle6
.. |Latest Version| image:: https://badge.fury.io/py/uncompyle6.svg :target: https://badge.fury.io/py/uncompyle6
.. |Pypi Installs| image:: https://pepy.tech/badge/uncompyle6/month

View File

@@ -1,4 +1,4 @@
# Copyright (C) 2018, 2020-2021 Rocky Bernstein <rocky@gnu.org>
# Copyright (C) 2018, 2020-2021 2024 Rocky Bernstein <rocky@gnu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -32,9 +32,11 @@
# 3.3 | pip | 10.0.1 |
# 3.4 | pip | 19.1.1 |
import os.path as osp
# Things that change more often go here.
copyright = """
Copyright (C) 2015-2021 Rocky Bernstein <rb@dustyfeet.com>.
Copyright (C) 2015-2021, 2024 Rocky Bernstein <rb@dustyfeet.com>.
"""
classifiers = [
@@ -60,6 +62,8 @@ classifiers = [
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Debuggers",
"Topic :: Software Development :: Libraries :: Python Modules",
@@ -75,7 +79,7 @@ entry_points = {
]
}
ftp_url = None
install_requires = ["spark-parser >= 1.8.9, < 1.9.0", "xdis >= 6.0.2, < 6.1.0"]
install_requires = ["spark-parser >= 1.8.9, < 1.9.0", "xdis >= 6.0.8, < 6.2.0"]
license = "GPL3"
mailing_list = "python-debugger@googlegroups.com"
@@ -88,21 +92,18 @@ web = "https://github.com/rocky/python-uncompyle6/"
zip_safe = True
import os.path
def get_srcdir():
filename = os.path.normcase(os.path.dirname(os.path.abspath(__file__)))
return os.path.realpath(filename)
filename = osp.normcase(osp.dirname(osp.abspath(__file__)))
return osp.realpath(filename)
srcdir = get_srcdir()
def read(*rnames):
return open(os.path.join(srcdir, *rnames)).read()
return open(osp.join(srcdir, *rnames)).read()
# Get info from files; set: long_description and __version__
# Get info from files; set: long_description and VERSION
long_description = read("README.rst") + "\n"
exec(read("uncompyle6/version.py"))

View File

@@ -1,4 +1,6 @@
#!/bin/bash
# Run tests over all Python versions in branch python-2.4-2.7
set -e
function finish {
cd $owd
}
@@ -10,7 +12,7 @@ if ! source ./pyenv-2.4-2.7-versions ; then
exit $?
fi
if ! source ./setup-python-2.4.sh ; then
exit $?
exit $rc
fi
cd ..
@@ -25,3 +27,4 @@ for version in $PYVERSIONS; do
fi
echo === $version ===
done
finish

View File

@@ -0,0 +1,31 @@
#!/bin/bash
# Run tests over all Python versions in branch python-3.0-3.2
set -e
function finish {
cd $owd
}
owd=$(pwd)
trap finish EXIT
cd $(dirname ${BASH_SOURCE[0]})
if ! source ./pyenv-3.0-3.2-versions ; then
exit $?
fi
if ! source ./setup-python-3.0.sh ; then
exit $?
fi
cd ..
for version in $PYVERSIONS; do
echo --- $version ---
if ! pyenv local $version ; then
exit $?
fi
make clean && python setup.py develop
if ! make check ; then
exit $?
fi
echo === $version ===
done
finish

3
admin-tools/check-3.3-3.5-versions.sh Normal file → Executable file
View File

@@ -1,4 +1,6 @@
#!/bin/bash
# Run tests over all Python versions in branch python-3.3-3.5
set -e
function finish {
cd $owd
}
@@ -25,3 +27,4 @@ for version in $PYVERSIONS; do
fi
echo === $version ===
done
finish

View File

@@ -0,0 +1,46 @@
git pull
Change version in uncompyle6/version.py
source uncompyle6/version.py
echo $VERSION
git commit -m"Get ready for release $VERSION" .
Update ChangeLog:
make ChangeLog
Update NEWS from ChangeLog
make check
git commit --amend .
git push
Make sure pyenv is running
# Pyenv
source admin-tools/check-newer-versions.sh
# Switch to python-2.4 and build that first...
source admin-tools/setup-python-2.4
rm ChangeLog
git merge master
Update NEWS from master branch
git commit -m"Get ready for release $VERSION" .
source admin-tools/check-older-versions.sh
source admin-tools/check-newer-versions.sh
make-dist-older.sh
git tag release-python-2.4-$VERSION
./make-dist-newer.sh
git tag release-$VERSION
twine upload dist/uncompyle6-${VERSION}*

View File

@@ -3,9 +3,9 @@ PACKAGE=uncompyle6
# FIXME put some of the below in a common routine
function finish {
cd $owd
cd $make_dist_uncompyle6_owd
}
owd=$(pwd)
make_dist_uncompyle6_owd=$(pwd)
trap finish EXIT
cd $(dirname ${BASH_SOURCE[0]})
@@ -21,6 +21,11 @@ source $PACKAGE/version.py
echo $__version__
for pyversion in $PYVERSIONS; do
echo --- $pyversion ---
if [[ ${pyversion:0:4} == "pypy" ]] ; then
echo "$pyversion - PyPy does not get special packaging"
continue
fi
if ! pyenv local $pyversion ; then
exit $?
fi
@@ -41,3 +46,4 @@ tarball=dist/${PACKAGE}-${__version_}_-tar.gz
if [[ -f $tarball ]]; then
rm -v dist/${PACKAGE}-${__version__}-tar.gz
fi
finish

View File

@@ -0,0 +1,49 @@
#!/bin/bash
PACKAGE=uncompyle6
# FIXME put some of the below in a common routine
function finish {
cd $uncompyle6_30_make_dist_owd
}
cd $(dirname ${BASH_SOURCE[0]})
uncompyle6_30_make_dist_owd=$(pwd)
trap finish EXIT
if ! source ./pyenv-3.0-3.2-versions ; then
exit $?
fi
if ! source ./setup-python-3.0.sh ; then
exit $?
fi
cd ..
source $PACKAGE/version.py
echo $__version__
for pyversion in $PYVERSIONS; do
echo --- $pyversion ---
if [[ ${pyversion:0:4} == "pypy" ]] ; then
echo "$pyversion - PyPy does not get special packaging"
continue
fi
if ! pyenv local $pyversion ; then
exit $?
fi
# pip bdist_egg create too-general wheels. So
# we narrow that by moving the generated wheel.
# Pick out first two number of version, e.g. 3.5.1 -> 35
first_two=$(echo $pyversion | cut -d'.' -f 1-2 | sed -e 's/\.//')
rm -fr build
python setup.py bdist_egg bdist_wheel
mv -v dist/${PACKAGE}-$__version__-{py2.py3,py$first_two}-none-any.whl
echo === $pyversion ===
done
python ./setup.py sdist
tarball=dist/${PACKAGE}-${__version__}.tar.gz
if [[ -f $tarball ]]; then
mv -v $tarball dist/${PACKAGE}_31-${__version__}.tar.gz
fi
finish

View File

@@ -3,11 +3,11 @@ PACKAGE=uncompyle6
# FIXME put some of the below in a common routine
function finish {
cd $owd
cd $uncompyle6_33_make_owd
}
cd $(dirname ${BASH_SOURCE[0]})
owd=$(pwd)
uncompyle6_33_make_owd=$(pwd)
trap finish EXIT
if ! source ./pyenv-3.3-3.5-versions ; then
@@ -22,6 +22,11 @@ source $PACKAGE/version.py
echo $__version__
for pyversion in $PYVERSIONS; do
echo --- $pyversion ---
if [[ ${pyversion:0:4} == "pypy" ]] ; then
echo "$pyversion - PyPy does not get special packaging"
continue
fi
if ! pyenv local $pyversion ; then
exit $?
fi
@@ -33,6 +38,12 @@ for pyversion in $PYVERSIONS; do
rm -fr build
python setup.py bdist_egg bdist_wheel
mv -v dist/${PACKAGE}-$__version__-{py2.py3,py$first_two}-none-any.whl
echo === $pyversion ===
done
python ./setup.py sdist
tarball=dist/${PACKAGE}-${__version__}.tar.gz
if [[ -f $tarball ]]; then
mv -v $tarball dist/${PACKAGE}_31-${__version__}.tar.gz
fi
finish

View File

@@ -3,11 +3,11 @@ PACKAGE=uncompyle6
# FIXME put some of the below in a common routine
function finish {
cd $owd
cd $make_uncompyle6_newest_owd
}
cd $(dirname ${BASH_SOURCE[0]})
owd=$(pwd)
make_uncompyle6_newest_owd=$(pwd)
trap finish EXIT
if ! source ./pyenv-newest-versions ; then
@@ -22,6 +22,11 @@ source $PACKAGE/version.py
echo $__version__
for pyversion in $PYVERSIONS; do
echo --- $pyversion ---
if [[ ${pyversion:0:4} == "pypy" ]] ; then
echo "$pyversion - PyPy does not get special packaging"
continue
fi
if ! pyenv local $pyversion ; then
exit $?
fi
@@ -36,3 +41,4 @@ for pyversion in $PYVERSIONS; do
done
python ./setup.py sdist
finish

7
admin-tools/merge-for-2.4.sh Executable file
View File

@@ -0,0 +1,7 @@
#/bin/bash
uncompyle6_merge_24_owd=$(pwd)
cd $(dirname ${BASH_SOURCE[0]})
if . ./setup-python-2.4.sh; then
git merge python-3.0-to-3.2
fi
cd $uncompyle6_merge_24_owd

7
admin-tools/merge-for-3.0.sh Executable file
View File

@@ -0,0 +1,7 @@
#/bin/bash
uncompyle6_merge_30_owd=$(pwd)
cd $(dirname ${BASH_SOURCE[0]})
if . ./setup-python-3.0.sh; then
git merge python-3.3-to-3.5
fi
cd $uncompyle6_merge_30_owd

7
admin-tools/merge-for-3.3.sh Executable file
View File

@@ -0,0 +1,7 @@
#/bin/bash
uncompyle6_merge_33_owd=$(pwd)
cd $(dirname ${BASH_SOURCE[0]})
if . ./setup-python-3.3.sh; then
git merge master
fi
cd $uncompyle6_merge_33_owd

View File

@@ -5,4 +5,4 @@ if [[ $0 == ${BASH_SOURCE[0]} ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
export PYVERSIONS='3.5.10 3.3.7 3.4.10'
export PYVERSIONS=' 3.3.7 3.4.10 3.5.10 '

View File

@@ -5,4 +5,4 @@ if [[ $0 == ${BASH_SOURCE[0]} ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
export PYVERSIONS='3.6.15 pypy3.6-7.3.1 3.7.16 pypy3.7-7.3.9 pypy3.8-7.3.10 pyston-2.3.5 3.8.16'
export PYVERSIONS='3.6.15 pypy3.6-7.3.1 3.7.16 pypy3.7-7.3.9 pypy3.8-7.3.10 pyston-2.3.5 3.8.18'

27
admin-tools/setup-master.sh Executable file → Normal file
View File

@@ -1,5 +1,12 @@
#!/bin/bash
PYTHON_VERSION=3.7.16
# Check out master branch and dependent development master branches
PYTHON_VERSION=3.8.18
bs=${BASH_SOURCE[0]}
if [[ $0 == $bs ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
function checkout_version {
local repo=$1
@@ -10,22 +17,16 @@ function checkout_version {
return $?
}
# FIXME put some of the below in a common routine
function finish {
cd $owd
}
owd=$(pwd)
export PATH=$HOME/.pyenv/bin/pyenv:$PATH
owd=$(pwd)
bs=${BASH_SOURCE[0]}
if [[ $0 == $bs ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
mydir=$(dirname $bs)
fulldir=$(readlink -f $mydir)
cd $fulldir/..
(cd $fulldir/.. && checkout_version python-spark && checkout_version python-xdis &&
checkout_version python-uncompyle6)
checkout_version python-uncompyle6)
git pull
rm -v */.python-version || true
cd $owd
rm -v */.python-version >/dev/null 2>&1 || true

26
admin-tools/setup-python-2.4.sh Executable file → Normal file
View File

@@ -1,24 +1,32 @@
#!/bin/bash
# Check out python-2.4-to-2.7 and dependent development branches.
PYTHON_VERSION=2.4.6
bs=${BASH_SOURCE[0]}
if [[ $0 == $bs ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
function checkout_version {
local repo=$1
version=${2:-python-2.4}
echo Checking out $version.4 on $repo ...
version=${2:-python-2.4-to-2.7}
echo Checking out $version on $repo ...
(cd ../$repo && git checkout $version && pyenv local $PYTHON_VERSION) && \
git pull
return $?
}
owd=$(pwd)
bs=${BASH_SOURCE[0]}
if [[ $0 == $bs ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
export PATH=$HOME/.pyenv/bin/pyenv:$PATH
mydir=$(dirname $bs)
fulldir=$(readlink -f $mydir)
(cd $fulldir/.. && checkout_version python-spark && checkout_version python-xdis python-2.4-to-2.7 &&
checkout_version python-uncompyle6)
cd $owd
checkout_version python-uncompyle6)
git pull
rm -v */.python-version || true
cd $owd

View File

@@ -1,6 +1,13 @@
#!/bin/bash
# Check out python-3.0-to-3.2 and dependent development branches.
PYTHON_VERSION=3.0.1
pyenv local $PYTHON_VERSION
bs=${BASH_SOURCE[0]}
if [[ $0 == $bs ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
# FIXME put some of the below in a common routine
function checkout_version {
@@ -12,24 +19,17 @@ function checkout_version {
return $?
}
function finish {
cd $owd
}
owd=$(pwd)
trap finish EXIT
export PATH=$HOME/.pyenv/bin/pyenv:$PATH
owd=$(pwd)
bs=${BASH_SOURCE[0]}
if [[ $0 == $bs ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
mydir=$(dirname $bs)
fulldir=$(readlink -f $mydir)
cd $fulldir/..
(cd $fulldir/.. && checkout_version python-spark master && checkout_version python-xdis &&
checkout_version python-uncompyle6)
cd $owd
rm -v */.python-version || true
git checkout python-3.0-to-3.2 && git pull && pyenv local $PYTHON_VERSION
git pull
rm -v */.python-version || true
cd $owd

25
admin-tools/setup-python-3.3.sh Executable file → Normal file
View File

@@ -1,6 +1,12 @@
#!/bin/bash
# Check out python-3.3-to-3.5 and dependent development branches.
PYTHON_VERSION=3.3.7
pyenv local $PYTHON_VERSION
bs=${BASH_SOURCE[0]}
if [[ $0 == $bs ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
# FIXME put some of the below in a common routine
function checkout_version {
@@ -12,24 +18,17 @@ function checkout_version {
return $?
}
function finish {
cd $owd
}
owd=$(pwd)
export PATH=$HOME/.pyenv/bin/pyenv:$PATH
owd=$(pwd)
bs=${BASH_SOURCE[0]}
if [[ $0 == $bs ]] ; then
echo "This script should be *sourced* rather than run directly through bash"
exit 1
fi
mydir=$(dirname $bs)
fulldir=$(readlink -f $mydir)
cd $fulldir/..
(cd $fulldir/.. && checkout_version python-spark master && checkout_version python-xdis &&
checkout_version python-uncompyle6)
cd $owd
checkout_version python-uncompyle6)
rm -v */.python-version || true
git checkout python-3.3-to-3.5 && git pull && pyenv local $PYTHON_VERSION
git pull
rm -v */.python-version || true
cd $owd

3
admin-tools/update-sources.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
cd $(dirname ${BASH_SOURCE[0]})/..
git pull

64
pyproject.toml Normal file
View File

@@ -0,0 +1,64 @@
[build-system]
requires = [
"setuptools>=61.2",
]
build-backend = "setuptools.build_meta"
[project]
authors = [
{name = "Rocky Bernstein", email = "rb@dustyfeet.com"},
]
name = "uncompyle6"
description = "Python cross-version byte-code library and disassembler"
dependencies = [
"click",
"spark-parser >= 1.8.9, < 1.9.0",
"xdis >= 6.0.8, < 6.2.0",
]
readme = "README.rst"
license = {text = "GPL"}
keywords = ["Python bytecode", "bytecode", "disassembler"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Topic :: Software Development :: Libraries :: Python Modules",
"Programming Language :: Python :: 2.4",
"Programming Language :: Python :: 2.5",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.0",
"Programming Language :: Python :: 3.1",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
dynamic = ["version"]
[project.urls]
Homepage = "https://github.com/rocky/python-uncompyle6"
Downloads = "https://github.com/rocky/python-uncompyle6/releases"
[project.optional-dependencies]
dev = [
"pre-commit",
"pytest",
]
[project.scripts]
uncompyle6 = "uncompyle6.bin.uncompile:main_bin"
uncompyle6-tokenize = "uncompyle6.bin.pydisassemble:main"
[tool.setuptools.dynamic]
version = {attr = "uncompyle6.version.__version__"}

View File

@@ -29,7 +29,7 @@ def list_comp():
[y for y in range(3)]
def get_parsed_for_fn(fn):
code = fn.__code__
code = fn.func_code
return deparse(code, version=PYTHON_VERSION_TRIPLE)
def check_expect(expect, parsed, fn_name):
@@ -316,3 +316,4 @@ for i in range(2): ...
.
""".split("\n")
parsed = get_parsed_for_fn(for_range_stmt)
check_expect(expect, parsed, 'range_stmt')

View File

@@ -20,14 +20,14 @@ def bug_loop(disassemble, tb=None):
disassemble(tb)
def test_if_in_for():
code = bug.__code__
code = bug.func_code
scan = get_scanner(PYTHON_VERSION_TRIPLE)
if (2, 7) <= PYTHON_VERSION_TRIPLE < (3, 1) and not IS_PYPY:
scan.build_instructions(code)
fjt = scan.find_jump_targets(False)
## FIXME: the data below is wrong.
## we get different results currenty as well.
## we get different results currently as well.
## We need to probably fix both the code
## and the test below
# assert {15: [3], 69: [66], 63: [18]} == fjt

View File

@@ -1,7 +1,9 @@
import re
from xdis.version_info import IS_PYPY, PYTHON_VERSION_TRIPLE
from uncompyle6.parser import get_python_parser, python_parser
from uncompyle6.scanner import get_scanner
from xdis.version_info import PYTHON_VERSION_TRIPLE, IS_PYPY
def test_grammar():
@@ -28,7 +30,7 @@ def test_grammar():
expect_lhs.add("get_iter")
if PYTHON_VERSION_TRIPLE >= (3, 8) or PYTHON_VERSION_TRIPLE < (3, 0):
if PYTHON_VERSION_TRIPLE >= (3, 8):
expect_lhs.add("stmts_opt")
else:
expect_lhs.add("async_with_as_stmt")
@@ -45,28 +47,34 @@ def test_grammar():
expect_lhs.add("kvlist")
expect_lhs.add("kv3")
unused_rhs.add("dict")
if PYTHON_VERSION_TRIPLE < (3, 7) and PYTHON_VERSION_TRIPLE[:2] != (2, 7):
else:
if PYTHON_VERSION_TRIPLE < (3, 7) and PYTHON_VERSION_TRIPLE[:2] not in (
(2, 7),
(2, 6),
):
# NOTE: this may disappear
expect_lhs.add("except_handler_else")
expect_lhs.add("load_genexpr")
expect_lhs.add("kwarg")
if PYTHON_VERSION_TRIPLE >= (3, 0):
expect_lhs.add("load_genexpr")
unused_rhs = unused_rhs.union(
set(
"""
except_pop_except generator_exp
""".split()
unused_rhs = unused_rhs.union(
set(
"""
except_pop_except generator_exp
""".split()
)
)
)
if PYTHON_VERSION_TRIPLE < (3, 7):
expect_lhs.add("annotate_arg")
expect_lhs.add("annotate_tuple")
unused_rhs.add("mkfunc_annotate")
if PYTHON_VERSION_TRIPLE < (3, 7):
expect_lhs.add("annotate_arg")
expect_lhs.add("annotate_tuple")
unused_rhs.add("mkfunc_annotate")
unused_rhs.add("dict_comp")
unused_rhs.add("classdefdeco1")
unused_rhs.add("tryelsestmtl")
unused_rhs.add("dict_comp")
unused_rhs.add("classdefdeco1")
unused_rhs.add("tryelsestmtl")
if PYTHON_VERSION_TRIPLE >= (3, 5):
expect_right_recursive.add(
(("l_stmts", ("lastl_stmt", "come_froms", "l_stmts")))
@@ -98,7 +106,9 @@ def test_grammar():
)
reduced_dup_rhs = dict((k, dup_rhs[k]) for k in dup_rhs if k not in expect_dup_rhs)
if reduced_dup_rhs:
print("\nPossible duplicate RHS that might be folded, into one of the LHS symbols")
print(
"\nPossible duplicate RHS that might be folded, into one of the LHS symbols"
)
for k in reduced_dup_rhs:
print(k, reduced_dup_rhs[k])
# assert not reduced_dup_rhs, reduced_dup_rhs
@@ -123,6 +133,7 @@ def test_grammar():
opcode_set.add("THEN")
check_tokens(tokens, opcode_set)
elif PYTHON_VERSION_TRIPLE[:2] == (3, 4):
ignore_set.add("LOAD_ARG") # Used in grammar for comprehension. But not in 3.4
ignore_set.add("LOAD_CLASSNAME")
ignore_set.add("STORE_LOCALS")
opcode_set = set(s.opc.opname).union(ignore_set)

View File

@@ -5,9 +5,7 @@ from uncompyle6.semantics.consts import (
# RETURN_NONE, PASS, RETURN_LOCALS
)
from io import StringIO
def iteritems(d):
return d.items()
from StringIO import StringIO
from uncompyle6.semantics.pysource import (SourceWalker, deparse_code2str)
@@ -24,7 +22,7 @@ def test_template_engine():
# FIXME: and so on...
from uncompyle6.semantics.consts import (
TABLE_DIRECT, TABLE_R,
TABLE_R, TABLE_DIRECT,
)
from uncompyle6.semantics.fragments import (
@@ -38,7 +36,7 @@ def test_tables():
(TABLE_DIRECT, 'TABLE_DIRECT', False),
(TABLE_R, 'TABLE_R', False),
(TABLE_DIRECT_FRAGMENT, 'TABLE_DIRECT_FRAGMENT', True)):
for k, entry in iteritems(t):
for k, entry in t.iteritems():
if k in skip_for_now:
continue
fmt = entry[0]

View File

@@ -1,22 +1,20 @@
import pytest
from uncompyle6 import code_deparse
from xdis.version_info import PYTHON_VERSION_TRIPLE
pytest.mark.skip(PYTHON_VERSION_TRIPLE < (2, 7), reason="need Python < 2.7")
def test_single_mode():
single_expressions = (
"i = 1",
"i and (j or k)",
"i += 1",
"i = j % 4",
"i = {}",
"i = []",
"for i in range(10):\n i\n",
"for i in range(10):\n for j in range(10):\n i + j\n",
# 'try:\n i\nexcept Exception:\n j\nelse:\n k\n'
)
if PYTHON_VERSION_TRIPLE == (2, 7):
def test_single_mode():
single_expressions = (
'i = 1',
'i and (j or k)',
'i += 1',
'i = j % 4',
'i = {}',
'i = []',
'for i in range(10):\n i\n',
'for i in range(10):\n for j in range(10):\n i + j\n',
'try:\n i\nexcept Exception:\n j\nelse:\n k\n'
)
for expr in single_expressions:
code = compile(expr + "\n", "<string>", "single")

View File

@@ -9,4 +9,4 @@
12 JUMP_FORWARD 0 'to 15'
15_0 COME_FROM 12 '12'
15 LOAD_CONST None
18 RETURN_VALUE
18 RETURN_VALUE

View File

@@ -12,4 +12,4 @@
18 STORE_NAME 2 'd'
21_0 COME_FROM 12 '12'
21 LOAD_CONST None
24 RETURN_VALUE
24 RETURN_VALUE

View File

@@ -17,6 +17,12 @@ from xdis import Bytecode, get_opcode
opc = get_opcode(PYTHON_VERSION_TRIPLE, IS_PYPY)
Bytecode = functools.partial(Bytecode, opc=opc)
if PYTHON_VERSION_TRIPLE < (2, 5):
from cStringIO import StringIO
else:
from StringIO import StringIO
import six
def _dis_to_text(co):
@@ -67,7 +73,7 @@ def are_instructions_equal(i1, i2):
Determine if two instructions are approximately equal,
ignoring certain fields which we allow to differ, namely:
* code objects are ignore (should probaby be checked) due to address
* code objects are ignore (should probably be checked) due to address
* line numbers
:param i1: left instruction to compare
@@ -122,7 +128,7 @@ def validate_uncompyle(text, mode="exec"):
original_text = text
deparsed = code_deparse(
original_code, out=six.StringIO(), version=PYTHON_VERSION_TRIPLE, compile_mode=mode
original_code, out=StringIO(), version=PYTHON_VERSION_TRIPLE, compile_mode=mode
)
uncompyled_text = deparsed.text
uncompyled_code = compile(uncompyled_text, "<string>", "exec")

View File

@@ -1,9 +1,7 @@
# Pick up stuff from setup.py
hypothesis==2.0.0
pytest
-e .
Click~=7.0
xdis>=6.0.4
configobj~=5.0.6
setuptools~=65.5.1

View File

@@ -1,25 +1,28 @@
#!/usr/bin/env python
"""Setup script for the 'uncompyle6' distribution."""
import setuptools
import sys
"""Setup script for the 'uncompyle6' distribution."""
SYS_VERSION = sys.version_info[0:2]
if not ((2, 4) <= SYS_VERSION < (3, 12)):
mess = "Python Release 2.6 .. 3.11 are supported in this code branch."
if (2, 4) <= SYS_VERSION <= (2, 7):
if not ((2, 4) <= SYS_VERSION <= (2, 7)):
mess = "Python Release 2.4 .. 2.7 are supported in this code branch."
if ((3, 6) <= SYS_VERSION < (3, 9)):
mess += ("\nFor your Python, version %s, use the master code/branch." %
sys.version[0:3])
elif (3, 3) <= SYS_VERSION <= (3, 6):
mess += (
"\nFor your Python, version %s, use the python-2.4 code/branch."
"\nFor your Python, version %s, use the python-3.3-3.5 code/branch."
% sys.version[0:3]
)
if (3, 3) <= SYS_VERSION < (3, 6):
elif (3, 0) >= SYS_VERSION < (3, 3):
mess += (
"\nFor your Python, version %s, use the python-3.3-to-3.5 code/branch."
"\nFor your Python, version %s, use the python-3.0-to-3.2 code/branch."
% sys.version[0:3]
)
elif SYS_VERSION < (2, 4):
mess += (
"\nThis package is not supported for Python version %s." % sys.version[0:3]
"\nThis package is not supported for Python before Python 2.4 version %s." % sys.version[0:3]
)
print(mess)
raise Exception(mess)

85
test-unit/test_grammar.py Normal file
View File

@@ -0,0 +1,85 @@
import re
import unittest
from xdis.version_info import IS_PYPY, PYTHON_VERSION_TRIPLE
from uncompyle6.parser import get_python_parser, python_parser
class TestGrammar(unittest.TestCase):
def test_grammar(self):
def check_tokens(tokens, opcode_set):
remain_tokens = set(tokens) - opcode_set
remain_tokens = set([re.sub("_\d+$", "", t) for t in remain_tokens])
remain_tokens = set([re.sub("_CONT$", "", t) for t in remain_tokens])
remain_tokens = set(remain_tokens) - opcode_set
self.assertEqual(
remain_tokens,
set([]),
"Remaining tokens %s\n====\n%s" % (remain_tokens, p.dump_grammar()),
)
p = get_python_parser(PYTHON_VERSION_TRIPLE, is_pypy=IS_PYPY)
(lhs, rhs, tokens, right_recursive, dup_rhs) = p.check_sets()
expect_lhs = set(["pos_arg", "get_iter", "attribute"])
unused_rhs = set(["list", "call", "mkfunc", "unpack", "lambda_body"])
expect_right_recursive = frozenset(
[("designList", ("store", "DUP_TOP", "designList"))]
)
expect_lhs.add("kwarg")
if PYTHON_VERSION_TRIPLE[:2] <= (3, 6):
unused_rhs.add("call")
if PYTHON_VERSION_TRIPLE[:2] == (2, 7):
expect_lhs.add("kv3")
expect_lhs.add("kvlist")
unused_rhs.add("dict")
self.assertEqual(expect_lhs, set(lhs))
self.assertEqual(unused_rhs, set(rhs))
self.assertEqual(expect_right_recursive, right_recursive)
expect_dup_rhs = frozenset(
[
("COME_FROM",),
("CONTINUE",),
("JUMP_ABSOLUTE",),
("LOAD_CONST",),
("JUMP_BACK",),
("JUMP_FORWARD",),
]
)
reduced_dup_rhs = {}
for k in dup_rhs:
if k not in expect_dup_rhs:
reduced_dup_rhs[k] = dup_rhs[k]
pass
pass
for k in reduced_dup_rhs:
print(k, reduced_dup_rhs[k])
# assert not reduced_dup_rhs, reduced_dup_rhs
# FIXME: Something got borked here
def no_test_dup_rule(self):
import inspect
python_parser(
PYTHON_VERSION_TRIPLE,
inspect.currentframe().f_code,
is_pypy=IS_PYPY,
parser_debug={
"dups": True,
"transition": False,
"reduce": False,
"rules": False,
"errorstack": None,
"context": True,
},
)
if __name__ == "__main__":
unittest.main()

View File

@@ -30,55 +30,46 @@ check:
$(MAKE) check-$(PYTHON_VERSION)
#: Run working tests from Python 2.6 or 2.7
check-2.6 check-2.7: check-bytecode-2 check-bytecode-3 check-bytecode-1 check-native-short
check-2.4 check-2.5 check-2.6 check-2.7: check-bytecode-2 check-bytecode-3 check-bytecode-1 check-native-short
#: Run working tests from Python 3.0
check-3.0: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-3.0-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.0 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-3.0-run
#: Run working tests from Python 3.1
check-3.1: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-3.1-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.1 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-3.1-run
#: Run working tests from Python 3.2
check-3.2: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-3.2-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.2 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-3.2-run
#: Run working tests from Python 3.3
check-3.3: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-3.3-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.3 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-3.3-run
#: Run working tests from Python 3.4
check-3.4: check-bytecode check-3.4-ok check-2.7-ok
$(PYTHON) test_pythonlib.py --bytecode-3.4-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.4 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-3.4-run
#: Run working tests from Python 3.5
check-3.5: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-3.5-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.5 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-3.5-run
#: Run working tests from Python 3.6
check-3.6: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-3.6-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.6 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-3.6-run
#: Run working tests from Python 3.7
check-3.7: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-3.7-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.7 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-3.7-run
# #: Run working tests from Python 3.8
# check-3.8: check-bytecode
# $(PYTHON) test_pythonlib.py --bytecode-3.8-run --verify-run
# $(PYTHON) test_pythonlib.py --bytecode-3.8 --syntax-verify $(COMPILE)
check-pypy37: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-pypy37 --verify-run
#: Run working tests from Python 3.8
check-3.8: check-bytecode
$(PYTHON) test_pythonlib.py --bytecode-3.8-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.8 --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-pypy37
check-3.9: check-bytecode
@echo "Note that we do not support decompiling Python 3.9 bytecode - no 3.9 tests run"
@@ -115,7 +106,7 @@ check-bytecode-2:
# FIXME: Until we shaked out problems with xdis...
check-bytecode-3:
$(PYTHON) test_pythonlib.py \
--bytecode-3.4 --bytecode-3.5 --bytecode-3.6 \
--bytecode-3.3 --bytecode-3.4 --bytecode-3.5 --bytecode-3.6 \
--bytecode-3.7 --bytecode-3.8
#: Check deparsing on selected bytecode 3.x
@@ -274,54 +265,58 @@ grammar-coverage-3.7:
#: Check deparsing Python 3.0
check-bytecode-3.0:
$(PYTHON) test_pythonlib.py --bytecode-3.0-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.0 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.0-run
$(PYTHON) test_pythonlib.py --bytecode-3.0
#: Check deparsing Python 3.1
check-bytecode-3.1:
$(PYTHON) test_pythonlib.py --bytecode-3.1-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.1 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.1-run
$(PYTHON) test_pythonlib.py --bytecode-3.1
#: Check deparsing Python 3.2
check-bytecode-3.2:
$(PYTHON) test_pythonlib.py --bytecode-3.2-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.2 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.2-run
$(PYTHON) test_pythonlib.py --bytecode-3.2
#: Check deparsing Python 3.3
check-bytecode-3.3:
$(PYTHON) test_pythonlib.py --bytecode-3.3-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.3 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.3-run
$(PYTHON) test_pythonlib.py --bytecode-3.3
#: Check deparsing Python 3.4
check-bytecode-3.4:
$(PYTHON) test_pythonlib.py --bytecode-3.4-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.4 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.4-run
$(PYTHON) test_pythonlib.py --bytecode-3.4
#: Check deparsing Python 3.5
check-bytecode-3.5:
$(PYTHON) test_pythonlib.py --bytecode-3.5-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.5 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.5-run
$(PYTHON) test_pythonlib.py --bytecode-3.5
#: Check deparsing Python 3.6
check-bytecode-3.6:
$(PYTHON) test_pythonlib.py --bytecode-3.6-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.6 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.6-run
$(PYTHON) test_pythonlib.py --bytecode-3.6
#: Check deparsing Python 3.7
check-bytecode-3.7:
$(PYTHON) test_pythonlib.py --bytecode-3.7-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.7 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.7-run
$(PYTHON) test_pythonlib.py --bytecode-3.7
#: Check deparsing Python 3.8
check-bytecode-3.8:
$(PYTHON) test_pythonlib.py --bytecode-3.8-run --verify-run
$(PYTHON) test_pythonlib.py --bytecode-3.8 --syntax-verify
$(PYTHON) test_pythonlib.py --bytecode-3.8-run
$(PYTHON) test_pythonlib.py --bytecode-3.8
#: short tests for bytecodes only for this version of Python
check-native-short:
$(PYTHON) test_pythonlib.py --bytecode-$(PYTHON_VERSION) --syntax-verify $(COMPILE)
$(PYTHON) test_pythonlib.py --bytecode-$(PYTHON_VERSION)-run --verify-run $(COMPILE)
#: Run longer Python 2.6's lib files known to be okay
check-2.4-ok:
$(PYTHON) test_pythonlib.py --ok-2.4 --verify $(COMPILE)
#: Run longer Python 2.6's lib files known to be okay
check-2.6-ok:
$(PYTHON) test_pythonlib.py --ok-2.6 --syntax-verify $(COMPILE)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More