From 9ef670c87235066ea88aa22c9d9ee22a3a1b333a Mon Sep 17 00:00:00 2001 From: rocky Date: Tue, 11 Oct 2016 02:39:09 -0400 Subject: [PATCH] Fix Python 1.5 bytecode deparse Need xdis 3.0.2 though since the bug is really there. --- __pkginfo__.py | 2 +- requirements.txt | 2 +- test/Makefile | 10 ++++++++-- test/bytecode_1.5/docstring.pyc | Bin 0 -> 1402 bytes test/bytecode_1.5/exceptions.pyc | Bin 0 -> 3031 bytes test/bytecode_1.5/exec.pyc | Bin 0 -> 176 bytes test/bytecode_1.5/expressions.pyc | Bin 0 -> 318 bytes test/bytecode_1.5/globals.pyc | Bin 0 -> 293 bytes test/bytecode_1.5/import.pyc | Bin 0 -> 397 bytes test/bytecode_1.5/lambda.pyc | Bin 0 -> 972 bytes test/bytecode_1.5/misc.pyc | Bin 0 -> 992 bytes test/bytecode_1.5/nested_elif.pyc | Bin 0 -> 1032 bytes test/bytecode_1.5/print.pyc | Bin 0 -> 243 bytes test/bytecode_1.5/slices.pyc | Bin 0 -> 538 bytes test/bytecode_1.5/test_class.pyc | Bin 0 -> 1813 bytes test/bytecode_1.5/test_class.pyo | Bin 0 -> 1708 bytes test/bytecode_1.5/test_del.pyc | Bin 0 -> 826 bytes test/bytecode_1.5/test_del.pyo | Bin 0 -> 754 bytes test/bytecode_1.5/test_docstring.pyc | Bin 0 -> 1512 bytes test/bytecode_1.5/test_docstring.pyo | Bin 0 -> 1410 bytes test/bytecode_1.5/test_empty.pyc | Bin 0 -> 81 bytes test/bytecode_1.5/test_empty.pyo | Bin 0 -> 78 bytes test/bytecode_1.5/test_exceptions.pyc | Bin 0 -> 3131 bytes test/bytecode_1.5/test_exceptions.pyo | Bin 0 -> 2855 bytes test/bytecode_1.5/test_exec.pyc | Bin 0 -> 186 bytes test/bytecode_1.5/test_exec.pyo | Bin 0 -> 171 bytes test/bytecode_1.5/test_expressions.pyc | Bin 0 -> 338 bytes test/bytecode_1.5/test_expressions.pyo | Bin 0 -> 326 bytes test/bytecode_1.5/test_functions.pyc | Bin 0 -> 2665 bytes test/bytecode_1.5/test_functions.pyo | Bin 0 -> 2307 bytes test/bytecode_1.5/test_global.pyc | Bin 0 -> 866 bytes test/bytecode_1.5/test_global.pyo | Bin 0 -> 806 bytes test/bytecode_1.5/test_globals.pyc | Bin 0 -> 313 bytes test/bytecode_1.5/test_globals.pyo | Bin 0 -> 283 bytes test/bytecode_1.5/test_import.pyc | Bin 0 -> 675 bytes test/bytecode_1.5/test_import.pyo | Bin 0 -> 642 bytes test/bytecode_1.5/test_integers.pyc | Bin 0 -> 751 bytes test/bytecode_1.5/test_integers.pyo | Bin 0 -> 688 bytes test/bytecode_1.5/test_lambda.pyc | Bin 0 -> 1052 bytes test/bytecode_1.5/test_lambda.pyo | Bin 0 -> 814 bytes test/bytecode_1.5/test_loops.pyc | Bin 0 -> 832 bytes test/bytecode_1.5/test_loops.pyo | Bin 0 -> 724 bytes test/bytecode_1.5/test_misc.pyc | Bin 0 -> 997 bytes test/bytecode_1.5/test_misc.pyo | Bin 0 -> 928 bytes test/bytecode_1.5/test_nested_elif.pyc | Bin 0 -> 1042 bytes test/bytecode_1.5/test_nested_elif.pyo | Bin 0 -> 862 bytes test/bytecode_1.5/test_prettyprint.pyc | Bin 0 -> 3296 bytes test/bytecode_1.5/test_prettyprint.pyo | Bin 0 -> 3203 bytes test/bytecode_1.5/test_print.pyc | Bin 0 -> 253 bytes test/bytecode_1.5/test_print.pyo | Bin 0 -> 226 bytes test/bytecode_1.5/test_single_stmt.pyc | Bin 0 -> 100 bytes test/bytecode_1.5/test_single_stmt.pyo | Bin 0 -> 94 bytes test/bytecode_1.5/test_slices.pyc | Bin 0 -> 1050 bytes test/bytecode_1.5/test_slices.pyo | Bin 0 -> 969 bytes test/bytecode_1.5/test_tuple_params.pyc | Bin 0 -> 1139 bytes test/bytecode_1.5/test_tuple_params.pyo | Bin 0 -> 1088 bytes test/bytecode_1.5/test_tuples.pyc | Bin 0 -> 721 bytes test/bytecode_1.5/test_tuples.pyo | Bin 0 -> 587 bytes test/bytecode_1.5/tuple_params.pyc | Bin 0 -> 791 bytes test/test_pythonlib.py | 3 ++- uncompyle6/scanners/scanner26.py | 6 +----- 61 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 test/bytecode_1.5/docstring.pyc create mode 100644 test/bytecode_1.5/exceptions.pyc create mode 100644 test/bytecode_1.5/exec.pyc create mode 100644 test/bytecode_1.5/expressions.pyc create mode 100644 test/bytecode_1.5/globals.pyc create mode 100644 test/bytecode_1.5/import.pyc create mode 100644 test/bytecode_1.5/lambda.pyc create mode 100644 test/bytecode_1.5/misc.pyc create mode 100644 test/bytecode_1.5/nested_elif.pyc create mode 100644 test/bytecode_1.5/print.pyc create mode 100644 test/bytecode_1.5/slices.pyc create mode 100644 test/bytecode_1.5/test_class.pyc create mode 100644 test/bytecode_1.5/test_class.pyo create mode 100644 test/bytecode_1.5/test_del.pyc create mode 100644 test/bytecode_1.5/test_del.pyo create mode 100644 test/bytecode_1.5/test_docstring.pyc create mode 100644 test/bytecode_1.5/test_docstring.pyo create mode 100644 test/bytecode_1.5/test_empty.pyc create mode 100644 test/bytecode_1.5/test_empty.pyo create mode 100644 test/bytecode_1.5/test_exceptions.pyc create mode 100644 test/bytecode_1.5/test_exceptions.pyo create mode 100644 test/bytecode_1.5/test_exec.pyc create mode 100644 test/bytecode_1.5/test_exec.pyo create mode 100644 test/bytecode_1.5/test_expressions.pyc create mode 100644 test/bytecode_1.5/test_expressions.pyo create mode 100644 test/bytecode_1.5/test_functions.pyc create mode 100644 test/bytecode_1.5/test_functions.pyo create mode 100644 test/bytecode_1.5/test_global.pyc create mode 100644 test/bytecode_1.5/test_global.pyo create mode 100644 test/bytecode_1.5/test_globals.pyc create mode 100644 test/bytecode_1.5/test_globals.pyo create mode 100644 test/bytecode_1.5/test_import.pyc create mode 100644 test/bytecode_1.5/test_import.pyo create mode 100644 test/bytecode_1.5/test_integers.pyc create mode 100644 test/bytecode_1.5/test_integers.pyo create mode 100644 test/bytecode_1.5/test_lambda.pyc create mode 100644 test/bytecode_1.5/test_lambda.pyo create mode 100644 test/bytecode_1.5/test_loops.pyc create mode 100644 test/bytecode_1.5/test_loops.pyo create mode 100644 test/bytecode_1.5/test_misc.pyc create mode 100644 test/bytecode_1.5/test_misc.pyo create mode 100644 test/bytecode_1.5/test_nested_elif.pyc create mode 100644 test/bytecode_1.5/test_nested_elif.pyo create mode 100644 test/bytecode_1.5/test_prettyprint.pyc create mode 100644 test/bytecode_1.5/test_prettyprint.pyo create mode 100644 test/bytecode_1.5/test_print.pyc create mode 100644 test/bytecode_1.5/test_print.pyo create mode 100644 test/bytecode_1.5/test_single_stmt.pyc create mode 100644 test/bytecode_1.5/test_single_stmt.pyo create mode 100644 test/bytecode_1.5/test_slices.pyc create mode 100644 test/bytecode_1.5/test_slices.pyo create mode 100644 test/bytecode_1.5/test_tuple_params.pyc create mode 100644 test/bytecode_1.5/test_tuple_params.pyo create mode 100644 test/bytecode_1.5/test_tuples.pyc create mode 100644 test/bytecode_1.5/test_tuples.pyo create mode 100644 test/bytecode_1.5/tuple_params.pyc diff --git a/__pkginfo__.py b/__pkginfo__.py index 6eb7f0fa..35e15852 100644 --- a/__pkginfo__.py +++ b/__pkginfo__.py @@ -38,7 +38,7 @@ entry_points={ ]} ftp_url = None install_requires = ['spark-parser >= 1.4.0', - 'xdis >= 3.0.1'] + 'xdis >= 3.0.2'] license = 'MIT' mailing_list = 'python-debugger@googlegroups.com' modname = 'uncompyle6' diff --git a/requirements.txt b/requirements.txt index 2204cd2b..522dc373 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ spark-parser >= 1.4.0 -xdis >= 3.0.1 +xdis >= 3.0.2 diff --git a/test/Makefile b/test/Makefile index 45627d34..6e74fc3e 100644 --- a/test/Makefile +++ b/test/Makefile @@ -20,7 +20,7 @@ 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-2.7-ok +check-2.6 check-2.7: check-bytecode-2 check-bytecode-3 check-bytecode-1 check-2.7-ok #: Run working tests from Python 3.1 check-3.1: check-bytecode @@ -50,6 +50,10 @@ check-3.6: check-bytecode check-disasm: $(PYTHON) dis-compare.py +#: Check deparsing bytecode 1.x only +check-bytecode-1: + $(PYTHON) test_pythonlib.py --bytecode-1.5 + #: Check deparsing bytecode 2.x only check-bytecode-2: $(PYTHON) test_pythonlib.py \ @@ -65,7 +69,9 @@ check-bytecode-3: check-bytecode: check-bytecode-3 $(PYTHON) test_pythonlib.py \ --bytecode-2.1 --bytecode-2.2 --bytecode-2.3 --bytecode-2.4 \ - --bytecode-2.5 --bytecode-2.6 --bytecode-2.7 --bytecode-pypy2.7 + --bytecode-2.5 --bytecode-2.6 --bytecode-2.7 \ + --bytecode-pypy2.7 --bytecode-1 + #: Check deparsing Python 2.1 check-bytecode-2.1: diff --git a/test/bytecode_1.5/docstring.pyc b/test/bytecode_1.5/docstring.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f854e6a8f7ea59ef1f3e50d86d7ea93bbc52713 GIT binary patch literal 1402 zcmb_cO>fgc5PfSWP*Mjqlm-P9aH=Gj3z8ji>4ggdPDUaUqmumr@lk)p%-b$rhO_y^`V|~zDwG_;0e!0&6oeA(_uRF6s?lvhH#sJoEz8c7lk|! z6?Q%91E|9+KgYdGuiVL?80Ku2c+Lx&i*~qfx%0~1q~@S-yJ-mappOhSXvb<;jSa?z zP$OpS3QStX*oN5%YFuN+9Vkxt80zI6VRLo!$z)uDE*n7FssSY2Zh-dnywMh4&%5U9 tc{RSSJ1l(tjP3iHZMtZJ;KmJ8TrB#3?z%NxbMbF?Go~%WGP{qh<{#sq{F(p& literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/exceptions.pyc b/test/bytecode_1.5/exceptions.pyc new file mode 100644 index 0000000000000000000000000000000000000000..441323ea3d3030dda3ba8e30b66a85aec010e0cf GIT binary patch literal 3031 zcmcJReQ(=T6viJrN!O&w)QZ6*ghZh#O9UMxE|d;cRR zvFZQ=R1gRujX(G-d?vmF=N#L~t(^)D6(_c@kKfMkIWN9{HcExRA6~z*4_;he&0oAB z{^xNQ_=pE9pjG(5_k8Gp*5Erjc0n8PT^(mYJMc3)&VuUjvpUX!n(%Wvo&(*2Kd0k! zpgZu->3AMw;Lqzg4KD;0 zm)L)%agpJlc|~YeLC;}a0$mc{kANG!$3SH`jzbkeU=!belb#obBS&bPzM}J1WsU+t#9`tQLnYZ6n*gl);Ec(e3@7xqLV_8Mch7)m7-@GtQh-lGUC1 zy~$Uw)O1<>e$n>(CH1=+`<-RKJy#I@iQ9c!VH@BmKVZwL{W1_aq%{iMEQ^? zCmD5Bh;~3%mFV>e(bJ$ekR3WWD4@S6Yz|$E;aoU3>CJSAL^ui2ZZN(!81x4nK{&~w zWMO{E$@t1gOtxBe$4<5-=X{7XCrG=3R0qAKNV^jxuA8?NY3Slp*9Lnh2FnT9b+zS)Pik*sSV5vK$Yio7XdwwAI_Xn!Wf90>$?Vw&{{wPf~sH#8{^qwm4 z{zL%|>Icc7-iX;3g#E)fWj{`*>=Tg!vCkoQduy|zaqi@W^hDC0QLw$H4J*O6Gx#>Y zmRm7>qOh$A>=x*D61E+~E_2J>mE5YV=jCQH3=cB{dqy8fgiA9hcBi zTB*2+OiE~)0yC>=iG5s2F8V2tTFM#blxJosrj?e_`G;wWVg&jI_aSo0+@-{Vd>d)k zyTk|I;XcnerY9fhNe8_GpZq}&c&hcI3K~sKq)jwB@=-9efvr9wSM4eMetEX}vxS+Ah7m=P#o&j~S&hl!h!j}ZV5t{wvb literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/expressions.pyc b/test/bytecode_1.5/expressions.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f0e90327ef0c35d6be3bfad3f4471a492ddab80e GIT binary patch literal 318 zcmZury9&ZU5S;VkBSA&5Q2*d6Kfpq33u6&08^I*Sfh6HJg@TYmf5F1PbvIE2@z|SX zX7=?A2f^mCUBuw0_|ur7;_#6GcVG`B3Xy5C9xJZ#ph2Nj`KSVvz_l)!-PDJ)ASBUP zPTscHDDAJ(X_PK25pRl2k4J`<0agyN!mVtzBLOWiWvDM9p}9-yOr@B_r;&qxJd0{ep0Lrl^~27FUu2gn3(i`2(5 ze4>_40uMgS*f}ZK05@>Mwq2#s@RR*c-DJix^tc!mEx?)D8@7u!YQ+dqGWUtrBVe+9@nJ&+V$~vlIYHfv=kQzMlex-MdvtC1a HN&@)@D$p+o literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/import.pyc b/test/bytecode_1.5/import.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ac4a8854eea4c2015be25545fe1ed7756ea21df GIT binary patch literal 397 zcmXX>%TB{E5FDp35}Jn!J@5w=ha&ZaxFB(9FD*!|R4GEL(!`X=2`=7HwWl07@C6+B zTh;-~J08#O?AkvI-wVGV?^5t;bI=z<&D(_nVkRDxKrH^R%0cX)?nAW@w^0XB9TZ)N zI)v(3R-B=5`5swc;V~QFcmsKkPayAG%((3U<_gc;%|{%dzJT=MPi27V>^;Rg6IhNM zeoM}Q#VBN?mW30M)iqJT$3sGLwpu+cr8!7Lmn>D1sgPmCgvr* zolL05bS{aKog|le$>o*S1vN#POm!y74o+XSCb`+_kGCu_Clah(H}+kjw+S0Mtni$Y mnw)CzFk%r+=e*o&Q;qk3)_WHeajGwdj_Y_L5}q?eD1HGo4^Ni> literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/lambda.pyc b/test/bytecode_1.5/lambda.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7c91db544eb613665f4d2bd76268e4be0fa51372 GIT binary patch literal 972 zcmb_a%}&BV5dLPz@8KAbbNv;rar zwOzKeGwk;>yYIuO`QdIZCZH#vpL?NcO(R4GSl|uF6s*E44ULh;x+x_sC0!<4k~F)? z2sYph@9MzT%D4-AQpPcCo#RYnD)_d6+ax3z69olBuZvk!h-YlZ)X-lPC5JLQ4%4mB z@%DMT7~8a;Ke-02F8%T-TYR6of9X@Vg4~uI|C{94 w;|~+QHF9+pY3^#YDALDSCJyp+o-LPILP_i$DIfbaUE?-=&s9(LbX)QJ37iL%`v3p{ literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/misc.pyc b/test/bytecode_1.5/misc.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d277f5ce7c0f9b85e4a4aaf629ca90deba6a3e4e GIT binary patch literal 992 zcmZuwZEF)j5Po(qFLyENTkK0(i~S_=i-Pz`kPr%9i{*qyEk@yp*-br2FX?R}6$<;I z{t3VPL!H^n8@6FHnR#Y*o|$LKpQu(r>-0?@^eNHTv;<)3NGM4ZH6>ZY zH`3{qDR7{NgB+bli*%XNSBdGr82>Up`Ei`2$s~@6gxh$cPY;xn?ov!+*%BsT(!@P) zXN8zKU1u}N7Q}NZH{24vPn_v-7RSXoaX#?sOtS&=x+ZbKtafptlA64uC#o{3kdts( zQY2$)WRBZsXYspF(ecOA50TmYABjJ=&&}h9(D?m@*|?V=kXeI-Hzz%aB_Q*oXO4dM zhEwgLqjZ!`05Xk4^Ka~yHGkWU- zII|2`htOqq|C#TfrMq8ND*p4`s5}CGOnf{D0r>chfemnHfS&-{00r=3f|~@xPl7Vw zsNR~vIHfhSucbkSNHb8&h`J%J%c3?c>PEOOhT15oFf#lxQ9sW0HO!e1^^;sr>?y59 z`aMm98lawtJ``Y+4EqZ07gVUJzmQ4M(1n6oFm_5=Gk5FUpCk2-rC3y%}_ z_{3gM*~1bZXY65P&N=5?2(Ko4(b>4vTD1TEuRz7<{nOdF7TOJKbT)3gJ*qe~a|yf& zjzQOfhIL2Z3<`^01V^{?Y_}b}C|$keg)w|{+qOf2uGz41x`-Amw`J?ahaAqpOXGkm z9b4Voug+89{X?tO7x5q)FY3;0O81W&KV%2l$QCE-Fw zVSJU!XDyR;Z0NjU`t0*FpO)j;zUjnxTtFF^7_Qg~!C20h>A-ZjME3*BcQ#FvFrMii vC)p}Ns%^T^Jz}tRhPjEf9jx9hTkd_>OB$PALj=Olu_d;xEsniwaU*^Jw?|e# literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_class.pyc b/test/bytecode_1.5/test_class.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5c4da7a6d168f5c4c61e5056a03c0b46ee58247 GIT binary patch literal 1813 zcmbtU&2HL25FXnQ5(h|$(oiWxSt+SRTLFrCt14B%p*^9h^inRC<6Rd^j*YxVh|?b0 zTc4oE9{PNJh0d%oG+0TS2E?$lJ3rsde7oOAHT%a;_q7N3DdSImL!kgTzyue2p!R_q z;Ny-7Uje=Ve3}@bPJml_x3u0hL7f9HgD^mt;G4jA)@K%|HVBK{CnZqNK$IXTlWM5v zTG`2z7h0)kg;!wQ-X&1KP}r%EspEyNl-=2qbvjJO^TZR3_Swu$Q;|f>j}xYC7#DsJ z1!)jR(zZWN1DV_7YUU;>i+z?(1=@M>^=uig0?B!himq*Mw$a{Y@0aN`j@Z>Q6&)|; zxmys5#2yR5rfE8R)$1)5i|*%GT!|2^A~_G!E*HIZte(cl<3$w4E@y7UZ367i6GW1* zAVTfhCCs)ou;#vp0xU2=zQhI2Le+}nz=I^cs0+i}{c zLYu(L5(yFd@(>p^rQVGZN*ZnMRtJsIGPY7SKphrR?w}*4^yBy**{C4&Xyl1B{2LhL z%0vgf4RqGYT2`H9RIM$*N1z@T0NVukp)ESfk#A*ef_hTONMrB+Ux%7`9?gLjb?)CN z&EI{HG%U+Ju2d~e>A@BWPe8Q@{fdNVe~v?T>sAZIB*FA5zpi`xgPofV>thkS)mCq)eDw zj`p!e7N1a?B3H5CaUmE1PS+J8sd!f4(@jj6nf9>eae@K@@Ik*o^ueN*h7JEG(P?VWIM>)O@qlhSt zq5(d_fDq~y37Mz*0V>pr(XBpd>YsDF1Pcnh=42go!DOjYC*+|b(Br;KVS(Suu6HIj z=rOo8X%}@};PrxLsEnZAm6j`qxj7egb^LFvJaidsuXmGiIyrVE&p}gz!0&f^ft}LH z|Cur3a&lKLpSVi@%;h9p#?^@vh8|B{h9eW^f*zYNB60HgFkqI#>48F8HC*(1O>sNz z0ybAeJ2s`saJm0(HK~oY)AM~zcBc<78h3?kr_Y@0to~GY@i2;nN}{O#gw-QbS7~M9 h7SY}jvYn@2&^Iynx(E6aQ*`|Pz5dywcF$vY{RE4iUZDU0 literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_del.pyc b/test/bytecode_1.5/test_del.pyc new file mode 100644 index 0000000000000000000000000000000000000000..19b1f2b18248c8f388cd643474d4cff56c1cd5b8 GIT binary patch literal 826 zcmYjP!EVz)5FI;7lPpb}l2RH9bb&(xB8i0B3!>r(rwS>Y%E4NDHq8p#Yk4<{adWuBv0eJ!VcoH&}XAJq2ttbIQzzY6#fj^jR(F z!bNokD42O(Gmikfa9O?J6N!9TlPy4Ms|R-tGCT)7;F8?w4|&UiORoU?TzXxXj+nm- z0jW*G1CHdt;20Jy(!T+GLVDuo;}f378BIfY?RWuhgsvQXaZGM5Wm z$`MIM(s|`|rgQIv_`Wo5Cnr>>(o4ILeyJtu#Ad}N-TJtd@p>xexhV?mrB^>SnU*$_ z#l|mfE>jb`k*g1ll2kcI%?R<&h3u95cCU>$UQZH>yHiZ6OEK44F1;^4&SvZNdU|Vh ztW#3uZk75e>e++WtiBD}b)H&~Ff9%=Mld0V28SjE$LWPK?;db$##{ud8nI(9m3hl7KhEo^Ib}?b6HJ@J zxHe)GMQD>Ka(qx+N9A}6|D{Z`FS!0TpZ)hkYw2eJ?mZRv!*19KdO;`Hqa}h)NGoXH Mq+{K#&Ktv3&)Y#B z&dVuTrZPkou|*q$5Z_lO9PGq8<)d^<8CNJZ)~@Zg&Av`pn~1qsSkrYFWmG?rih9?| zZW~w5%EnY-8v0Gkx=|s}VT8D^LgkhGw)0loi1XU%!!D*lFBXV$6=V0YC^nl-e(SKp zhFmtRo0w}XjaY{>Nwcz%aYflIF(pZXG6^*kZoY7C}yX?HX^{SP%vePIl zlzwduCBbA2^c%sX3q409z|^oq literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_docstring.pyc b/test/bytecode_1.5/test_docstring.pyc new file mode 100644 index 0000000000000000000000000000000000000000..abcde9ec6bcde972ced98568b39629c920e9914b GIT binary patch literal 1512 zcmcIkO>fgc6r8maD5--QN`nFlI8_qN1!PBDdf|eAlaWXdNiSB2oz@bHtFA9dRC}O5 zfeT0eDetYn+NiDRfjHUh$Md|MnYa7fZ@2#Z`h2hieN6hv57a0i1dgb)4b?^{a6v-> zwS&;WidIdY`3cOA45%T(hK?|yULgWLehQnII`*JQr zDJZLKan3f>LryhyjN(20+Q~xNX<~nk?9;PIM(fmfXdSxI=xHR=H{1jSo?*W}{VumC z=zX#b4r!$g$)Ki?%yBlG<+%;Ww=_Y#RHvXx!yePjDfe@-Omt8Y{W5i$^rpWQFz6u? z`wY~9dIYu0SU-S(B-_ie&IJQaod$(To0=eq*KryI2ln+eV?jZcMr|4qnCe13xg=Ac zriqW|-30TGYB3p&vj@prG=(XAht<+U8GTzx-q1ppk(p1L53iQ-CE*JrI>1`fv=O_OqREhP!#{P6kE!XVu3iqcEYc&2`J3SN0~ghl~q^%4P@pxRH@t zR>Nv+=sAQMv7Q%TNh>`!!bVWz8^YM1;+_~oy}Yv&ywCY$GA@NEjiTAgC>q>mlt%Hq z(KRTZcL~MwYEfKwSfKcsEBCc4bcF@MmAk9Bvh@Glb!$CgYVWo)M=ZlKyN|8rUk1Y| Au>b%7 literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_docstring.pyo b/test/bytecode_1.5/test_docstring.pyo new file mode 100644 index 0000000000000000000000000000000000000000..d45970e81d6d00e2cff3fc9210b46ba054f13b9a GIT binary patch literal 1410 zcmcgsO;6iE5S_J?6bD5DwIKC?DM|KFd}!ztkt;^8ka8PNr-qTd)O$^x2U8p`w+ z(fA^utmF1V%88CovM!w^J@MX!>7QQ~9OE~MvvL}9bzRJV^j!vp9Ndu%3Lb&?a1NIf zj;k{Mp2t_$Ip^~#O|VbSxVTl$)n_plVe6=$u5Ne(hmOjrJ;%;~Sb~yb!7>_+mRSSh z11u~NVGwv|4%B@>-_DXQj;2#Z0luhLFv0Vd$T}{-!UBU32m}hpFxD3HqO$fdejH1o zaOf!t_OORqjd{xZg-l4@F3wI(GAUANB1|~WIsZ9hsbj*;$yx&kLw1|>Ho`sLZDP?~ zGDX3E!l(876+YxdZjq^vG9c3emX^(xax1lo5aPOJR+ej%=O|e6q|KhMq^BOBml`DY z>$KCu559%#=92FAWP5qEZbqgV4O=gYGy>XVi`i{<>Z}MHV86a0YaG7hfQaC4 z_A7x)Rpa6Cpn=^8g4LBEm^>$li(<_FBT@tz3!?DtyQq5ybSf0b literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_empty.pyc b/test/bytecode_1.5/test_empty.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83d39b5f4f153970172d2072bab8c7e65820e3a2 GIT binary patch literal 81 zcmbQ~$IG>9d#Ft^0}wC*aWOlPsAphEVPFW>015bM00{;#Q7i;xm82Gz=!1y()ZBuS QO1*;0VvsU>pjMDV07)(m%K!iX literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_empty.pyo b/test/bytecode_1.5/test_empty.pyo new file mode 100644 index 0000000000000000000000000000000000000000..72e990db830d8f32b9792ed17f41a9065a5ce7d3 GIT binary patch literal 78 zcmbQ~$IG>9d#Ft^0}wC*aWM;!NMT?I)&TMRG=KyHm?#zkvPx2mOY}iRd}?k%Nu^#v NWid#ZJy0J=Apjr94oLt2 literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_exceptions.pyc b/test/bytecode_1.5/test_exceptions.pyc new file mode 100644 index 0000000000000000000000000000000000000000..825f5407a9ef860cee2bd549e974ad45e3ed3c3c GIT binary patch literal 3131 zcmcJRZEqVz5XWcF53$d7aFjF=l}g>Bv^F9wzKbY@hAM?Zt55?nQbG`zOZEV#_#Aot z!jW3-3-}Uz6FvqXiJ7^*%lgi3QE6=7-FVh_yTAWDc>n4(-1UDB?;Qia96Z$Dc+&V0 z@D$(>jRHu3KhYMTYaj*N4(L^o4%-FLS3nlnE`r_!S!BBedJANU?K0>)Aj@nof!+nV z#C8Sr9>@yYRnYq&t8BZV1CTD;HP9yz)ld7fFVHGfIkF?2oG6@e!GE- zM-&GN_*Neh3a+jQXARILTKjW={b&_*8H5mei4f3*_aEpAF+3MU+iw@~)}C_lJe{1i z!r5_nIvuh;74&VHSDQToJ%OV0QO=<@=nBLfMc_67gtIX6+~Gy z_{b0-f1L>$Ho-Czyk!$K^8}Y@`jns*{;tCIX`oc+f?&Mbi(&5LS}<$$8pB+&Vb&RD zBY|--9B(rW-f@}oDTzx7pV3om3#ft}KZY8Ttm=)2$zKIk$0w&@a;ky@RiadTfFoE1 z`W>SN=Q(ZD-z%}zYk|Etcp0GUsUj}c}mSH22fn&T!GHijq#WLJZWxyDJkd1LS5uipf z_LE%R&gb&FQ6gD;%pdIB?QqzKRU#%K(x&sqWAAU-sg1FpOYNU=ZfxHABgVd)V()8+sAYUs zT=py2q0`#nq+oS+K|f%1KC{*NJgd$_Tb(bm>U=q;&ZE3K*KrwkTd>s07R`dJxoDxh z-Ioi6|JL+hufJlUp4dY5vO;~G2-U$f`X(#Xw~0_(Tm7WAzRN3?beXia&NE_RnXTX& z-_5>wFJOAkg`}9j2darP&!t#gf(72ns6J`85BdO}0SQOjpax3wy-_i`iC+%k8E#(A z2Y=u}0g;P?Kk^scwf)4>nq3ZclHQR1M$}?-tJTo2j#!4{_G0&|_d46%{iM@0v6AqJ zF^d*v0Qx9{d2D0K3}$F!{+eL^#+bZy?elUCCarul8rdl&-i`g_l@5-{%zym_RN$~FbW3)MY~mm e!!x`TffTtfKwZXb-Kkgb?V7WTRvnLOQ~V3+P&NMm literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_exceptions.pyo b/test/bytecode_1.5/test_exceptions.pyo new file mode 100644 index 0000000000000000000000000000000000000000..8293491aa60c067141a0aa72496ec895f11f4278 GIT binary patch literal 2855 zcmcImO>fgc5S?|tous0o6j2EXUs8%F5W4~)Q4j|ts!F+VDC#A0vqo|uPL<6ek=hg7 z_yznceiCoT>vWSiZPhlmc0C!dcjwK#natmI-Ch58@V-m991Qgb(+{EpB1!Zcf*>ha za7a2VH<1M3{h;Z{%aYm5y9of7TGbrM3rD*V6)-(c1$%q4u5$HKO9F%Jjh zMmXw*$HRyLmZ94+SCcgYnn3CKa89A_>McSwe5I$3*{C0@m&aq3!@E(d1-tY?Byz&# zabcX%{yZ4;2az^? z+I~iq@JGK)S6-P+UhBRckrh!*pcFNfH`7oaGL)f1-Wn%lSx1?6ESCXYGsFV|ObDWppg~vF}&R@$5vwY8B!Ll9VeLCMEZCHOXEgB1G zaZW;{RbY}3XW`Avja3-(WcK1eSW^?0!WVy!)GeGm#g`;+a@-B54|sWkghx3?1L2}y z;I1HkK;nd(7E3KCE+q@Ni%Gi#o$2jJ*Kd`L(kcad)gdG9HnY_i_X^vs{j?I)kpUP9 zqWtv{p()dSkA+B!yiih1WZyKND^+ZP!Lk+FIf1u?k0+0;c+*| zJlNT1Gz_+n-7*Cq#gE1eHD4bYa0d=RrVxh?>#5?52Nx7c%10f*0@o%oyQvRxAS83K zn!IhVRXSg#+bTU)Vs47VK97tv1GFrng==ZmBLP=n%Ft{=LQ9i1KUottyNk$#BxZB6 v3xOm*S0*RYWkK`mLIXCF6CGn~_T{FqK1f literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_expressions.pyo b/test/bytecode_1.5/test_expressions.pyo new file mode 100644 index 0000000000000000000000000000000000000000..8b67e92d94acbf92219bd388423fa763bd8bf27d GIT binary patch literal 326 zcmaJ*JqyAx6uj8_i3KusZ9!zJ ll4kXVhHR!MIwsEUt4-%04KFJjb zL(2w~17T{}gsMSUTDG9-5Vn?WsAY(pmUB=Ihyp|rB9AK*`+2CC;mL_!`@OSpJ?g~?noiE^HDad&j{1P%`=R?dimOl$XLCOT zYp=f=10c7#M0D4n9;Mvo?!yIlt&J29Dh|z~mCd6a z@#y>(kHi^HoGs1j4>IDlZZIiQMyQ)P31l(tEzl qYBe&miZge%GIzYpo$bt>ovH6aTnKOIRcM7)$Eu7+&Eiq9GYO&A&)n=gys>4Ey z)jokKTE`gyqc*4=I1YCamB9s~YtMimhXRFRh#hdJpP{rk(TjJ~ji;Aqaxt5q>BIAD z?cma~TLTtANCDI=%1AF;i7&qOO11WyYpo7AcCCc4(MnFB`hKbUerK&77`k$Q1oF_j zNGomrauDzSrM6L^Ho#AQTp{iQ6i@bYiYXk(f8UPf!=d#y7Ucfgf(ss6utbEcYVvkE zpYu40FU)uvXB$!OP!zw&%*`mqGXj^!uq9@NhPUuEn!L(Pqe0&uOaDQhZev-#UR$Oz zai~|o9%ztzs>fUmoit)!2Dd&L66q7XptSZ0>lLRI4uNK7raXdMSHlEC=tcGDH zgIJo>UG~gP*XMH%Px*A5q@y%rl+H)#d?dB4=Cn1htt$iTN@QI*vaY-@z1t~SKH}B> P633dmX&skZ&CA*!If%tC literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_global.pyc b/test/bytecode_1.5/test_global.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c37e714d6fc8b9767d6d2f8899a21940df843742 GIT binary patch literal 866 zcmaKqO^?$s5QfJ|`G`rozycMVti5bOYIEa&kPxTkR3Vj9FOd_wTSFR0v8$@mu6)@2 z6WsZO`~${LKbA`yb!2;H9=~}fzo&hA@rQpd0e=Ml<|_sVAOPmLNWeV{}U^aT>QGYQ|D~-*sD_!tv(rnpy%#2>QrDQ(A z8g8v@YqroWyX>kinX%l;m8>nLKbFeu8*tU|)-t_db}5;VrCv4LYDY3_W#xp@<1yBA z_I+!Yx@N`J%5ka1zD-rKr86nn(%R-zmTfkh$+eb+tgxy!>&i}q%nqz92o!o#SDFjP zYeBu@#kxf$EmJk_R@^FGQ{`P$PcWdT1fLkpd)%RMuJ5fx?{0DX25zA9ZU`2=v%xz+ z?;@<8VsnHKHh=WZeQ<*Z%`g2lZV9;a1LYOC*MN{40z)48`OQZ0jzl^V^P~Z|Gf(mw zo`ZYgFGnRqjuSrIt}d`N2r>S3eubz;;RERo&hgk!F#CVLp|Bi)d5rm(BqS#4gJ*du zT{6Tf#Gl72%H8oPZqWxr12^p@gd+QhEkeKAVGlwJa|+1Qz0fqFWIF13k$!Y}E_9ja Z51C=jN0@|@%r6O;r&yFmXC&=Y@()75gg5S^7=J6hsiTF9xegg{Ke*1Z&ZOi!keo_rB2?K<8>)(Y(!V@OWTpXj}R zu>YWMSN=#Z)}moG^WK}$o8R*>zy2e?R)mM)bvc3}S|Bo7Fj5IE5>hF>BAJp-=@*ci z(Vb4{?zL(xV5tL!Y+khX`ysw*X^#}E4hvFddB%F4ZIXTc7A0WQSQ8+R#qKorq&(5 z*IKN+Z@=XEcDtQDSY7HGsK#w-KT|qCYUOc2Ww%Xjr4q7HJWRaYbeNOHw3>coclE%O<- z*uF2uSjYHyYEkXe=XA?4IUaSh!H|uheUdFB-|S_NgO=``pu9W`nq?z4p9~=G!a|Bd c*{UesYR0>qg!X4Ozh&eu02(HjEE|v5Kh~wLNdN!< literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_globals.pyc b/test/bytecode_1.5/test_globals.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a631cd8d37c3096832080e54cd64af8a399a8298 GIT binary patch literal 313 zcmaJ*yG{Z@6g_uW2($7~LSpQuFkve#No*{k+Gee2%)+infB6*C>E5T3jE6U_8k~ zr11s4OcDeLp?5yXz(qKK3U}!zgKj>#Z=aX!NaKLQWa-=E`U@U*f2a<)s0ytfJiIJc zn_0Hf`|V!6^3_0_oT0R&BYI2v{I*oPEjNoYd$;p!J*@1ku;s_PE=lUbv$w`wOb`BV Pd16b8s$RncMk4tIf@wE6 literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_globals.pyo b/test/bytecode_1.5/test_globals.pyo new file mode 100644 index 0000000000000000000000000000000000000000..4c6417cbee0d32844d7cba0449f9633405905b63 GIT binary patch literal 283 zcmaJ)Jr4m<5S%@nk3=Uy_Zo2(y+-M(Yp67G-1$g+<@O{ep~0W#96~w@unpiOMqXNcWkxKdm4hql~y9>A@(AKhgz_q$b)Xo2)l#j>%z_ nggdhc_ubUYW0Rcrc}S24e!Mwmp0)o^88W3pRkh?gu9W2sPLMH} literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_import.pyc b/test/bytecode_1.5/test_import.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ebcd92085ae7f0e7e3edbcae6c57d57ebefed5a3 GIT binary patch literal 675 zcmYLGO>5gg5FN?+s5bs;Y9D&rqbb;eoJuJadPyz`1{(sRAY|>>7FucDopoHDbm$-G zwg0j|p|fg|3N$_O6lb_nGeB`mZD4A_UC0L8#t#cd~G-@`ZV zJcMKf?G$hbgIgTI?cH|`k1B-Ktml>eVIv%pON;7YtXmu!IiE{1N1LPc33PcMLX>;w4xi%qbUH0|1~;ggRnt+sg~Ir?SKR4S=2UBwDVfzuc){DFWhE@U z=BUbCVQNwE%&)aA;~KFt^eddJ4!9CwmlAF-o+iGZ#--w&f;8b+ZA#(@Z@Fbe(x DZ0fNl literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_import.pyo b/test/bytecode_1.5/test_import.pyo new file mode 100644 index 0000000000000000000000000000000000000000..31d6e7149ec5b6f22dec700c35c49479f2c658ea GIT binary patch literal 642 zcmYLGO>5gg5FN>hU8}Jj+|u(N-GU{^sgy#Ym*kS*VnaX_#9BMHgjQO0XBAiH{EGg| z{)En|bt=%?**9-K_t(QL+AQ#M4*Xs4PliDOqySX_X#iCSX?V6rkdC0bfbnVA?Vi-{Cp311xsstjWloJYQVH3p$TxiGEO)|VmubkY;A!eNTSNUN2|rsSaGy*{%x(?(MG7strun~{2GPC!fdL#JnVN{<#EDi zT2&Q#;qzOhFl#oVs{Pt%QL2Ue;NoFfQRXgOg7g0=6rYQ)t#?s-92Z6&Pf;aWK0_31 z@2gMK>29~1tPC!&B$syE(oZB#|7A_%E2P=!(&SR)TJrF$<<`>0!}Dmh$-Od~E2<5s zk73yF_f6R$6j}li1~q}3wvM5gStd=9WiI$!?OfdMy0qHl->GgbR64+v*wW}#1QsiM vNd&la8bZmZcYjF?`@+G!C&wV^b$YDFIDG?l#`^3b8zw2OhU}Djm^u3kOwYA~ literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_integers.pyo b/test/bytecode_1.5/test_integers.pyo new file mode 100644 index 0000000000000000000000000000000000000000..e7515a1a90ad6e92c08d67306719836b19eb68ac GIT binary patch literal 688 zcmZuuv5pfl5FKxl4fq6CA*FN$C!}P1ghZKCC!|oNSvl)TVx41Kwxh5W1z*9Z(C|(7 z2Vv~JfI#P!XWq;_KYM0>+`r;5ik2%J1DOes|6XKf%hgJaiUL-!#2Uy^iCA<&K1@>o7S#ATx|%$jtzmsP z%`MCr08bcGt8KzPhPd#(n9oIYr_iCuCE;aC7_8X2Ag(mdzZ`VD(g=AOl5jhb4k#3M z?&y2-bUvPR!UbPj?L8)u%q*Xk(wL1lRcy5oP zqfFXau4y))-)D2VT)vqRp}Z<6Fjp(MALf{c*|y4cZ5uN$_A!>@v8L!KztY?WsBMO0 z${J_)1qAfrjuH^xkjW!&{{JOK>=TFhmKb$ak7`!4DSa>5YxaUo*looqx@DYp_EYv7 DJgKPG literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_lambda.pyc b/test/bytecode_1.5/test_lambda.pyc new file mode 100644 index 0000000000000000000000000000000000000000..85491f16c0a3d0bbffb2380b6185046e0e8019ec GIT binary patch literal 1052 zcmcIj!A`#gB7lmR3+q zNYr*aoqa>+&Ac7n`f>f;4bDcOE2PIglUdPzdgq$Q*aupwZu z4aP7bBm7khrc(HAn1jMkV5;m}jj`l6HC&|;l`&FK2opGOCyKznSjTR* z;krWta_jO_Hn-DkHZ)mx{^)9ipZo1a1V=mE6A4p=o~lO>bx2e<0hS6&jb(tGm_-71 zsAq*^_5$&WQbPLF1!P8d3n|IliTJ}*!kWU}-uLKU71w>mq6;hIs$6V?i!EwkC4BZz zITm{*ZehvEQ>K{@|;#DdCCm@gssKDu~_y3>Ai6@mjjE%3I~_3ggz8B9b8%7lRh) zf{yW)W}2xI4h1e_bhj<%oo0{eF{i_`X(-4;^yq3KQbdT IvO^>76LD0FC;$Ke literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_loops.pyc b/test/bytecode_1.5/test_loops.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed7b87d030ffa97635d4f4c95237fa41473d0fef GIT binary patch literal 832 zcmZ8f-D(p-7(KH|+hm()h}4Q;9ktk4O(I^2SPDf+Q7DB9h2Dhi&ZOD0-P!C+NOHAM zZ+!uu$OrL7{AM;kwhQy|{hT@H?6>>-r0#z_5}!lRQ>LSTF(3y7a6w5G`6i|pkPL$1 zCq>V8vO`=@QiJp$O1So*e6YNZ(GC(u*#kEzyGe!Whd6cphVAzVb)GjN*3di7AK^IP z!u05_#ulz25l&bgjhf7aO!rlF12AHy}EzLAUPu3pEsh46dC zFEIL35WjSjmHAh5^Sid+BNRK&U(Xfy$o-pz>OQ95k?*_fh3W@Vee3GE>N{7gR@TPo zfVtIl3ibm=?C%S9v4OKz#eS8)6nrDK>BmZ?x|7a$yUn#4XQAY_&(pvdnI(LnGVU^G1%|RT$P8BlZibQz8LFFf7SAv1ab#r2_g8Jg2mEwqhAQEgGb7uf5{qk5EHnR1 zN#Ul9w_jRHDbR=?K|fa&?_2p(aVJ0>Ohs_}1iLoRO1^M+sFofr(V& zM?Sr0L{+3^3EhG9faniB_y+NVh7b@)cwFPBCawW9|L@f%?O$v4|-8)Nj ph{G!M7aG^RCaSE#d^#1j=~Y;H*`cabW$S3L`Vvudi2u7a?;l_tvGo7| literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_loops.pyo b/test/bytecode_1.5/test_loops.pyo new file mode 100644 index 0000000000000000000000000000000000000000..22b73a06abf21b11e351943eb9212df6f1a9af0d GIT binary patch literal 724 zcmZ`%O=}x55FM?v{t%c#q4XAX3clDI$R#a>LTPZI5DYF9a>%k-jctXEw3cLSpL5SW zzt4XpqwTH}<91;l(wjGLW(U38^!eov`7Hh?Kr(nDjKH45Z3GyB zY{5eWrUPvG2{Z#1xRZ*DflX>=OvyhohVk|F=Hk%k^w{XGF&Z!L>N09c{Wia=hMQN(v8Zk z7!HLqE1RPTyeKp8(P}X>R#Y0!e=n44G;}I6>xG#Kzd#`|H;?7EsEgf7c^q;6Mw31h zldWGEE$+7-hq;kWnJUooDWX_-Uw%!J^?E&;8@$JYRNAcyKa!a2y^?AsY1Xc$fNBMZ30!z8SA|1GuLW)fA>ld%X(~;grY?wVrswE_ zKn)1MeIy8bNe-4)DZcl>{iJj|`T%X#XB~=|b)%TEJwvxvo3)_N_+HVg6z|zy^a`dG Bn@a!y literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_misc.pyc b/test/bytecode_1.5/test_misc.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81ab74f59a647f46d8518fc366fd2c13ce54bf1c GIT binary patch literal 997 zcmah|ZEw<07(KTIwqgsDO@zr@zZmh0OZ==cWQm<|smYiwk|j;Yy|5-wy53?~vZRUg zPxxJ85FCKhw>GI#}i1AG&s zk{)d$J=dcxHQ{j!o+vMe?@k2KEG=t!c^m77JD6AT$jf)t;2PZbj;Ps8Rxs!g^qz->*P_qG(tXBgL@)~X!Zh(MH2T`lN ze%GKV)kHj>%92XNWK^K5Y+ZgxGc7T5b{=1W_DiLEu2Dg(e%)J1OWN zQ%(Z&Eo4yik)b^9-;5${a8TR)11@a6RfbtLNQp)k65}|HJPIT^ryLFs zrc3S>!xbQ$lxbueB@riUY;LibnU;0bbljjzZxwz(;aZvcr8Q!vO}<-Rnsq{j(1osr z=)%~BU^yw>5W6Dc1~j+gr4qDgLvDFpcT-m@@+FO*(IC=9faV>sB#D~GLdn13L;_cAf|FeMw zEn%Ro5F`(c6_7d0O!y_6E|l}aV%~U3WLIiF0B284n}8}SCd&ER*q zXqQ?05Pg@0_6lnk5L*S+M&Gg`Jk}B(>+G>1JT?;^TdcD!ymk`n*cBdo36BHzI1(Pm z?D2uUp0I}}JWkm|W6c@YoC~iid(qywFjyx3|CgW~`v0^yt^{_?810RlW{)ZhRX2wx z!MEr*P+0WM$)L0pv|wz6kNVBWgVMyyK^oJS#+&vjF`OmOH6)tw8g*?Z?_3-~(2pV1 zK{!vLhFGXoO+Wh&#n*RJx9LC-Vo~1iwDJ}{@jLUInc4p%uA>UuAkFNr($4&9G2R@T INQgmy0OWF_ivR!s literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_nested_elif.pyo b/test/bytecode_1.5/test_nested_elif.pyo new file mode 100644 index 0000000000000000000000000000000000000000..cc45447dddf825225c02be4f5215ea2dc8ec0839 GIT binary patch literal 862 zcmb_au}%Xq47JnVwO7;`29|EO6huKnVqpZNa!WUs3UNUVf*xwJ@F{#FD<6RE%LN*R zN=Td(pYxvm;y8Y<#-q=Vn~MjaPtme-vKrtHK_k=vPYRj>utvDLUhe}kssh?$6k9Zk zJxs>tB-N*+g!n9(;AOIKWX?zKkeMcBeC3f$y7GT2mL4T!4QaVgRYSyA`@ z+@RI(TDL!_s5sx0VR(mv-@zXqq1{F55iH6*nks`lT5L{?Oc}c~n~`nYN^eZB<4G*za%srVDuF@RZyDhygf22Mq>s z3EmsfF(AGRc(0Rzcnt;s7SBM2o6xklg+>+)K}c?9;G)?vA>K`#^B0|UiUOj=GzFtb z%C!Q`3@=@pFbnZR;CBGCbF60-jxFfqAbtdV4fwjoH-K*v&bNSXYll3RnHd8{XZWsxrCSm0Hsv1u0N~I`+QRE7n?%JWFl!$!0A4CLr{;{nF!aftk zip64olpJ|VR2e&k(ciJ( zOw=Io?cPL*iW~4W%o~b`wS}+;N`?Ei+IT#!9tWZ)hUn$X(NI;nsLgZLbO$^b`@_KD zw&Qa~E%iqcRub8skE;_$VG~Sda6pbDEBfLren^}tINmP{=SyZ!e{*RjiDYfrgjfXC z;?6F;Waa9#u6%;G>Wf$BBmup}k0iid{Llf7WlEwMH?9$}coRMS9vh9tyKv=WtZJDj zkpB|-QS);6F+u*sK>V%8`-xT=s6nV+7OGnY#jR;+ts<0EPNSr93J}SYRuyPP_esmh zz_U5UoUed0Kt01X3L0wC6m|4~qzKiEz*SNp(yDdf8`=T&_4TX!~LmX_by5 z2MgjOl0DR_X_myhUEac`T65C>^_#eY(d5f-dA%6*ZX~a>39o+;ua6*p_rH1FpD~n3 zZE8|`GkVS#ZJuXzaO&Sjf24DC&L6?ET-N;EyyfqVTgxl?V${`MH;=#NJid8}|K89F ze35PgXw5xW$t)T}PpbOdYDn6-s!=!;^;5G^CQqGbxj0EXGun04F4>sr{It({@$v{H zLr>EOS5jatp|BL3$5}BHAJtY z+vS1V?dr6l-lV4Qg%Z$wpPs(4Ym_@Lqm1d`>XPa2=@|oQllWYm0KTsqjw8scYLURK};^)LELMo?lh#c>xv2bn6yHS)wP9X6N zyZ|r3Tkt#_m|4g9X{*X9Lh7N89M8^vGoIP~^m%{u>+H|>anA?5T)b7=0uTTLfG-vd zED-o#f(d{lN>CCu^c>-!QAR_O$6XpY=nd=)S-FTb@m2KJ@_0sJlxPonC2{Y{Y-JF2 zz`Wu+ISlIK^%Eupyxaub0PisJeh}*u}_mg@nuG|5--(+pd>3) z_9`_Ev}`lBb|c>7ALn`!M|?EbvgOAj4+}z>vQsJfMC;^rr!$+)+GnvG$q-SInufY9 zWM`GDV>%G=EDB>!a4!;!S{hGNtR&?@grjp$V-rl3aDhBewamjSekoj2@PgkCt}mG* z^DmU0B~qPT6Jilmi@$t~vXO7n`sxKvofNOm%K}EluPneXewl#oE+x?#cW)3;yor(7 z$8NWH7ruIqRqgTy!tanD)yu`74eA#L8m+NVSx}H16s!{JRnJ*@Nw|!cgi8ZXS4e@X zG@>X{C^GQwEl>*?phV#SH44RMfkvGKi98Kb7gC^o5C>)!wQ2*88ndu3;z@xFo@UWL zBn4Wa)B#G#5!T;d@%s|}uOTmC#T|uh`gV>=_w~LCOJ~)Dv|8 literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_single_stmt.pyo b/test/bytecode_1.5/test_single_stmt.pyo new file mode 100644 index 0000000000000000000000000000000000000000..f7bd2502ec6ed0b17b5e4d5e4383cb91df441f14 GIT binary patch literal 94 zcmbQ~$IEs3OsGvV0}wC*aWN;5NMT@b_ef!62-aW%@-kV0gr5eGU;q=v5x=szen(fGUMkFOjo$h}Dg~vK>V^S*pZG z^t<{)^*Fnw3B4x@l2mc|V8vYsSC(O#lLb0QepQ3SkEXfu97zE=U3* zgCi22;d_cLjzP4Z#O;T-PvQ;23G$9f zcn2bR*a`0uxe6bWKs2)fCnS6Xv9dA&7vc1w`Z=7{$#Y~+l5yuCR*uIFHQWyukC}sb z)nR8Jhuey}G)dC8oa+gvg%u#$T(t!5Kr*@{Hz?Nqs%6r++`&&-7R zsboUtW>zkXYPXv!FS~T8Rar{UJpUo1lr=L}F8$PKR;aN%b?K;4UT}vkQ2L+}H_&I+T)4y)VD?dW*%PduQZW7LldhyzpHidw;ch=?=mybYZw)Tnmbq zn#^r%+%lzOHsf9yP2Ev+C*88N=FajN%eg-FY%H0bYZYAsb&dwo#FOk=yM?qW!vd@U z+$gNL^|)NK!uYN_#8Ui%Y@4(Qt=2YKJqKhzJ0lmQ SlWh`8n%OSdBdx4W4#*!=L*;n@ literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_slices.pyo b/test/bytecode_1.5/test_slices.pyo new file mode 100644 index 0000000000000000000000000000000000000000..c6c4e4f505207c964e2f39e0cd6d7bd835a517d9 GIT binary patch literal 969 zcmah|&2Abo5Vn`!I;9Pzhvrhbhc+}7AVuk=N>uRzQ6)I_vNG!dtSy>SGDJcjuz8xraSDRfvM!^BuDp|1AQlmI^}@SuM+8rFO@y9Q+;G;u!oFkkt&=W z2sJ9N*|J4#_Y%=dz{LI%h)RCs`VBD-@w=vry`>gDaebcZBeF2gJvQjaEw{q#ctU*G|*Crf6 zs8z~G>6S9CL24-6rrMW>?65Tv#$skoRY8IGTstdEvj~?VmCB1!1!_Tv z|13zakI7`W+l^Na7EmI}hHV+g8YWL%lXM5|cD8g% zOJ%j7OD(q^8~4&!v^FXlXGOTc>7-j$-mSda$U@o6C>J38)*74|GgmY~k#HcVHtfKg zi~_95*u9}hXrY+O(#5g)Kq36yvq1lXS@g=TAaqfm<4~k3OEaV>rOekJzM*&7R3mZZxpqaKhc-HBRU04z7HG3%Po6I}P}e^N3)gtIvv$_yf_DzG&+B)<&$BOl U$UkQ--r>#cjQ6<6`h3720UBAJILA)QYMW|0j3~6?218Fv7x6~Y0@^b%# z|E;rAW5J4?VwQZ&Zf55Dc4qQz`jE|UlD8?~nHVFhf-hBN-*uAX5&B9z)m$yPsY`UVNf`UM%5)oz7CIVo zSxGKrs@7$l|46GhnUNF54#()9@DH_Fse&(RBgd%{ZCIAeip`|tD`UzxQMBD|Cts9Y z$Q->2y~)i)$mnOTh|~(TEpn9zo)m(S{7q$6vf^1m7crSCSn5L;JY4#@t$ZJDUHIg| z&WGIz>^jf{wimMy%LUUA0m3eVw)=!|p z@upIpleWJt(&eyKh2$haU zWT`CAv;V?#J=*j1oN3sxI_+r1u~2Co?+1hMg7A{?itw5y@g9@)t_PZ7(!dS87hZtt EJINaIjsO4v literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/test_tuple_params.pyo b/test/bytecode_1.5/test_tuple_params.pyo new file mode 100644 index 0000000000000000000000000000000000000000..6339b60fbd071ca4e4886436bf09a8774f155207 GIT binary patch literal 1088 zcmb_bO^eh(5UqS{#`L<%q9Ed>k3pEkgLqg3aX$`T24Or6Lg-2Nm_Q~S(jCSuo7?^g z|E<*($H7JLgPo8^rSrPp>zA5uixalG7HH)fFJ=@h#uTx;eiZ5h9HkXMzFzp z2GWPy09HQ82gJd}mi#9OfV=|BnXhq5R7{k zglpqtoxY}rg77QhKzMDQ<7*dU_Pd~o^Zpp9$z$&xjJ%;rzXo%0y7z;!K6vg6onX%!ltoSa1KbgG zUVjz*bNZK0r!BE}5Mh(ZJtzM2hV+EoZo?efMyE+5Q?2`R0!{2MxV+t{3(dY zKSD|P>?e@@W8b+yJCbdKEpOZMLYeqdDUmr>y7Roc36 zOQ}|WvsUd;Qt!(`CsHJ(jKh>^ZFmwR@{-wg;&NTaIll_zQGiZ>Zh-J!^5+Z}^FE^; zFl;tb?=~A7{7H-37QflyO;v5{E3Tg~dteH0ZfXd^z8sSDZF$1{*LaZteSKQyoge_#M1&M!jUYS_KBOM3Ddw*U4xggwX#w?)fNAe7`xAMvy&()}b#7(A z*iV`KnBTQF(~56eE9Z$8yKQ+PE4Gr7XV#XNVc0ZH@T}!V7Gxu^j29x#!?J^c>u;%r6Mbnaj|!ebocxi>%`r?h%Fp?r*hpXvdH%m4rY literal 0 HcmV?d00001 diff --git a/test/bytecode_1.5/tuple_params.pyc b/test/bytecode_1.5/tuple_params.pyc new file mode 100644 index 0000000000000000000000000000000000000000..22178fb939fda73a1a39581a49a24e2942cb1900 GIT binary patch literal 791 zcmbtSO-sW-6r9bbAE_y+Efu_Y4jzgJ@!&=JbuB{iQUs}4g@8ga7E~H?@lW`F{9(>} zp%g3yi`ne(mbd$6cHVwXnvL(}^<@HnK4*4ADEJ3(z$Y+c9Kv~U7S4yO;E_QU&fwEx zW>7?MHQnio0Szb+R~4|j|C%ltX(Ey_$kfF5m|Un0US5zRk} zxY%37AY6+`PpLDNd!=%r)CwFD62nGpEQ+v#T4a!W$mwfqOPw}OZ8_V+kYTjeLP`%t zy3(NlHc=?a$L4mn$b_ft!J2HBK&l`8qx!g8Ru9Z1u81b_vadK$ Y94d|!$NH9bzKtusjXIA<_QZx9KW>J0F8}}l literal 0 HcmV?d00001 diff --git a/test/test_pythonlib.py b/test/test_pythonlib.py index 503e5cdf..3e960567 100755 --- a/test/test_pythonlib.py +++ b/test/test_pythonlib.py @@ -78,7 +78,8 @@ for vers in (2.7, 3.4, 3.5, 3.6): test_options[key] = (os.path.join(src_dir, pythonlib), PYOC, key, vers) pass -for vers in (2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, +for vers in (1.5, + 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 'pypy3.2', 'pypy2.7'): bytecode = "bytecode_%s" % vers diff --git a/uncompyle6/scanners/scanner26.py b/uncompyle6/scanners/scanner26.py index 615def36..72b9f4bc 100755 --- a/uncompyle6/scanners/scanner26.py +++ b/uncompyle6/scanners/scanner26.py @@ -224,11 +224,7 @@ class Scanner26(scan.Scanner2): elif op in self.opc.hasjabs: pattr = repr(oparg) elif op in self.opc.haslocal: - if self.version >= 2.0: - pattr = varnames[oparg] - elif self.version < 2.0: - if oparg < len(names): - pattr = names[oparg] + pattr = varnames[oparg] elif op in self.opc.hascompare: pattr = self.opc.cmp_op[oparg] elif op in self.opc.hasfree: