Ë
    !täi}  ã                   óŠ   — d Z ddlmZ ddlmZ ddlmZ ddlmZ g d¢Z	 G d„ de«      Z
 G d	„ d
e«      ZdZdZ G d„ de«      Zy)zí
    pygments.formatters.other
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Other formatters: NullFormatter, RawTokenFormatter.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú	Formatter)Úget_choice_opt)ÚToken)Úcolorize)ÚNullFormatterÚRawTokenFormatterÚTestcaseFormatterc                   ó(   — e Zd ZdZdZddgZdgZd„ Zy)r   z;
    Output the text unchanged without any formatting.
    z	Text onlyÚtextÚnullz*.txtc                 ó˜   — | j                   }|D ]9  \  }}|r!|j                  |j                  |«      «       Œ)|j                  |«       Œ; y ©N)ÚencodingÚwriteÚencode)ÚselfÚtokensourceÚoutfileÚencÚttypeÚvalues         úh/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/formatters/other.pyÚformatzNullFormatter.format   s=   € Ø�m‰mˆÛ'‰LˆE�5ÙØ—‘˜eŸl™l¨3Ó/Õ0à—‘˜eÕ$ñ	 (ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesr   © r   r   r   r      s$   „ ñð €DØ�vÐ€GØ�	€Ió%r   r   c                   ó2   — e Zd ZdZdZddgZdgZdZd„ Zd„ Z	y	)
r   a}  
    Format tokens as a raw representation for storing token streams.

    The format is ``tokentype<TAB>repr(tokenstring)\n``. The output can later
    be converted to a token stream with the `RawTokenLexer`, described in the
    :doc:`lexer list <lexers>`.

    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 tokensÚrawÚtokensz*.rawFc                 óT  — t        j                  | fi |¤Ž d| _        t        |dg d¢d«      | _        |j                  dd «      | _        | j                  du rd| _        | j                  �	 t        | j                  d«       y y # t        $ r t        d| j                  ›d	�«      ‚w xY w)
NÚasciiÚcompress)Ú ÚnoneÚgzÚbz2r)   Úerror_colorTÚredzInvalid color z
 specified)
r   Ú__init__r   r   r(   Úgetr-   r   ÚKeyErrorÚ
ValueError©r   Úoptionss     r   r/   zRawTokenFormatter.__init__>   s²   € Ü×Ñ˜4Ñ+ 7Ò+ð  ˆŒÜ& w°
Ú'@À"óFˆŒà"Ÿ;™; }°dÓ;ˆÔØ×Ñ˜tÑ#Ø$ˆDÔØ×ÑÐ'ðRÜ˜×)Ñ)¨2Õ.ð (øô ò RÜ  >°$×2BÑ2BÐ1EÀZÐ!PÓQÐQðRús   Á,B Â#B'c                 óT  ‡‡
— 	 ‰j                  d«       | j                  dk(  r1dd l}|j	                  ddd‰«      Š‰j                   }‰j
                  }nI| j                  dk(  r"dd l}|j                  d«      Š
ˆ
ˆfd	„}ˆ
ˆfd
„}n‰j                   }‰j                  }| j                  rI|D ]C  \  }}d||fz  }	|t        j                  u r |t        | j                  |	«      «       Œ< ||	«       ŒE n|D ]  \  }} |d||fz  «       Œ  |«        y # t        $ r t        d«      ‚w xY w)Nr   z3The raw tokens formatter needs a binary output filer+   r   r)   Úwbé	   r,   c                 óF   •— ‰j                  ‰j                  | «      «       y r   )r   r(   )r   Ú
compressorr   s    €€r   r   z'RawTokenFormatter.format.<locals>.write_   s   ø€ Ø—‘˜j×1Ñ1°$Ó7Õ8r   c                  ód   •— ‰j                  ‰ j                  «       «       ‰j                  «        y r   )r   Úflush)r9   r   s   €€r   r;   z'RawTokenFormatter.format.<locals>.flushb   s!   ø€ Ø—‘˜j×.Ñ.Ó0Ô1Ø—‘•r   s   %r	%r
)r   Ú	TypeErrorr(   ÚgzipÚGzipFileÚcloser,   ÚBZ2Compressorr;   r-   r   ÚErrorr   )r   r   r   r=   r   r;   r,   r   r   Úliner9   s     `       @r   r   zRawTokenFormatter.formatO   s  ù€ ð	+Ø�M‰M˜#Ôð �=‰=˜DÒ ÛØ—m‘m B¨¨a°Ó9ˆGà—M‘MˆEØ—M‘M‰EØ�]‰]˜eÒ#ÛØ×*Ñ*¨1Ó-ˆJõ9ö ð —M‘MˆEØ—M‘MˆEà×ÒÛ +‘��uØ" e¨U ^Ñ3�ØœEŸK™KÑ'Ùœ( 4×#3Ñ#3°TÓ:Õ;á˜$•Kñ !,ó !,‘��uÙ�k U¨E NÑ2Õ3ð !,á�øôC ò 	+Üð *ó +ð +ð	+ús   „D ÄD'N)
r   r   r   r   r   r    r!   Úunicodeoutputr/   r   r"   r   r   r   r   $   s/   „ ñð& €DØ�hÐ€GØ�	€Ià€MòRó"$r   r   zG    def testNeedsName(lexer):
        fragment = %r
        tokens = [
zD        ]
        assert list(lexer.get_tokens(fragment)) == tokens
c                   ó&   — e Zd ZdZdZdgZd„ Zd„ Zy)r	   zU
    Format tokens as appropriate for a new testcase.

    .. versionadded:: 2.0
    ÚTestcaseÚtestcasec                 ó~   — t        j                  | fi |¤Ž | j                  �| j                  dk7  rt        d«      ‚y y )Núutf-8z*Only None and utf-8 are allowed encodings.)r   r/   r   r2   r3   s     r   r/   zTestcaseFormatter.__init__Š   s?   € Ü×Ñ˜4Ñ+ 7Ò+Ø�=‰=Ð$¨¯©¸'Ò)AÜÐIÓJÐJð *BÐ$r   c           	      ó  — d}g }g }|D ]0  \  }}|j                  |«       |j                  |› d|› d|›d�«       Œ2 t        dj                  |«      fz  }dj                  |«      }	t        }
| j                  €|j                  ||	z   |
z   «       n`|j                  |j                  d«      «       |j                  |	j                  d«      «       |j                  |
j                  d«      «       |j                  «        y )Nz            Ú(z, z),
r)   rH   )ÚappendÚTESTCASE_BEFOREÚjoinÚTESTCASE_AFTERr   r   r   r;   )r   r   r   ÚindentationÚrawbufÚoutbufr   r   ÚbeforeÚduringÚafters              r   r   zTestcaseFormatter.format�   sÚ   € ØˆØˆØˆÛ'‰LˆE�5Ø�M‰M˜%Ô Ø�M‰M˜[˜M¨¨5¨'°°E°9¸DÐAÕBð (ô ! B§G¡G¨F£OÐ#5Ñ5ˆØ—‘˜“ˆÜˆØ�=‰=Ð Ø�M‰M˜& 6™/¨EÑ1Õ2à�M‰M˜&Ÿ-™-¨Ó0Ô1Ø�M‰M˜&Ÿ-™-¨Ó0Ô1Ø�M‰M˜%Ÿ,™, wÓ/Ô0Ø�‰�r   N)r   r   r   r   r   r    r/   r   r"   r   r   r	   r	   �   s    „ ñð
 €DØˆl€GòKó
r   r	   N)r   Úpygments.formatterr   Úpygments.utilr   Úpygments.tokenr   Úpygments.consoler   Ú__all__r   r   rL   rN   r	   r"   r   r   Ú<module>rZ      sR   ðñõ )Ý (Ý  Ý %â
E€ô%�Iô %ô"O˜	ô Oðd€ð
€ô˜	õ r   