From 7fc9bf0e5250e1c1d07080818823fb8ea0feb3ca Mon Sep 17 00:00:00 2001 From: JinWang An Date: Tue, 5 Jan 2021 12:16:07 +0900 Subject: [PATCH] Imported Upstream version 2.0.1 --- CHANGES | 8 ++ PKG-INFO | 2 +- Pygments.egg-info/PKG-INFO | 2 +- Pygments.egg-info/SOURCES.txt | 27 +++++ pygments/__init__.py | 2 +- pygments/cmdline.py | 113 +++++++++--------- setup.py | 2 +- .../__pycache__/string_asserts.cpython-33.pyc | Bin 0 -> 1469 bytes tests/__pycache__/support.cpython-33.pyc | Bin 0 -> 689 bytes .../__pycache__/test_basic_api.cpython-33.pyc | Bin 0 -> 17522 bytes tests/__pycache__/test_cfm.cpython-33.pyc | Bin 0 -> 2306 bytes tests/__pycache__/test_clexer.cpython-33.pyc | Bin 0 -> 7334 bytes tests/__pycache__/test_cmdline.cpython-33.pyc | Bin 0 -> 6483 bytes .../test_examplefiles.cpython-33.pyc | Bin 0 -> 5050 bytes .../test_html_formatter.cpython-33.pyc | Bin 0 -> 8882 bytes tests/__pycache__/test_inherit.cpython-33.pyc | Bin 0 -> 6640 bytes tests/__pycache__/test_java.cpython-33.pyc | Bin 0 -> 1781 bytes .../test_latex_formatter.cpython-33.pyc | Bin 0 -> 2290 bytes .../test_lexers_other.cpython-33.pyc | Bin 0 -> 3635 bytes .../test_objectiveclexer.cpython-33.pyc | Bin 0 -> 4125 bytes .../__pycache__/test_perllexer.cpython-33.pyc | Bin 0 -> 10626 bytes .../test_qbasiclexer.cpython-33.pyc | Bin 0 -> 2040 bytes .../test_regexlexer.cpython-33.pyc | Bin 0 -> 2921 bytes .../__pycache__/test_regexopt.cpython-33.pyc | Bin 0 -> 4440 bytes .../test_rtf_formatter.cpython-33.pyc | Bin 0 -> 6164 bytes tests/__pycache__/test_ruby.cpython-33.pyc | Bin 0 -> 5468 bytes tests/__pycache__/test_shell.cpython-33.pyc | Bin 0 -> 2992 bytes tests/__pycache__/test_smarty.cpython-33.pyc | Bin 0 -> 1939 bytes .../test_string_asserts.cpython-33.pyc | Bin 0 -> 2740 bytes .../__pycache__/test_textfmts.cpython-33.pyc | Bin 0 -> 2227 bytes tests/__pycache__/test_token.cpython-33.pyc | Bin 0 -> 2256 bytes .../__pycache__/test_unistring.cpython-33.pyc | Bin 0 -> 2430 bytes .../__pycache__/test_using_api.cpython-33.pyc | Bin 0 -> 2446 bytes tests/__pycache__/test_util.cpython-33.pyc | Bin 0 -> 9055 bytes tests/test_cmdline.py | 14 +++ tests/test_cmdline.pyc | Bin 4945 -> 5445 bytes 36 files changed, 110 insertions(+), 60 deletions(-) create mode 100644 tests/__pycache__/string_asserts.cpython-33.pyc create mode 100644 tests/__pycache__/support.cpython-33.pyc create mode 100644 tests/__pycache__/test_basic_api.cpython-33.pyc create mode 100644 tests/__pycache__/test_cfm.cpython-33.pyc create mode 100644 tests/__pycache__/test_clexer.cpython-33.pyc create mode 100644 tests/__pycache__/test_cmdline.cpython-33.pyc create mode 100644 tests/__pycache__/test_examplefiles.cpython-33.pyc create mode 100644 tests/__pycache__/test_html_formatter.cpython-33.pyc create mode 100644 tests/__pycache__/test_inherit.cpython-33.pyc create mode 100644 tests/__pycache__/test_java.cpython-33.pyc create mode 100644 tests/__pycache__/test_latex_formatter.cpython-33.pyc create mode 100644 tests/__pycache__/test_lexers_other.cpython-33.pyc create mode 100644 tests/__pycache__/test_objectiveclexer.cpython-33.pyc create mode 100644 tests/__pycache__/test_perllexer.cpython-33.pyc create mode 100644 tests/__pycache__/test_qbasiclexer.cpython-33.pyc create mode 100644 tests/__pycache__/test_regexlexer.cpython-33.pyc create mode 100644 tests/__pycache__/test_regexopt.cpython-33.pyc create mode 100644 tests/__pycache__/test_rtf_formatter.cpython-33.pyc create mode 100644 tests/__pycache__/test_ruby.cpython-33.pyc create mode 100644 tests/__pycache__/test_shell.cpython-33.pyc create mode 100644 tests/__pycache__/test_smarty.cpython-33.pyc create mode 100644 tests/__pycache__/test_string_asserts.cpython-33.pyc create mode 100644 tests/__pycache__/test_textfmts.cpython-33.pyc create mode 100644 tests/__pycache__/test_token.cpython-33.pyc create mode 100644 tests/__pycache__/test_unistring.cpython-33.pyc create mode 100644 tests/__pycache__/test_using_api.cpython-33.pyc create mode 100644 tests/__pycache__/test_util.cpython-33.pyc diff --git a/CHANGES b/CHANGES index 1537480..7031852 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,14 @@ Issue numbers refer to the tracker at pull request numbers to the requests at . + +Version 2.0.1 +------------- +(released Nov 10, 2014) + +- Fix an encoding issue when using ``pygmentize`` with the ``-o`` option. + + Version 2.0 ----------- (released Nov 9, 2014) diff --git a/PKG-INFO b/PKG-INFO index 0cc9dc3..14ade0d 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: Pygments -Version: 2.0 +Version: 2.0.1 Summary: Pygments is a syntax highlighting package written in Python. Home-page: http://pygments.org/ Author: Georg Brandl diff --git a/Pygments.egg-info/PKG-INFO b/Pygments.egg-info/PKG-INFO index 0cc9dc3..14ade0d 100644 --- a/Pygments.egg-info/PKG-INFO +++ b/Pygments.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: Pygments -Version: 2.0 +Version: 2.0.1 Summary: Pygments is a syntax highlighting package written in Python. Home-page: http://pygments.org/ Author: Georg Brandl diff --git a/Pygments.egg-info/SOURCES.txt b/Pygments.egg-info/SOURCES.txt index dac7771..5fb140f 100644 --- a/Pygments.egg-info/SOURCES.txt +++ b/Pygments.egg-info/SOURCES.txt @@ -387,6 +387,33 @@ tests/test_using_api.py tests/test_using_api.pyc tests/test_util.py tests/test_util.pyc +tests/__pycache__/string_asserts.cpython-33.pyc +tests/__pycache__/support.cpython-33.pyc +tests/__pycache__/test_basic_api.cpython-33.pyc +tests/__pycache__/test_cfm.cpython-33.pyc +tests/__pycache__/test_clexer.cpython-33.pyc +tests/__pycache__/test_cmdline.cpython-33.pyc +tests/__pycache__/test_examplefiles.cpython-33.pyc +tests/__pycache__/test_html_formatter.cpython-33.pyc +tests/__pycache__/test_inherit.cpython-33.pyc +tests/__pycache__/test_java.cpython-33.pyc +tests/__pycache__/test_latex_formatter.cpython-33.pyc +tests/__pycache__/test_lexers_other.cpython-33.pyc +tests/__pycache__/test_objectiveclexer.cpython-33.pyc +tests/__pycache__/test_perllexer.cpython-33.pyc +tests/__pycache__/test_qbasiclexer.cpython-33.pyc +tests/__pycache__/test_regexlexer.cpython-33.pyc +tests/__pycache__/test_regexopt.cpython-33.pyc +tests/__pycache__/test_rtf_formatter.cpython-33.pyc +tests/__pycache__/test_ruby.cpython-33.pyc +tests/__pycache__/test_shell.cpython-33.pyc +tests/__pycache__/test_smarty.cpython-33.pyc +tests/__pycache__/test_string_asserts.cpython-33.pyc +tests/__pycache__/test_textfmts.cpython-33.pyc +tests/__pycache__/test_token.cpython-33.pyc +tests/__pycache__/test_unistring.cpython-33.pyc +tests/__pycache__/test_using_api.cpython-33.pyc +tests/__pycache__/test_util.cpython-33.pyc tests/dtds/HTML4-f.dtd tests/dtds/HTML4-s.dtd tests/dtds/HTML4.dcl diff --git a/pygments/__init__.py b/pygments/__init__.py index ef297f2..872ad97 100644 --- a/pygments/__init__.py +++ b/pygments/__init__.py @@ -26,7 +26,7 @@ :license: BSD, see LICENSE for details. """ -__version__ = '2.0' +__version__ = '2.0.1' __docformat__ = 'restructuredtext' __all__ = ['lex', 'format', 'highlight'] diff --git a/pygments/cmdline.py b/pygments/cmdline.py index 1a1f8fa..b6c319c 100644 --- a/pygments/cmdline.py +++ b/pygments/cmdline.py @@ -330,62 +330,6 @@ def main(args=sys.argv): F_opts = _parse_filters(F_opts) opts.pop('-F', None) - # select formatter - outfn = opts.pop('-o', None) - fmter = opts.pop('-f', None) - if fmter: - try: - fmter = get_formatter_by_name(fmter, **parsed_opts) - except (OptionError, ClassNotFound) as err: - print('Error:', err, file=sys.stderr) - return 1 - - if outfn: - if not fmter: - try: - fmter = get_formatter_for_filename(outfn, **parsed_opts) - except (OptionError, ClassNotFound) as err: - print('Error:', err, file=sys.stderr) - return 1 - try: - outfile = open(outfn, 'wb') - except Exception as err: - print('Error: cannot open outfile:', err, file=sys.stderr) - return 1 - else: - if not fmter: - fmter = TerminalFormatter(**parsed_opts) - if sys.version_info > (3,): - # Python 3: we have to use .buffer to get a binary stream - outfile = sys.stdout.buffer - else: - outfile = sys.stdout - - # determine output encoding if not explicitly selected - if not outencoding: - if outfn: - # output file? -> encoding pass-through - fmter.encoding = inencoding - else: - # else use terminal encoding - fmter.encoding = terminal_encoding(sys.stdout) - - # provide coloring under Windows, if possible - if not outfn and sys.platform in ('win32', 'cygwin') and \ - fmter.name in ('Terminal', 'Terminal256'): - # unfortunately colorama doesn't support binary streams on Py3 - if sys.version_info > (3,): - import io - outfile = io.TextIOWrapper(outfile, encoding=fmter.encoding) - fmter.encoding = None - try: - import colorama.initialise - except ImportError: - pass - else: - outfile = colorama.initialise.wrap_stream( - outfile, convert=None, strip=None, autoreset=False, wrap=True) - # select lexer lexer = opts.pop('-l', None) if lexer: @@ -452,6 +396,62 @@ def main(args=sys.argv): except ClassNotFound: lexer = TextLexer(**parsed_opts) + # select formatter + outfn = opts.pop('-o', None) + fmter = opts.pop('-f', None) + if fmter: + try: + fmter = get_formatter_by_name(fmter, **parsed_opts) + except (OptionError, ClassNotFound) as err: + print('Error:', err, file=sys.stderr) + return 1 + + if outfn: + if not fmter: + try: + fmter = get_formatter_for_filename(outfn, **parsed_opts) + except (OptionError, ClassNotFound) as err: + print('Error:', err, file=sys.stderr) + return 1 + try: + outfile = open(outfn, 'wb') + except Exception as err: + print('Error: cannot open outfile:', err, file=sys.stderr) + return 1 + else: + if not fmter: + fmter = TerminalFormatter(**parsed_opts) + if sys.version_info > (3,): + # Python 3: we have to use .buffer to get a binary stream + outfile = sys.stdout.buffer + else: + outfile = sys.stdout + + # determine output encoding if not explicitly selected + if not outencoding: + if outfn: + # output file? use lexer encoding for now (can still be None) + fmter.encoding = inencoding + else: + # else use terminal encoding + fmter.encoding = terminal_encoding(sys.stdout) + + # provide coloring under Windows, if possible + if not outfn and sys.platform in ('win32', 'cygwin') and \ + fmter.name in ('Terminal', 'Terminal256'): + # unfortunately colorama doesn't support binary streams on Py3 + if sys.version_info > (3,): + import io + outfile = io.TextIOWrapper(outfile, encoding=fmter.encoding) + fmter.encoding = None + try: + import colorama.initialise + except ImportError: + pass + else: + outfile = colorama.initialise.wrap_stream( + outfile, convert=None, strip=None, autoreset=False, wrap=True) + # When using the LaTeX formatter and the option `escapeinside` is # specified, we need a special lexer which collects escaped text # before running the chosen language lexer. @@ -494,6 +494,7 @@ def main(args=sys.argv): return 0 except Exception: + raise import traceback info = traceback.format_exception(*sys.exc_info()) msg = info[-1].strip() diff --git a/setup.py b/setup.py index dde886c..c46d805 100755 --- a/setup.py +++ b/setup.py @@ -54,7 +54,7 @@ else: setup( name = 'Pygments', - version = '2.0', + version = '2.0.1', url = 'http://pygments.org/', license = 'BSD License', author = 'Georg Brandl', diff --git a/tests/__pycache__/string_asserts.cpython-33.pyc b/tests/__pycache__/string_asserts.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..27c3e111ffc70860a86969c33c52902dcd4c3355 GIT binary patch literal 1469 zcmd5*UvJYu40n>QRHd*9i5CRocxoS@=_ zf$nqgMffIs8th9)w}KD?331B#Y@dCxf3`o@u2kdp!QiV65W=}tLjDPE$&he>A;2?k z0k`24WgCPAO9zHFa0k2wS?e!Istnib**FoYl1!>RO2;gaQsjzh6~&R78IzB{TvcP! z3A5=ekH!<#Vcj#9wOg$R_u8%9`)o90Y9iKuQzA(2GARVxdoy_c>cDFj&%{wEQYkuY z-+NlzzkJc{^}QZD%yPzs3ZhsxtD%MQ)1uSCy^mYAk<0;l0wKWkkz&eQu!6#ZVabRN z@DiM&h*w((NEzMqWh9<~U?8NDA)!QzPWnL?w;XsN8 zsI-m70{Iw}LoQ1TK3Q~&zFq?h2z`AUY5k6GezLo$7sa9& z`dKP8MT$5ifznlEjkP3eeHFz$Q@SWidwHJaYgZ}aLtR0GNiai~@YuYQ3c+KcDYrz9 z8+d>rx`muO$r9m?N4d+zdl9?SRhPJmz;TOS@rz!O&FM_Azsr ztn1dcrEemC4&>&h$G<@R7RIoFx=8tNVNSWA?f-!|RlLBjhanN(*HCj2?;EK35$`km ze$n}qmG7rPB7EPpmG37R*D;AyLf?On^n>I7# z&w6cRRLvw%Ts!u5d2^2Y4QghPa5Obm-%0@>bRGY@@!2Tk-3O@g^0Pqp4yYlx2US7534)6tR1XF`iwGV?5$mZSA(yZZ-0l+z!JfG=>|DV!o2zzb3l6@mr;_+ly|Dq|YNBvgmg z3caHaAfkS66~Bc&xNbkxwQal{*+$;Z#-*;jlU_UTx(0c=>7h4;b-4bcsqc}=Il{&& zR&XwH+%?<_(X>_aCaBrxE4rciM?|~z0pDK*c|p^NrZK$;LLDLii(qFF9I;5I4p(qp z3A@uiG?nxdEk~x%GOLtSrqQ{#%?#npx4GOZ6kwR+(yFw|N_{MilcqXpSwalHdY0c9 z9>RRV=6!fTT`Bi${3P&T)`bq&X1K2bWJC9h(U+NfT-UDVr&r*`Ivbi?_kgH%;Rq<1 z*it9sVUsBRq>H3p>^f<8ow)fkoYb?HudsRMjjcAAjyb7wD0akBZmyf9rKz%cn*Nnt eS*MpCZTVMb{FlHpOdJY*&MRsKu11^DcKi)3H<_vc literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_basic_api.cpython-33.pyc b/tests/__pycache__/test_basic_api.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3e7dd7b5ff888a2dcdc6025397bcec802e01722d GIT binary patch literal 17522 zcmeHOOKcohcD+?iQe=}7DN-awNtRoZWz*7_l$FFb1Y0vQN!dy?l!l~7He*dsv#Urp zRsCUoEOHhvdbpBEE2$jAiHdG&V5x~ z)gRI}X=Gp^Ep_qL``q{5{ongu|8(eR-n+WA^6@uB%98o?p!_X-gO4o{M`RUGOB`D~ zORBc4+G6oNCtglgbJ~V-kF54+xktQSsrJcgpHz>?>Jh2-%WA(=2V`}?jO-OJFV#U= z9hB;jtPYvlKJku9^_Z+4Gw(;l8z$e3<_(dpi(Z}xO=M*xVD~FYOZE?DX4Sjfc?vCpR zQ65E%ua?4)uSfV=@wCidrfJ$nQM(pb>JQx7%5KAr2x-OL3C&!Dv*d2LJGTkf)D5BT zX1x|J*2A0isOC)f63hS|A;uL$Lg~lba)?E4+`6N)zrG8^qRiQM{8DYhjgF!?=aqsW z0aWJp_~E*^jyZgTGk9!>JQBG-DvvD*QMSlve`L#cA4rP!7&AGP%A3B~7lF)Ni3qb| z`k*Ay6+C7)>s5DlW6hs+-1l5>wh^?)34^(sMFu2&n^rvM@# z_yL2xw54(mwUyuHLy>}l=nC>pRl#w(PW%mK@i0o_eUZn&%o%QP%aZx~$GKN*8hc&0 z<-6AQgxqt0)M*Z0Y@&+WW6d(Y!Ern=KGcDbP)i4}%c8*v`CtPq6^4F>TMSu=@LH+r z9u`-m@O!RbS>G+7q<9i5x`Z;ZTT})uR%$_5s)dzO=oU+!H}k4jFPFUF`ivQAR-55x z7H==Sy|A>LHkq!9-krlP`qaM5JIjr531Sb~BUZG3@9w021*2O?eK96A)RNO9PsHj% z^QU8)lbKSQ_v4MER+|3=3`LPpwt-ZHwmj&U;IxD}`8`W^R;WPd@84F@>4`ZCyb-(> z_aMXcru78Try$O=gOfCY2`A77klW|w9;Z7ZP9Np)u`OZ0Ji>E;X2JgpagOk{C-=aT z`k#x_FDTS(v8~{*<4NQ37|=QXKU>ECd&~I$N*0}`L4qlQ+z{5FS|b1pPFQB+sD+t= zeS$fH6?!7}>VD}b^hE66(2B8#K#8~0UeXzyD@~F+X{LZ*n3(Y!%82I-yikJ z)Pp_=z8`no{=Ri@`{!2NJ|b)ba3F7#BVx4G5+cExp@;u>DxJGiME4`u&*Kt~5*@@y zuiUF$mY#4-9^}QhY|FAxhNG_&z)*8lU>oeV zPu6qEhE@5TA?K1knWEE(X^M7lQ)z zR%I;;-NHk^UfYPM_)2SKSO@co3%~rPTCo{4m8tyrNz`tDazHJOHQ%399c#&!fIp~d zu_Sje!U(>Com=OyjcngwR(Y7 z1?cI}Rb%n?cOuu{Rixi(lp^@Q0w=`v{iqST4(Kxj(-MQ6e*T(zQpGYH1$bDmUGyXL z7j$ok0mjG zy1xMSk#5!vVBDvNwcz`8UvUQ9sQJvAQjVo}5YaU%)k@xO;1=l&spC)yjI}Gf%17&7 zy%ZYO^}H6zptDs8f@n=itz%Q)OV^|HD!y0pD=?mcQY9uKmy?i_a8gp}qLhzfT12!R zzvb?()l0r}E1{seY{ep_vRKrGhEcP&$3m=l}g^FJ8UiTTV zJG*R3a0on6z;q{vm8R7DAf#X(53x>LN3C(|tTky3TQBl!pSQ>HcQ`j}jaUVH)Ecpe ztsXmPO`&HF|4v$cI%Wzrqxct{=K@pzWe;K0Z8p4U1AD%yo?6DuibesWSb@YCCn$!Y zd%p?i$4xmkc5PJcsN>CTC~6MozjEfz)jx~c#I3nJW$F4ldzCpiKa^V1i-H@tc>EBq zDMCQ}x8(zok5Gfq0>Fg4R5O(?$^!9{JU zC8I3W*O2J&VHY3P{Raj*d(ZD;*)6?UtJ`QmN^_;)k2(I)5zbIcHs^bZn=?T71v!;1cqI9x3>z?*l#xgnO3E-GM_Jxr)P9QjcIbNK zQ(#Qu5l763fn-EZ9%=3diI*7u zXUT}q~Y$-of&I-nZHHn^1JmTcM5GnFZLg-lb-#SJ^u`AJ8^KqTspP7R!2AHE*clo{z!E); zcXi*Xk<7wVr!N+0j&7)J*HDGsncrqAp7HAJ&I@rXQ=Avh%|?MgyH=?oLr#C7@WP$E zo;;X6aU?PG>c!Uz-&(KN3m31aLTyHvcdC(iDpS!hpQ+w|QllG))>5~bnMukXvc+}va7EDH2GLD5fi_GRm= zebl;$@AC-Mk0U(qwKaX%27vlmKinj@egWU$As*02v9^F>f=bq0D|FLG&?3yhGb}|a zoCOVK5#Rn$Rj`RJKQIC9WhQK)h3D@VG^gIL30%N}@-~_qV>FKlwe8S7=OPwW#vFIO zu+H3A1G&61vCj_|N@s@O;J@)OiW3?Snr#Xe0a;d<1FRHFrb3(MdZ9N_iKR^i*ZJ-s zTG9MGYmuQ2RE|P~ zD1f8s=G|j7PSE_oRjk?b+V@lT)h=B9p!ol$9f#yYn-M=_qS{EN3bp}NiY0RGq8^)> z{2=qbRiwjkhRCB(bCg*in^rVTWk}xH9w!Ma#CdeOYZs?pW(0)%F*`wLr+Lz8Dkk;n znlqZS)SGvfzI|h51?NvKK8)HAq_VpSFE!(>YNPIlCV5DIBYSMB!WKjg_E4b94=Rln zC}agj9TkMTo?8UZ1QA&S$E1MgxjeCU9RpO?TdS1ojvI&J)IMhM#tc!6o14)cS8D6^ zxBx$t%%}QejVH84K+*jh4CyPe9fIfB@d_Sa`t+1bGOFmOD8&xy2uv1T)Cmal82%l@ z-(%KMyVoAD#_Z^M^i;uauD#fZ)^J#^N3!k5h1{fWNwct=Zx6#wCL?O&^aU00vhqUP zF*W-&XYODD+A~05vNO$yWR$Jy(iX%UMfpW>eK0grAofJr$7l@bwupV&8n6cJlanLN zpzJ%S%>MjPP#E>h;TwF0hw*(qNFe-G=m1Fj6R1b1Dow=Er8Nh8&|K=WQ9Huf#DSZt zDJU48Qr@AOp#z9+IXyQk#Wes3C59A;Nw2hlMSmVYs&1olOs3$;+n=>VK#ox}kIbWV zhojoC9nOCwYoiJ$qbyeNh;JHD?%oWm-pxcYY4YULpQ#|bHOM3Ni!x#eX9I9|_C*rum4zMf%_< zz{f(uDlFZwFvq39D~$hXopc`=ZCFla?I4L$F3SOe!R}O^z`>2_)R!;lC*!P#orCYtSg+v|$t!LA)3`UR~Y-~N) z4pB)iw)JzdttW;TTe*OO6NT$9ywd6dJoo9(o-1cv02&B&0VYrz8)k?GC5y>PW0;kN zW5fKC8fJ)sIs;9si=YyQJ171>k%K?fP_pTqKy3Vv;`4f-07v$eL)73j-RwxcmzFbY zB2RB9P=Hz?nuC7=8dN}|)*gVqMQj0|2L}N}ENh(BhF+@brP9MfCL?Wf+Um0^;-`sP z6%+NJ4{n*sT&mnj=2-eVO)z_XF?l3wsNGG?a8vr5CfWq65I{1E%DvgD3gp2|1($E^ z)xV&mSF8l5Ua-UVF`R@A!$Mrvzn6O`jnOQ6wMk!OypG~#spfc4cI~02QEWuTm$b?I zn_gnfL{wQL%xSU_PmAr15ecVw6DuDmGG{dz>SrKg7dC2u7i)TQ>)z_O0XA{AH@w$Dwtg3Cd^`cenn|hnqkv4>DKOIkE4!mS&E7z zUMDwX4$wOdRu?PB8RAroUe#)aj5(SyzY!^7_s}=UsJT@{T4oD=iRvcpPg+wrcSfpa zkIpUh&S9j|`y2{g{4LPZXk`;Vk+=8vP}oC53Z(`j(6AC8Ie%gI!{Dof2#0kIsE`$R zy1d|jxKOf^@UmT7W7A}kY79+Y$2WKv53u=yiz~)zGjZM8;Ou?WsLcnmSXNUHmyl%$ z1-!_9Ekh2HOU}4_Z7w;p4?^RkFg#>4UCK>!jdlfrT5~B>H#9Lyt{p54Q&%u4E<4-u z6944PpB{M$wwtYZ7U;lgD>|{dkB7)+MOe!Q0OU=>pf>1jHtl#!--mgvTHlZJUJW6P zY6EVHoiGjKal=MG4e!ps(s!A^|Ig~t7>68DJd_3OGW;62J$OQi1U(@aEAvc3h9kl8c_x=p&n9G|H3xu8cg_3UOeC9T+)Bh$ z6M${utaA(Z^pd;XX&+{&v8!`>eENxkL*fCIAl6wkJSW!nCxZW6#`5%eP+?KE%fn5W ziJ(!!tsAO%EtxwiVQI}|v1;x^ST0;tA&Wf>)Cx51_9m`&d%WJQ&@w8B(BkM)6^B|C zIt3<7WGEh%HgNq_l_0K^t2Y=|o4FpiyEsd9%D4}w(95`H93pe^19Saa>&Z`ksS>!z z`03>%&bv`xTk~9#+~DLj9j*(nx<2kyQy~1c)blB`7e8$1!8hQSSORVCpHz2D9YkPn z3du2$qwBQ>4sS;UxxN`~nB*+G#dod`9WM}k^Ge$Z?8DrPvotl3k-{0(9C}?l^+B2g zqXNL-N*it$!tNKGii4YNVZnF9$gdUNGEPkA#Sfxt8Q*{@=?#Oe5n_wUHJ~cFdrtIf zy2_|PMblS_1e(9}dii961zbG8gqF|6Li5UcbP?T^Ycp5v9#+ClT-!@rZ5UeH?KEjcQ`j!OyBI`tTC%Utkv43>C}<{cD?? zK$8q40hv?D@cSt2MFzz-^6;8OgD(>sWms#NaHh$WB$^RJqRkj(coa;NB|Z*=bv+L@ zIXDn6w#7957>^WyT5)92(3Z){tLD!r1MW07sHEt{4zu%hQK-+6ZsZFnRK~a+G)p&~ zu`Q`qTc*5utgS2INa>%>C7$ z@#=_*4)w>%Hh1l?dXM@|DH-qmYL<#e@zViK^6)&PLtNq!-6?pNa1TyFjod-UDYyqp zL8TOJLIz;|iil_H1sEZEqBl(VN zBcw8a@u6q}g7Nb?pqDsnM$$}(^JV_lQkIqUmw5)>X0*PJAA3<(s>8{&hjO7}q5bFD z?N?g~j H9P0aD51~Py literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_cfm.cpython-33.pyc b/tests/__pycache__/test_cfm.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed1108860178070ef08f6a9cb9b5639ad8661fc6 GIT binary patch literal 2306 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 XH19-q@h;PvpEqYpBFcQxSj_wd8^f@C literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_cmdline.cpython-33.pyc b/tests/__pycache__/test_cmdline.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1083ed33f232700adf7b2ea75c8bf9c55b559fab GIT binary patch literal 6483 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_html_formatter.cpython-33.pyc b/tests/__pycache__/test_html_formatter.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58cb7c067272c6f1b5cf208bd9b286dae14daa7c GIT binary patch literal 8882 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_inherit.cpython-33.pyc b/tests/__pycache__/test_inherit.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bc231e907881cc38a36d5c9356a301be7b4ca7f3 GIT binary patch literal 6640 zcmeHL|85&a5S}|bPVBhB{XtNQ1cwmFh}KC9${$fw+N7aWRBqL{2w6fW$G34Vy*slpQ1<3Bso*kFhwdS(jufqa!MjCkt&L`1nD$6Ws#Oil|(uX=@oKj zL^_j5%aDFRPDP}ZM0y3%tK?i0>9s`f45Zh|xgpXUq-I1fdYiOf{SY?Cf1@Z__%u`) zh1O=bZ@Iyi>bp@ZXe-pM=c=Q2o~Rwwm-l`<`csk@m)hOlpzn6Jq9toJsakgz78Y;c zUAXhDwK1@wEoD6$bbJ+H=t#BvTUMx)_25P0ho{fiYg&!xwp9?SC2M8

BWjcy+D5 zz9y4(RMc|4uvT(m2-T}58&yK_ZrbrAeh!VQ8r;sy-cUPHn}6|#|8vh3JmE7GZ-~|u z_<*HGX%1O|B?b*Z2`A5pf(+@>H^G5qwLyw>jhhfo1MD)C#?vSsYjhdzbod?6jlqOAt^NuN8)>AFaKLTb_QAA!SUYb0pewXCgztB2-;^`hCQp97aDs_98dKz75rJg8-~N75#)q zzUCGqxRPkQXeu6JD4!!oQt^=f@2PkkPx$c&6_-%ox7qh2tODm~68b{99Vy3n!nMG; zAo|^eq2dV-G;VGW@xDAZEE&picp%>IF^_hdlNa6(2Y#oJaey3zTzUs+!HC2Geuw%o zSarl~C7v%vz!wkm7f~kd{Gdv>%ynRxL>XI$Q zI>rxLzCw)8{>!%gt`j4^wqs6UY?~wBVY>yvxS1t8BTir1@4(YQDL&lG$H&-#@v&gi z$)C1Mrv|otwn%+XLRSGKA?vRg&ca5{T8{_7m39(UzrL;TG{h2X9qGKM72?x4m8Z)@@wwAp*1~&#x z92uZvU$z%F?$7DQ*%3=o8inpW5gShZM_91eqrsvKN^G5=#3$cAcIit-15`5695X@J z{9ZJuYigaym!GG>>BQttk>^@5-pw{+Fuy7WpVftr24sxlrF7#XM*IXDvi@kKvC8p; zPJ3*p+eQ$^Yaa(LE?&bZp23ggGPUOM1^pox-`Th2R2PRN2R*B8K;>#HRC@!KEbpz7QTQ{YJ%zPL9)l% z%|xh-jAGsJB6JlxK4r-g>8V4*Oh+cl)^O+bRAthnnWfNPsoBRg3w?+5SCK4Y8_*U# z^mXyw##i4#atzQ`n0U-1Qg@zy%pc|(bC1a-z6_Yxu3tq1K9+zfT|eRO5biZ32H=#@ z14hPU0z?A@As6N`E%|6GD2S;Nd5Gymaa4&sd=d?Zc~oV>SMkutFEFvUk!$X!iE57a zvSz3bRNS1-3(z#^q-Gk7(dWi=#>Z%7-c2tP76F1&ckCtn7GX75z6h>_qIG;ZxNpc{ z*PS>N;uwQ-Vd#Rv%$1nooY4;Fj2Q04xy}mf;7*Mh)LAXe7b33^U04>Oa=j2;EJS?h zXbnzWD&@EW$9Q6u`4t$~;MjrF{O{tlQ2r^_wfDHE9VJ&u`APBSod4ucId$rH*E%(YPIA3JId zEveDklYKcEsPJi;UBNAVgCL!%TX$A}`&)DERn%H^-VZn(pHjm<2f+lVJ_syD7X(Qf z+L)GgUQ#ONa)4E$PFI^Kp)r^NZ2*PxL zPLrLTM25oU(JLml!PPix1Del2-gX@1!kX_7y?pucVLd!(N9z36EId97oVmZgN+^m4 Rc_AJWuZdv2-5bt&={p!diZ=iN literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_latex_formatter.cpython-33.pyc b/tests/__pycache__/test_latex_formatter.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eac2a70fa97a493000962ddd6fb637710e1c4222 GIT binary patch literal 2290 zcmb_d&2HO95T2#}Y+8zCr*7lq!h;Lw&`6F^;YHh$FNhXmTY{rbw2% z8%KcDi+k_2r@lyErjOE@p(NXh+e=GoSF=02^ZU*4k7~`1_RhM0l>mIW^%Rl*8i)EF zrvRXbvw*;YNWj>Fo&|!|1&9jJD=-h~BJ_$2x&*xv(?y8NFs?walHVyov;yN*=° z*wC{<+AvxJS%qr>Kcb2n^d7*sK^cMy{EF%;Ad4_shilYWC)J(C3L0nr#L0H>Ih_o~ zGSE7IK1rd6{w*9Ya3}|- zDL`9d7BOWwTk~9ER4I29$s!&yn>gK7)5XXwrB;!>f#U#&`U!Pt{0U0eZ=b?UfVMyv z;2L05gsFg0iD=~FZ)U-3)cpOq#&n_)YXl`!d=1vD0D1*Rs}L0DnV%J5Rszj%Knb%l z(^Z~pFnRz}l+0oU9a@Jef)2MVm{nj}fKeT$7ECL&Bk*suL57IQ8z3+NM4K>Mfhj6| zNT>>sF2Mi;vC5ktp>Q!ndKE@nbaQ4i{qfwR+1g^6%Y7YhLQ#JLmo{Wi1U_%#9XOxj zswMOzn68nrBIYEFwgDM|&8Cs@kLS*?Csml1`7j#UX;8RN3?-&-qR0@|W$Y(G7!OPt z7m=sK_!%E)A~Xyo{OW??WU!oxkGqeMdWw*ena7CwGEQQplXRQ}lEo+;Bu1O<#SJGj zv6IO($+Qd{nPo|)x{W8uW>rZlW45K+?sN~2j@!H&g-V_N|a>ll(|T=#Ft7jaFMkF`Bp})blx>v+$DK-89MH=fi}~L zp~9yV?prSk12-4_7&lcDClKpmM{HSJR#j|^O;H!ND2OV)TR7ImhNxL3t1N1wZq}0^YZjks($NE@{89Dah$6!$d6b=)I_-VtUqs6jd9^zt= z&*n0H>b{CwzkM{KuZQ}efC=o%q|^#n4@Hi?O1yAgLLnMT7A%_qU7^LxqqCfWHXe9b l68FdHCI?LY7l4u(U*xd(ifBa|%T^r`iLX^heWC literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_lexers_other.cpython-33.pyc b/tests/__pycache__/test_lexers_other.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cc73d13149e0b02390201e6538c7ff9e7d73c7b8 GIT binary patch literal 3635 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_perllexer.cpython-33.pyc b/tests/__pycache__/test_perllexer.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..53c6f5595d9e55822f21128663e9a2b4a5cabc8a GIT binary patch literal 10626 zcmds-?Q+}36^54|re%e4lvuGPCruzlis{rQ9XCy9T#u{T(X^RKRM%3bQ<)wb;I1f0 zARu$Gv1D8A4|S$j(7(Nj-c0YHw~_apg-B5RFlDO>TS!_ReCz@6oOcg)7x-s!YBIR} zX#L+aLexcS$-`d8pMH!&3bBDQBV<+t8L~M6)0^ z3L^76c}~cJ_!~SFgvyHT^WrckHYUj1TIoFen}4C0bg(?!Z!}dHYp10eYR?JOo@zO< z(y`{;E{IVI#pwz2VDA*b0c3i+Op@3V~qE(tlq_C+B- z5b`qHIQWW?vusZbIVa>*wo&mzAwOdKeIb7)#O za!JU~*oO0KLYCN`74mw@{#?kP^LCu{hLAVezA9uHf~f$VnMU!*gzj^9{}Cx=9TKVM zu#uL0^7jD$HQN~h(rE8$PxVQoQU({6{sTu88&hvV|U&71y|$u9h! zc2p6@B(QlApGyKuMwTK>aYlIeRz+M$>U{lVSyZ#)ATJJZ6a)b^aJ^S~#2v9eiaWL= z?$`(?yf4wjv+u;8I`RJ%E^mbRQx;NtyQ&^5X*HnB22};epXIP>Q{%}*Ku2#!emF=C zhSHJ>O_Oz4BC;KAP%5@c)#hC~F1f%&Z7Hp=fc#LZJu9fU)y@>omMFlAae*#n5{1al zXFjpI`50@1bYpAPsqxT4Y9alzV%A|mG24PN>p@n;&;eHQAWG>5qUjuiP;<0rA+DXg zXgy4X0XaZKnGoqDhXzk)Fl7`21MX`ZT>k~a{LJ|EonXK0(|wt%bXC;&{TFWRMMa=$U}3ZQ=>ladNEb>)36@>2T7Ws1Ugr%Uh&?SyWHLxasO7 zOC|UBIrixyogiC87AWSXGt(J!9qWT)+T)^5$%_{HPdCZoB^MM=?w}yHN9`3I6a4a% zbLI+#O(IZ?WYxTfI@dO%s2Y22t6HsI^V}ELSjx7n`u_nE8{h$XE%m@R!|vPm2Iy)j z2yaVx4t^*BAEnr5CW=)pX|$AkG@VHhS_0mKc3|DpWxJ4Ky8yNe%+{9U&sIjp!{e)q z?XO2<+plhawm0B0ty?6dBk6MIVu*B~rtm%m-lvS$mI+>x!JtQSTDlWB?!H^!iIJPm zP{$wOw5&xhIrou+ide)9l7; zwcYLDY}l8W{dLc~ZrPW{pFKVBj^RjN6Ia!+Wo1&;ee6mg*8SqZpFiJroo+Q zUBL+Qe`ZkA*0?sFj{Vrsd|9d+zSDt?G2>v352$|nw2`%4+y_tK2iKU-n zwA1df^x{gAan!|oaF1o6gVQID%KRkW zi-0&l*Igr+mtC-biM3IM-R0)=mHqz={jX{0r;qM2^!kK*bNX>lZ*ENWO7lts^s4bn zz11GGAEw!vuTCJ?Za=4w9iw#D4$yV)0DVlc)4SdQ*i+-}zjrbJ#R-_FoUE3p-)?Ar zzg7#~rmEEpO_kPa%}5$d%G6AeSLq9iWIw$ze|YpEPwG>QK{TgueAm0|q0|3n=o`Jx z-hS_uOnVyd_}dV^DQ3zOb)5rK^L9LgZ3fM__N~ItHq-7Prkr&pVr}}3j#6PTL*@uf z`_Y_opY8_rb)FhLbsY3|gzP=HZ=m;pq=#!p?2-*TmxVRzGti8je9UO=#lCm8;try^ z8|Ye%W?bIp{eHi%uIN>|rVoau3m5Xm^TmncR56dA0+(bR{T$oU_ZzMfwKjfHRIACT zj`m0|GWi<_YP2TwW0JMGh?S!+lFIxUMfxQXiMqX)KTy(TNGRa1Upj4>Jg&pr16Qm5 iSAzpAFDCb9-$l_`?%MQnk8J*|rGSqhidlRDk^2!|pR{!V literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_qbasiclexer.cpython-33.pyc b/tests/__pycache__/test_qbasiclexer.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..effeedc569f912b2607a74a432992b33fa0fc846 GIT binary patch literal 2040 zcmbtUOK;mo5FS!5ho)o2X<8ILlnrvA0avn(q6ecXT3d!=)KyYTNdR34id;!#`B1pK zsRTH^xWA+QtDPB&j;*AZh9HNtJF~Mh-#q@dx2)vwa=6<72;kOJNB$@LIVTnC9PaOb|Lx)a z!FSGh>8P1-UM#1n$k3<~e!AyKA)KFI4xc^09CS)ENfd}oiX-QE&@1H^=O?HA!6~~D z3gt(M>{t=H2z}QecM&)k=D&-qTyEmBboW9mL=lhb)6L z2Kj={e95;-pWcrE^v>}OD%G2VcSLwER&J}3S`cnj{3gUU#9I*Ft9DRo zRs5QVsC*ydZHU_tZdN*|Z&y6#j~$-2;hjmP6F-0}40eb4hY)`TR|Z^{uZe9(+1^61 z`uZ!Rz4Kq4g|%>=I+y2X&xTLj$No5YyyqP3TAE-*xu)81m@b%FOrL5hz48=qxSTsa z&+9#=2TXU}N2vV1Be;To5z9aFBIJVWi6HR{UqyMwWi}KG#by0^7Gbf>{XmrE=cht% zpsiPa5&7dpuoq`ZKK2vde?AvzCNFq#DWoXgit>sVIt!F8ub=|HK*I%|qA&)kh_WfO zy>7IP6O5q^3LeU2AVgRStDuOl_<<y)==-== zO}7pw{8q73?cWG_(#Z}_y$@zBRrV0=o%m9$JA|Tgv@#6;cfQgMKa{EYk$6ejX__{s K+&0@ryY??9pvEu& literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_regexlexer.cpython-33.pyc b/tests/__pycache__/test_regexlexer.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c938c17124ec697e17f3d862c8427d418aefa20e GIT binary patch literal 2921 zcmcguZExd55T1?m>gKN1A^PQnWa&W4hr6^_P=zXlxR&ZbItA2*FA!d@8FJ7OtqKl4n_`L3EZv#7VzeD%|o^P)vQ$4dLDD*^M2ARIpMPRkD zM!J9g+sBvwgE*gG73t*M9t1~AHQ3wT-G8yS`|^`ud==Ppy;{ZUX!<-bS_iMb8-Df8 z$!WiwCQD;IGx{JnJpHolfAjUx@!<40ILnJ5(Kbpm)Av(sn+83_N8qa+>PuT%KCBZy z!W%w8>1)F`zM2%do14{|Z$JeLp zbkShU&S2IT<{A7=N*>Xzq6z#>+6OK?6zDwWp%cv2fVU&wHlxE6Y%I-98HA-g+8+VD zE^ykyR$K>S2sGqW?)kzBtea;#FgCI}uthX8sZH~l3DQ}dxg?!Uf@kx5-gkVq$a#=O zG!aY7y^XalL@Dyzia!yP-x71|z+`$hcjjE|c+jiCQGJZNY<9)`(M8#!pCJpwB#+U#gj|#p-ufLt#d*jF2yo{>Ne*m#o z90|iLkE6_lVGq3|!o7sHbDmH2&SYHdB>E?v?aUW}u_M7CGL#sR5b4jas@Oci6ow(& zQcdO6HdR+`dE4Hmst&8Lj&D?0_bHS$tOMWPf`K54kd5^^^9TfE9ZCy4;oEeNA%;wf zA+v!Q^KK=+4W`i%nz@0nM7KmYimak*WCvk5sEglCjrVck(KVbkvQ@UT37$8EyG`kZ z*%GrYCivbF(_g;3A!Y6fy7qiuZPWF!KQm0d{yqtrQI8#2gZW~i7z>vqDG`yI@6qVE66-m?gRMNAhUX@ zf)S@u!RQrF{%@mCNdzH0ml4E-94sONDm}n?dQ zd{Ca7Y59+f$uim`Ushq3%5!%+4^lJ!nx{X+{^itLs@v+e)@1VXi|uY5l$1Y9EpJy| zSQe|kq`XyDdfgV$UDnbbYyYvJ@*oF@+VPIl2`x$ literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_regexopt.cpython-33.pyc b/tests/__pycache__/test_regexopt.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5473bbb36a49b212b4df869367f78c8c81554839 GIT binary patch literal 4440 zcmds4-ESL35T84L#BrP^AX=qWp@tUWhvKBAs)Q8<+BBt=Dz~arS}dZ|#kX-TIo~;V zdn8d4cxc7PBaaA)N1k{EiNAn1{w97iYdc?VLz@?b?H$kU?d;9Y{N}fNzm&#{KmGP( z@zE$zi}rm=&_6{>{)F&|nvfQGHU$&L= zJmibeq9>nur^uV&en^#}wJ~}IS4!+_qcREa)88SAWqcM@qLcDU6qmc(?T!j{QjJwx zZAD!z_rHGerzitzt*E;l`|VX-E6?}U^3|D{>mOd7xpJ+%yj|9-s{Eigds!>DbGe)- zRlf0P@y`8+jjEX@@LMWORIPloam(DlcXxiF-dGUlJf&SfNUB92j#Is2@gk5Q5@#KF zn{t;ca#>_cq$g4tgSRoH6?K;V(A9nvCeEg>SDjdO1GlAk@%{vlup#)9Ma!XGL`$AR zXrdjWXBPbc-JwMK=Vsi%2J_^Vvq;`Q=}z0II~gqECzfQw5L zv@8C>iL;moDC9ZVq+Wrb3R|TtsxuNH-$aO?(v6}(2Bp)unqG}MYP!7~PkZVs6-@VG zGOZaoA`wA@m}+-hk}}&?q1x)ka~$x5pOU9^27fONeswm8T5gccRR{K!5g4VM1D$pQ zmGU|R70N?=tzr#VlavQ_J!{HJk2Ufc`2zs3mmK4pXvqTz0AN9Z z6o4woJ{vuU4jkZ@70T#S5BGzEgn(EF8I2MMhjnz00XNKiDf7ldPW1h*X4aT@6E!Fm zets5h9xXWsVb~CJ0O2SVE(TkG-KcO9>jUrmmJPPN0MRxGKFtXBh}Li^Ik6|4xdQ3Y+idcq~Xg&BwWeUYEUk0Wc;O5ex- zzgq4fr(BTS1Py;f+4_rd089W1jDw{=IJ>~Zbh(r&_($J|*Q?SF2 zxpbu0%ZiZd)NYn^f!0Pz7kgdLEZWV{)+OQ7rSr6lsqnZl+R4#ciFWeLu=rUU-_TBup*%$8yQf?bK#mhk1~3Bfmxxp)t8c)d|4*!}<=3CD}FXRHYz?}By4 zI&FGl2kZy%V=sAi^JvKi1Y-|WCe(*L8PMxd67p|0ZbLBuA%jFf$OsgK zFi5ypu*ki+K6DO@9RSMXotC3kmoW8@B)oHXW3}RMNvLa2uUx*mD><&!+}?l96gnrQ zXJ%4$FwMLjc4I~ebLSyM97^>*5FA8@u(0fHLMa?FK1B5re8SYS6OtOU;On?dcn=}# zO{<91p20UgkL%$HHCF%qbSCM_kaW7W+W$43X2El>m`-CgNGDe&!%V8P4uz{T%Qf}V zy2SY!Cl=Waum^DIp%kHDuR!VHByQt1iA#^mqb|sHSE5J?z+Hys^Nqco^x(}`t}~wO zFu5*lq;4R&SD|Oln!MOy1t!$cIboUc%Zikli7>wf-R9?UrITHfQk$^SGOmUf+MZoq z7)zMnaYDDF94F;z9H)bGb-dR9?A>Ro9(H<2k1)GzK>G+`@7j2f4q1sg-5DRu zdx7JeFkZt>uO-E5MTPI3?|&Woi5&X7UDRHC69}}Gy3r5z<^E|PWE@! dz+;YeIrry*JNep^_Gvp~O#+4Eb}2uW`3J0N0LK6T literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_rtf_formatter.cpython-33.pyc b/tests/__pycache__/test_rtf_formatter.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16cc5a76f4eefe00dfa233cb290b0d96c32a71c8 GIT binary patch literal 6164 zcmeI0&u<(_700V)JY&yzvi2qmn`ot_5YlEqV2>T!>sV;DS(7Z5R^ye&XeBdJtKD6; zC+V3Uy1J5B_N-O}_Q;JB(jI^V2P8Nk#B$&O2d@4XcJB!O1itUp{GM?jC`dVE?5?hU zRb9W{r`~&ApOvl@qt(6rHy4En#LzE?{JXeJf+Q5;0I3vVMnqB^AcOy`h%%y?6$e=% z>3K#(GoqOj2RZkg6H#6?XT`y+d(Mk!PBaVRpdjS?;j9Sf#81%boX}aJrMO=dPiDly zJatkl7tpQ!97$2(_u=VrQ@2v1_V(|oqc~~$X{r;IYLgnS@bOcBMXs|I#O>3haeR_) zsqJ1?tyU@<-&w7!tf|9Om7eH9U#a$+-&RIzb>|2B-{0Mjfc-*e?3 z>}=ny*6z~CRH#$G5t*f81A`aUvZRU3BdMiHqjkJbLw3TszHn#PNlK9HrAPOA6LeBq zihcb!{Xjp~NkHw<@8L3^A~_f0u7;wZ38WcP5j2Cvgrcy{2Q#FhFvt0v2=f9e zAUQH~A}nwoN-2tPp7RivM0kbs1rfd?!UfKw!lDRYabLkuENB{; z2+i8&A*{Fkq}T~);Pj(=7S}c|Loc0!gC1#5hyyCETAFOpQtf)nEy^tNiEc-Jpvxq; zGf0e%j<_4cYh8v&aAMbxTRw@KdinS;Sq}9>9WA%JP%Se?oO(%m&OpliYB>i(XO7;! zkM=MkM&%ssK{zXZnh`fb3<(uQwpOM|RfiUu^^;mig(a%>bOcByISS+U>Wz$9;eOn`L6p5=+NAWmKwhOAjlT3nSg)!lO8LxH=S^G3o@O#*)c%Ms{bH zb>pVdZ`iBxY`gt38&oE3Ge(2u8wMqdVln~b zh)B7-Gcm z(lA4`pk0O@(a4|53ruE@g%Qtiw-x@MSYeMbxIi%Xxm9A%%T^A1B%Mo6!<1+G`!%%PkcmZiP@py zJFnx6$yIqpzA5cnkWV)z<1IWZ6E5yWBs`S~HY`0RKm(X?{)t1||B4A0oswSa>ggn0r$f(;4)ofbUAPnO}wDM(f8OFpM0YJ@!7A`m!JNeu7CdNXX;Zt2Y=K-<_q1qQ z+%Oh)PWc9~BQh79*-M@LQ*8X8Xksf3iY6xS&fsX6o)^V|9~sYk9$!1t&JABhFNR{e zMVZf(vZZUKLTMg<1^gAKo-~%}Xut*L9zH>#iIIqnq8)cujGxb1Qf=>eaLJ~P zh+F6%E?gTf?jtwlNP@O~znzHAZ_Sdy*%(f##tt`Vg!_mmw|%3hPYM;>VJ0v1|9+xL YJ$=_P`VQp{trk`mM?;G^b6Cv$8)vozTL1t6 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_ruby.cpython-33.pyc b/tests/__pycache__/test_ruby.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5545277d315ee10ff809ab7d50b3d6150ab77fd6 GIT binary patch literal 5468 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 NBP`i9d(~Q9`VY*RmZ|^% literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_smarty.cpython-33.pyc b/tests/__pycache__/test_smarty.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18f84418cfbcf785caeb4b8011b7d7465c546a74 GIT binary patch literal 1939 zcmbtU&2HO95FS#pEYnJC1n8wFqR4@VL~@0o2cr%Wt8Nn@kb_9+L6^mfT+39Kq{`hb zBG~H1eU9GyEPbBdJ2MnzTMl|i3GHZhXZM@``LpvV(EShNzncIt-1%@1uW%WOBmtNp z^&s&=8_%XRzNu`-rLzklWnSaKW}i)ES4F70tR zsM)Z8boAZx{?WHD!s#-!mnwX}oMkGvCbUXs&qAYA`1<4c&H0B>w}R1Wta77{!_(0Z zmHge?!P#(h7G4x(m?$e#ZMs2<#=uzm=5Wqe;?N=F7ph@HNcs|;A1S2`s);63^C>ye+)43O~BZWB2w%EBo#D; z>;dwCkPneqfE&gaj6Gt*h7oDsHjk~>l!nTB^2#WE5#c{DanF(KT^5<@&8B59QNJnO zTdV`!vuKE6Dh#KzyI3-&QTF5F389f%@EjR-YkZgG8y6ZVJix^+{DTZu*vcbE=2%S_ z8y_xw-Zo&4A!*cGth;8-qo_sETHoBIVqEhNLGb48eQCSiKE&LsMRze#T^o|17F8-X zAbXJPlW6uBRzBr=9>6uau+Mx4=8xdogPZE-V@qLlq7HgKbSFr!tjZQzTJ@vLW1ALv zxR9mHPOfBLV5OJ!@v1uSpFA~~A$ytTvsK`z)~-0>+b}E&IYSJ{`x8g8-$G`|iYuOP z_PP9S)v!E>9^=c~7I4(-gCe6YWd41r7G)80w+v;bxSeX_Z+mDDpS`xWOsCFPcQ!3Y z{r9shQ#sX&6`hm+T*uNFRob&(ozx7aQ&Y7g7c|>DQ&w1NP7_g$@inS%w&S9dJTKVE z^)0;g#dS|nq=p#cQpv!TdifO|nGgwhE&sqf@H*>tpMT=Jukp^E{@B79Ml@#FY9VqA zq!8?%5LuBpO1Ly zh(;t=hY(2-qv@1mm#3C&bW~CGeCcvlSiUKU|D3_>>gF}qfq5|VNZlA!4Wv=qwxOuX bKL_Irh97}{UnS)w@rFpt@A%(%hmC&$0^h{_ literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_string_asserts.cpython-33.pyc b/tests/__pycache__/test_string_asserts.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..401c439c846ad2239fc82bd7c926d5f29c41d63d GIT binary patch literal 2740 zcmd6p{c00I5WwdyA8pfA11h4R9Euo0lUme2iip=3RFEi5MF_%iz1=2PE_d~IR|$y! z)F7x$ncd`?q)Dw-gV)|?xrB6koB0f&p|; zTEJ|GEa;$u|2c?k=;xr51M4}<11rE+Y*hfB18%{79uD)+DUegUTEuSD4-_Q_pErYU zpT|--LZ)Hdb$lUsDjg-mD3k+7av_Co_~pc>q}yx;$-y8EyFIz-G)AhkvA+K3-p2a< z2hJ{b*yBfIO78dXI)Zb@eY^AG^>({vx{1Po$AWJQkQKF# z+?IeXYrP0;1z1Vz_~R8|UtEUNl+G!&6MXjoZaLRU|EaYrqTpuGfcLzG|b~aXjww@M(igp;i{bVug zWpQH+(@oT8ZakANt?CLkRLdwlFZTP~^HfQH=_gD@^p&<<&-Idge!#YkFI{gp#<#xcK!bOa%)*yTL_>Q+fJ+quWzT8@}K(N5KBfJ>aaD0h-xkQvgp$7j%Iv J+GVR^{{$6_%V_`r literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_textfmts.cpython-33.pyc b/tests/__pycache__/test_textfmts.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4588f0e84859717d075615cd82ac04d2faf3fd83 GIT binary patch literal 2227 zcmd^AO>f&q5FJtytuSh1=2D=9IGo+tot=4acJ#LQiJxyDM1Qo2rgY`Om>%QR z2}DXXfpjQ!DR*cB1-};ME)^}Bw5Vv)q)kPKCLJm~nt0^!iZ%GL8F;mhD2ks8pSpvbG-2+u}&omW>fIupL&) zpVgx8K(n_X_Km5Yt5a1^d5RzYx_I~S>hB@Wh(-zo08dDFMFVgI?%)6*v)-l)e8EAw z0Zcg_3F^QeEg8%kXAJp_dk}``TuzGR6dW1DGre=C*e?=n!Nh1wf&~;*<7^}B6okQk6uk@|47U7XxiBcZ`_ZyO zX(d&KGD}QWF2d6y_x(q+vfT9rP*yF2zbn%3Gy0bm)PSB8%5thvGQX^{+n7kSR<#-Z zVv}49d8V84YZ&vfWUfqXxEQs#$WfK-N|rNcQaQ6ak$WQL+^qgcE}256`N?JOKNb0B znAJT9ay<8rbH};sdXD`P;|qdsZu)Pr{R4viV78|T@J^HZoBs>#UjUuIFgRRc0Qv)1 zZ_@uYX5UBumCfTm_gX2}I9}jN#IfZ9kK>|DZO%iktT^V|u(I<7m5yQmz8>vA$J=zb z=8(JunL3U?@?LZi(K^{pj*gSsbbIZdf31i2`FcyIjpMYOB01h^7nxyrr6;c2=|C>5 z*gx!V$$k!37rUiZ=)t-XU;n!juMtihCR$w&5I&k-FNplBhR-QIYS`OlU9<4qp8J)v G+4>Xn$qoqs literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_token.cpython-33.pyc b/tests/__pycache__/test_token.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..014d57b89004f2c7036cc3b635f47ef5b082467b GIT binary patch literal 2256 zcmb_dZEqVz5S~51B_^feMX2RPoTwuCLlcL9P!&}`nxueKnJPA_h(M>y-P*qRe0FYk zt6Fl9s=(jipYVZy#xrw%O9@D*YwSVwK=iBd3+B?NIX%gwo=zafD`>3!#`R?$z)jpQ^Vr|1D zH9PeL7ob){@nrxPNzf6$^5Fj-o=14h1BfZnu?BEJ3euaw2ZVqZumfPM3v6*!bf8rO zT5E82>ku7Ah0$6ZQo<}BeTc`jAaKYz(WN2_%ssmFXsT%H(Rqok5TOvkvNBuH!@Ngo zwx}wzHJL(?ZMj>k2;dFu9vY)_dwk)-ba`XPY_@HlWIdTQ<213NNxZHG^AnJp!-;PZ z1W}5Og22`Jt+>==tQ&k8SB5Y;?K;L!i?j`>B*NW?*6fdly4gF+o3Vbb)8=@_XVU^2 zBQg*!cE%I;CLDOan6WtLEzB6kl+?Pn?rnMQ4)g`KJJ(k)pyqfuIDz_4CSO-%K7qW6`h`ctl=I*UTT~fSZ^11%1FTYOfFA|KlO=kH zu7Ik0@flBX*CRUmd5eBREtcrAEVWpnX_GUsc@?f$Bg_e`i~j9ZQqV0(Kz;fuNt zA+~bA9~v~?96h)nX8tJC{y3 z{-Kd-H`>O!8@kj=&V=K!&SD88)tR_=(OVk~_OcUjl*W#WULbNH^7-o|2zLRgbQ5NY zodi)|M}vEO(z_6(ZmV0Ws_v?f)E!m!?y9$y`vCK=w24*cR`FTm&JqM!IMnkF7Zl$y zymI;l0k_YY{qNmr*{~LQ=x&U)s1<3UK{|?1U_tOYfL!~)+(w{=`}(H0vA(f>{p(ZQ zliPX_#G?rJ;yXLQ$bibryd|%s3$N+Gei)(?Tsv$TwP^pn$Me5iR(JTN?R@pLMxCZBNZo&5JeF}&?Ew+%Ah(`B%^e-*&W;KtbejI zgB&U0CcFSI08hXb&%iry$1QJBzH`<#2{Eli8F`P-ocTF3-*?WLpK9yXbo=SSFD0Ug zuCyZb&+wT(L`>9$R1|xZD(XVXb&tBpy71^+T%UN9J*3krjfpJ0!>)L!=h2&& zij*zV5dI5n69c9m;^3WT5iZ&ef*iYT7{8G@Hh$YMM@>P3j|7Co8im$44u(Fkv^JAP zQ}Avb!;@(lj3%RLlIo_cVrW zE)idg8>7Ql5n@iDApL;+O4qX%$^b~}iBAp`w6fr%I=(IkkX9y!0Dhd_gg~?Qu z)tQ}Pna;5ooMAeChp=@7$T>?(ZX_jN%FRtigsxF&qk&^;!|7Cy<0fBC*cF%0^prez(o=vrB zV8GmkAa7mWQ5(qocjp1Mq1=10Uk{~~o3!)N$3z6dI2`F9a2!@akUwweGT=eLcb|{H zx+JYe@?UR~zec&+bP|QB34+&!?Z(Tqfom9!hPtX%YSo)hQnHPqCQNayCh?#v`vkz@EFI(JPLF(fr{MDE`~)!7e_@nf#P> Qc_+$V4Y5-5>Z)G&3&)#00{{R3 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_using_api.cpython-33.pyc b/tests/__pycache__/test_using_api.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3f69e5cbd362f6967518769d73ac8629e85d83d GIT binary patch literal 2446 zcmcIl|8Lt=5Wi<9X_{rM;)e+Y8dfHdONUb`)E}y8jFo60rhuC4mrP(e_BC~}ef`5>^bDJ-tQ(+U1eL26o_ujqxeD3^b`(`WKI~qQ$0mQI!(K|e(N1u~O z07fJgBo1T>Mx@Z~Lgqm3!pMcZ2BR9}br{tlZ@{PlialzOZ9v|HQ4{h_7;Qq{f>8_9 z2%_6i}{Z?UM;a7#Kml0rjrwM;2mD7-rnx+{ug_@Uw-9{=bkyi)m@_eo~IGL zZ=Mdn`|)THRLf*(j8lyV-lM^{mHo;0hrRxwClMuRqBPS%E2XfZ?{iLVodt(#o1~5B zld`ZgZP{i{Qf*tL9N`4dp5PglzRT_n5(886B=#HPnXwzB{DAY{i!zB7>3s1&=jjnW zdPd>}Ko1E#!h)m&sl&*j3s~c<5`^bU9g|W6tTPfzQ=Lr}HtayA4IpLW0>QLTIAK%X zY3Vxb6Sm1Fp~TT!4q-^R$O$Z;;BN4_99)~opoE@IpGR4m*c)W^JKKJ+^Yu3U%TaZ8 zRL<11UphbU$f3)kFxH`=V5eVg!}$xtX_R9aO4`COFA|&aYg=r;*(kfPFVnur^jiL} zNwLIbieCwBpR;_iUsl9Xro+&uArN7AN$Z{zId&)GvYX&@%(}A+wswWBB17Ro7|qgP zHeb)!Em}dpM`BC4j;r2RuDYYP+;yil%sDNB`8`rz$Gj@rSA;)7M|X`YjH;Dj8~A)| z%X>X#N)8wvMsBe>gU3FH^yrX;kv>2~Fa*5A3^2l@wGr~E2|4QUQh{;7)ZiT8l&YR- z#rI2x13hiP3sPvrp^iZ$mw@_~Qyhux2!F-iG^CuqV7RN-NyHI}Bwtf}gbsiHAEmQuyD8O8<^3Cp}I;#?@qhHxC|H2#D)Vm^ZU zNPR#*`yuJ;m;_7r1w0HqLnQEcq%6RuymNkO6H-?4%ijH%#Ny(S0X_OQ34)gP;KXp*otf4msZ7O_}9&Cv6+xb zs4ZlX1^_p6W81J*So*KpcSM}6$vzV$bccsGFn literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_util.cpython-33.pyc b/tests/__pycache__/test_util.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0660cca7f215911da09450a3ce318d0be3a9a293 GIT binary patch literal 9055 zcmdT~TW=f36`mz^H*G79Enm~D<+Pxan6#8M4~8nYmSv}bLmQTirh?nWk~<<-CU=?L z9aRGCB8dCaxAwj0pD56m2FNcd(8s63{#rRb z_xB(FcJrSXg=mR^&jjF~;|Xmvju2aD4dIkT*AQC(G+Yu}C5FqQTNb?uu{9x#ht7m> zCdD5xV^YXT@wzOwro=;MN;uQpJ1t~M>`XIahG=e7XRwO;2bwt(pG_G?W~kgqn%jP0 zMjdIY$nBav-%(x3LwCrx z7lmdd?cT>`D5d#}XPcite!5Z9WV&ukdZD~y-rKmZ@sEDFw%*uSXYL#s*={$i&ADJ- zG^z$|g~UfJx9Asr=(~jH9-gp{=A{tp5^{wg(P}A{NIY9*At%HRL{}ECA?&hn%8(FK zoW;Zk_6zw)?#WWPa!x_-;+=Adqat>#PVK~aHaON0B=PBV-7>2K$7S0)l zG2pCl<{6$7&O5?6$1n!JE1dHTSA=sxI13D8;zi+HV)%@3E(_-h!ys~1IM*1S7tVVy znIB;TtfyyCGr3~A&oVHiMK-hmCXIdW2=U5bz!0xW;$=xhaPG2zH&Bq6BQK}6B#a`i zbN~*vKX%>(<4$Rs2Cp}jTeU63>q)FP3Wu1)IL+sD!l&j1E%7-xFBvh4W`ctb2WZY@ zG}{KVS`q|g5=cjI420I9@Ainb({aFIKaPNQ$VnQC!inut%Z?ERN-FX`&sU_RZC`&k z?SOwTnaez7iQDDP2URj;b~rl>We`2J-B5<=6nb^XI=NxybhK()Mpo1JyO!UN7_&*M zQdD^WkCQz4aX)f>Z#@Y7fPd2**Nb>cLZj=3+)*V?nNTRZ+lmY;&}OLAyQLq2VrhHn7O{y(sE^U)Wtp;PCG6E! zbj)6@Z7&^V$4@{r$9hUK*PD?4U+;eT6Y%#|yI)r4Fg4vxsz2>0V|_C>DV1u$yR>3B zMr}MKnNrR!VJa#v4R^B|4&So?}L+Z zvZVYYZEp=jI1Y*lm>KEqP0D5xx=DNt_TW zyLk*#RRg{Ogvk6^lBAhKL=<;fl+_?e(Mid~MNH;^qGgcrR{~Nw1PfRjbuzpc8(SAP` z%vZoB>GQ@xg2|@j$`Jo!|~eYk$$+n%r^o3_`sdUn+6R z!nlmTv&I}frTE)WRQ%;VwLoCBDL%rq15GitpV6iWJLLK=WO{C%`89jO#bMaQa{;N;c z>h=4Z_sy?9-~95Cxm3GtZs1hfit6?C#^S0jHxE)e&KK;3Jbh| z075E>aLh4I$Il2GC``-QK$^uKfK0&#pia_gu9pKr(mP-l@mP)!HK3;H@b z@17XeqGFvsBsO|DJNz2}awO`0l*&8$8jzijN`F>@zT(`Oi0^VuLPjb^~1PdA?^gdwu3G;I>x< z@-1Iy5M4H-WCQ!?hy(wWaTP)TG;RzRjD^zs<#z$Im*g!gnK|0LTA-&-nYisujSRL$ z7lY_2kpiGg+@Qlu$fV)}J-T3Vu*9;s9P#xblpY%!Oex0DXopHWod`&%EjwbNI)0nK zckMu*0t(0~9TPGwQh39gH|P$|>mlWm0+91tMMaW5xS{KzhVWWi;gRaYAPO4Rp@OKe z25I$f7;zTzRfNi%mFFBodGykWl{d)uA8ElPR-ZGbptLK7qEa)jw!t~6>d4?pl50fd zTQu4!DHL#sAkR(S+d-dNhekYzYi$&F?W2s2pxGpq$9E3Hgao}yF zG?1y8Zw{d@7iJNnWx><5__fPu!8f_v&aPcK93D-= zg@gHV1xxpf;{=O{*}|I;cyi?K%D-TwK9xhdie5_}D%CuJMwR^T&ED#ccrl|6xK`%U zinlZFmQ)?##!#8ybBIdel0qGFJm<(!B$Aytxh7?Fq5jVhg`$uJ$1|ur8p=QXCY{lP z0g5Yp?mfup`IdRysJs$&$xNZ#vQFUjIh6p38S&NPHFV6ED(5TbDwCDz$}HN+%9+Xx z-V)5CJ(YXetlvyhId6 literal 0 HcmV?d00001 diff --git a/tests/test_cmdline.py b/tests/test_cmdline.py index 2e02ae5..038b96b 100644 --- a/tests/test_cmdline.py +++ b/tests/test_cmdline.py @@ -10,7 +10,9 @@ from __future__ import print_function import io +import os import sys +import tempfile import unittest from pygments import highlight @@ -111,3 +113,15 @@ class CmdLineTest(unittest.TestCase): self.assertEqual(o, output) self.assertEqual(e, "") self.assertEqual(c, 0) + + def test_outfile(self): + # test that output file works with and without encoding + fd, name = tempfile.mkstemp() + os.close(fd) + for opts in [['-fhtml', '-o', name, TESTFILE], + ['-flatex', '-o', name, TESTFILE], + ['-fhtml', '-o', name, '-O', 'encoding=utf-8', TESTFILE]]: + try: + self.assertEqual(run_cmdline(*opts)[0], 0) + finally: + os.unlink(name) diff --git a/tests/test_cmdline.pyc b/tests/test_cmdline.pyc index c0172c4302fc0caa2871fe775647fc7e8d274733..32f2763d66ca0e2368831428b7ce209fa3f74df4 100644 GIT binary patch delta 790 zcmYjOzi-n}5dQAjvGbawaZS?}f`SABnW8L+NL^5=N>z!W2p6@~fI<~JA*r1d*_A4k zDnpqN3$nz5_#==dMi#`v0u1c1vhoMOJ+}k4?%sXh-M#zqzF+ygSl9kkrapaqa=(Mq zPvi3z2=Uj~^_7W+(12&aC-`ie@XXxS5f%|icoL+11%y+GO7KdE%J9l3tbwqCXc}Ji z1oI6RJPUz^!3+W$$Am`$-Whna@J+k`yc+x>0uzHdbg2SgD)t!I@#f!u`=U`jeXDQK zPWoHFSK&yNG6i?jk=b(L2hokJW+p_-*~{V<(R%hvwuv^fl~RppE88wti5_OX$_Ju$ z)~GsS67an7tQuZeWRXEO*QRXusPJgG6OVdvU^;>jI-VDe%z=M{(dTvgKYZ%Lti>R&Eog1PJ_2ixq?J4G+6CJ2a zKOyR>+e$#xQxDY_qBFG_q>TFVy53@`CwHTL`5EslWi4&7Hnj