|edZddlmZddlmZddlmZddlmZgdZ GddeZ Gd d eZ d Z d Z Gd deZy)z pygments.formatters.other ~~~~~~~~~~~~~~~~~~~~~~~~~ Other formatters: NullFormatter, RawTokenFormatter. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. ) Formatter)get_choice_opt)Token)colorize) NullFormatterRawTokenFormatterTestcaseFormatterc(eZdZdZdZddgZdgZdZy)rz; Output the text unchanged without any formatting. z Text onlytextnullz*.txtc|j}|D]9\}}|r!|j|j|)|j|;yN)encodingwriteencode)self tokensourceoutfileencttypevalues ;/usr/lib/python3/dist-packages/pygments/formatters/other.pyformatzNullFormatter.formatsBmm' %LE5 ell3/0 e$  %N)__name__ __module__ __qualname____doc__namealiases filenamesrrrrrs$ DvG I%rrc2eZdZdZdZddgZdgZdZdZdZ y ) ra} Format tokens as a raw representation for storing token streams. The format is ``tokentyperepr(tokenstring)\n``. The output can later be converted to a token stream with the `RawTokenLexer`, described in the :doc:`lexer list `. Only two options are accepted: `compress` If set to ``'gz'`` or ``'bz2'``, compress the output with the given compression algorithm after encoding (default: ``''``). `error_color` If set to a color name, highlight error tokens using that color. If set but with no value, defaults to ``'red'``. .. versionadded:: 0.11 z Raw tokensrawtokensz*.rawFc Rtj|fi|d|_t|dgdd|_|j dd|_|j durd|_|j  t|j dyy#t$rtd|j zwxYw) Nasciicompress)nonegzbz2r) error_colorTredzInvalid color %r specified) r__init__rrr(getr-rKeyError ValueErrorroptionss rr/zRawTokenFormatter.__init__>s4+7+  &w '@"F ";;}d;   t #$D     ' 3))2. ( 3 !=!%!1!1"233 3s ,B"B&cT jd|jdk(r1ddl}|j dddj}j }nI|jdk(r"ddl}|jd fd } fd }nj}j}|jrI|D]C\}}d ||fz} |tjur|t|j| <|| En|D]\}}|d ||fz|y#t$r tdwxYw) Nrz3The raw tokens formatter needs a binary output filer+rr)wb r,cFjj|yr)rr()r compressorrs rrz'RawTokenFormatter.format..write`s j11$78rcdjjjyr)rflush)r9rsrr;z'RawTokenFormatter.format..flushcs! j..01 rs%r %r ) r TypeErrorr(gzipGzipFilecloser, BZ2Compressorr;r-rErrorr) rrrr=rr;r,rrliner9s ` @rrzRawTokenFormatter.formatPs) + MM#  ==D mmBa9GMMEMME ]]e # **1-J 9 MMEMME    + u"eU^3EKK'(4#3#3T:;$K  !, 4 ukUEN23 4 C +*+ + +s DD'N) rrrrrr r! unicodeoutputr/rr"rrrr$s.& DhG IM3$$rrzG def testNeedsName(lexer): fragment = %r tokens = [ zD ] assert list(lexer.get_tokens(fragment)) == tokens c&eZdZdZdZdgZdZdZy)r zU Format tokens as appropriate for a new testcase. .. versionadded:: 2.0 Testcasetestcasec ~tj|fi||j|jdk7r tdyy)Nutf-8z*Only None and utf-8 are allowed encodings.)rr/rr2r3s rr/zTestcaseFormatter.__init__s?4+7+ == $')AIJ J*B $rc d}g}g}|D]0\}}|j||j|d|d|d2tdj|fz}dj|} t} |j|j || z| zn`|j |j d|j | j d|j | j d|jy)Nz (z, z), r)rH)appendTESTCASE_BEFOREjoinTESTCASE_AFTERrrrr;) rrr indentationrawbufoutbufrrbeforeduringafters rrzTestcaseFormatter.formats ' ILE5 MM% MM[%G H I!BGGFO#55 == MM&6/E1 2 MM&--0 1 MM&--0 1 MM%,,w/ 0 rN)rrrrrr r/rr"rrr r s  DlGK rr N)rpygments.formatterr pygments.utilrpygments.tokenrpygments.consoler__all__rrrLrNr r"rrrZsR)( % E%I%"P Pf   r