Ë
    !täiÅ-  ã                   ót   — d Z ddlmZ ddlmZ ddlmZ ddgZ G d„ d«      Z G d	„ de«      Z	 G d
„ de	«      Z
y)aÂ  
    pygments.formatters.terminal256
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Formatter for 256-color terminal output with ANSI sequences.

    RGB-to-XTERM color conversion routines adapted from xterm256-conv
    tool (http://frexx.de/xterm-256-notes/data/xterm256-conv2.tar.bz2)
    by Wolfgang Frisch.

    Formatter version 1.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú	Formatter)Úcodes)Ú
ansicolorsÚTerminal256FormatterÚTerminalTrueColorFormatterc                   ó,   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zy)ÚEscapeSequenceNc                 óJ   — || _         || _        || _        || _        || _        y ©N)ÚfgÚbgÚboldÚ	underlineÚitalic)Úselfr   r   r   r   r   s         ún/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/formatters/terminal256.pyÚ__init__zEscapeSequence.__init__#   s%   € ØˆŒØˆŒØˆŒ	Ø"ˆŒØˆ�ó    c                 óH   — t        |«      rddj                  |«      z   dz   S y)Nz[Ú;ÚmÚ )ÚlenÚjoin©r   Úattrss     r   ÚescapezEscapeSequence.escape*   s$   € ÜˆuŒ:Ø˜SŸX™X e›_Ñ,¨sÑ2Ð2Ør   c           	      óò  — g }| j                   �v| j                   t        v rCt        | j                   j                  dd«         }d|v rd| _        |j                  |dd «       n!|j                  ddd	| j                   z  f«       | j                  �€| j                  t        v rMt        | j                  j                  dd«         }|j                  t        t        |dd «      d
z   «      «       n!|j                  ddd	| j                  z  f«       | j                  r|j                  d«       | j                  r|j                  d«       | j                  r|j                  d«       | j                  |«      S )NÚansir   z;01mTé   é   Ú38Ú5z%ié
   Ú48Ú01Ú04Ú03)r   r   r   Úreplacer   ÚappendÚextendr   ÚstrÚintr   r   r   )r   r   Úescs      r   Úcolor_stringzEscapeSequence.color_string/   s#  € ØˆØ�7‰7ÐØ�w‰wœ*Ñ$Ü˜DŸG™GŸO™O¨F°2Ó6Ñ7�Ø˜S‘=Ø $�D”Ià—‘˜S  1˜XÕ&à—‘˜d C¨°·±©Ð8Ô9Ø�7‰7ÐØ�w‰wœ*Ñ$Ü˜DŸG™GŸO™O¨F°2Ó6Ñ7�à—‘œS¤ S¨¨1 X£¨rÑ!1Ó2Õ3à—‘˜d C¨°·±©Ð8Ô9Ø�9Š9Ø�L‰L˜ÔØ�>Š>Ø�L‰L˜ÔØ�;Š;Ø�L‰L˜ÔØ�{‰{˜5Ó!Ð!r   c           
      óf  — g }| j                   rX|j                  ddt        | j                   d   «      t        | j                   d   «      t        | j                   d   «      f«       | j                  rX|j                  ddt        | j                  d   «      t        | j                  d   «      t        | j                  d   «      f«       | j                  r|j                  d«       | j                  r|j                  d«       | j                  r|j                  d	«       | j                  |«      S )
Nr"   Ú2r   é   r    r%   r&   r'   r(   )	r   r+   r,   r   r   r*   r   r   r   r   s     r   Útrue_color_stringz EscapeSequence.true_color_stringI   sÕ   € ØˆØ�7Š7Ø�L‰L˜$ ¤S¨¯©°©£_´c¸$¿'¹'À!¹*³oÄsÈ4Ï7É7ÐSTÉ:ÃÐWÔXØ�7Š7Ø�L‰L˜$ ¤S¨¯©°©£_´c¸$¿'¹'À!¹*³oÄsÈ4Ï7É7ÐSTÉ:ÃÐWÔXØ�9Š9Ø�L‰L˜ÔØ�>Š>Ø�L‰L˜ÔØ�;Š;Ø�L‰L˜ÔØ�{‰{˜5Ó!Ð!r   c                 ó  — g }| j                   �|j                  d«       | j                  �|j                  d«       | j                  s| j                  s| j
                  r|j                  d«       | j                  |«      S )NÚ39Ú49Ú00)r   r*   r   r   r   r   r   r   s     r   Úreset_stringzEscapeSequence.reset_stringW   sa   € ØˆØ�7‰7ÐØ�L‰L˜ÔØ�7‰7ÐØ�L‰L˜ÔØ�9Š9˜Ÿš¨$¯+ª+Ø�L‰L˜ÔØ�{‰{˜5Ó!Ð!r   )NNFFF)Ú__name__Ú
__module__Ú__qualname__r   r   r/   r3   r8   © r   r   r	   r	   "   s   „ óòò
"ò4"ó"r   r	   c                   óP   — e Zd ZdZdZg d¢Zg Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zy)r   aÛ  
    Format tokens with ANSI color sequences, for output in a 256-color
    terminal or console.  Like in `TerminalFormatter` color sequences
    are terminated at newlines, so that paging the output works correctly.

    The formatter takes colors from a style defined by the `style` option
    and converts them to nearest ANSI 256-color escape sequences. Bold and
    underline attributes from the style are preserved (and displayed).

    .. versionadded:: 0.9

    .. versionchanged:: 2.2
       If the used style defines foreground colors in the form ``#ansi*``, then
       `Terminal256Formatter` will map these to non extended foreground color.
       See :ref:`AnsiTerminalStyle` for more information.

    .. versionchanged:: 2.4
       The ANSI color names have been updated with names that are easier to
       understand and align with colornames of other projects and terminals.
       See :ref:`this table <new-ansi-color-names>` for more information.


    Options accepted:

    `style`
        The style to use, can be a string or a Style subclass (default:
        ``'default'``).

    `linenos`
        Set to ``True`` to have line numbers on the terminal output as well
        (default: ``False`` = no line numbers).
    ÚTerminal256)Úterminal256Ú
console256Ú256c                 ó  — t        j                  | fi |¤Ž g | _        i | _        i | _        d|v| _        d|v| _        d|v| _        | j                  «        | j                  «        |j                  dd«      | _        d| _        y )NÚnoboldÚnounderlineÚnoitalicÚlinenosFr   )r   r   Úxterm_colorsÚ
best_matchÚstyle_stringÚuseboldÚuseunderlineÚ	useitalicÚ_build_color_tableÚ_setup_stylesÚgetrF   Ú_lineno)r   Úoptionss     r   r   zTerminal256Formatter.__init__‡   s‚   € Ü×Ñ˜4Ñ+ 7Ò+àˆÔØˆŒØˆÔà wÐ.ˆŒØ)°Ð8ˆÔØ#¨7Ð2ˆŒà×ÑÔ!Ø×ÑÔà—{‘{ 9¨eÓ4ˆŒØˆ�r   c                 ól  — | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d	«       | j                   j                  d
«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       | j                   j                  d«       d}t        d«      D ]>  }||dz  dz     }||dz  dz     }||dz     }| j                   j                  |||f«       Œ@ t        d«      D ](  }d|dz  z   }| j                   j                  |||f«       Œ* y )N)r   r   r   )éÍ   r   r   )r   rS   r   )rS   rS   r   )r   r   éî   )rS   r   rS   )r   rS   rS   )éå   rU   rU   )é   rV   rV   )éÿ   r   r   )r   rW   r   )rW   rW   r   )é\   rX   rW   )rW   r   rW   )r   rW   rW   )rW   rW   rW   )r   é_   é‡   é¯   é×   rW   éØ   é$   é   é   é   r$   )rG   r*   Úrange)r   Ú
valuerangeÚiÚrÚgÚbÚvs          r   rM   z'Terminal256Formatter._build_color_table˜   sì  € ð 	×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4Ø×Ñ× Ñ Ð!3Ô4ð :ˆ
ä�s–ˆAØ˜A ™G q™=Ñ)ˆAØ˜A ™F a™<Ñ(ˆAØ˜1˜q™5Ñ!ˆAØ×Ñ×$Ñ$ a¨¨A YÕ/ð	 ô �r–ˆAØ�A˜‘F‘
ˆAØ×Ñ×$Ñ$ a¨¨A YÕ/ñ r   c                 ó´   — d}d}t        dd«      D ]D  }| j                  |   }||d   z
  }||d   z
  }	||d   z
  }
||z  |	|	z  z   |
|
z  z   }||k  sŒA|}|}ŒF |S )Ni r   é   r2   r    )rb   rG   )r   re   rf   rg   ÚdistanceÚmatchrd   ÚvaluesÚrdÚgdÚbdÚds               r   Ú_closest_colorz#Terminal256Formatter._closest_color¼   s…   € ØˆØˆä�q˜#–ˆAØ×&Ñ& qÑ)ˆFà�V˜A‘Y‘ˆBØ�V˜A‘Y‘ˆBØ�V˜A‘Y‘ˆBØ�2‘˜˜2™‘  2¡Ñ%ˆAà�8‹|Ø�Ø‘ð ð ˆr   c                 ó0  — | j                   j                  |d «      }|t        v r|}|| j                   |<   |€M	 t        t	        |«      d«      }|dz	  dz  }|dz	  dz  }|dz  }| j                  |||«      }|| j                   |<   |S # t
        $ r d}Y ŒFw xY w)Né   r   rW   ra   )rH   rO   r   r-   r,   Ú
ValueErrorrr   )r   ÚcolorÚindexÚrgbre   rf   rg   s          r   Ú_color_indexz!Terminal256Formatter._color_indexÍ   s±   € Ø—‘×#Ñ# E¨4Ó0ˆØ”JÑàˆEØ%*ˆD�O‰O˜EÑ"Øˆ=ðÜœ#˜e›* bÓ)�ð ˜‘˜dÑ"ˆAØ˜‘˜TÑ!ˆAØ�d‘
ˆAØ×'Ñ'¨¨1¨aÓ0ˆEØ%*ˆD�O‰O˜EÑ"Øˆøô ò Ø’ðús   ¹B ÂBÂBc                 ó4  — | j                   D �]  \  }}t        «       }|d   r| j                  |d   «      |_        n|d   r| j                  |d   «      |_        |d   r| j                  |d   «      |_        n|d   r| j                  |d   «      |_        | j
                  r|d   rd|_        | j                  r|d   rd|_        | j                  r|d   rd|_
        |j                  «       |j                  «       f| j                  t        |«      <   �Œ y )	NÚ	ansicolorrv   ÚbgansicolorÚbgcolorr   Tr   r   )Ústyler	   ry   r   r   rJ   r   rK   r   rL   r   r/   r8   rI   r,   ©r   ÚttypeÚndefr   s       r   rN   z"Terminal256Formatter._setup_stylesà   s  € ØŸ:�:‰KˆE�4Ü#Ó%ˆFà�KÒ Ø ×-Ñ-¨d°;Ñ.?Ó@�•	Ø�g’Ø ×-Ñ-¨d°7©mÓ<�”	Ø�MÒ"Ø ×-Ñ-¨d°=Ñ.AÓB�•	Ø�i’Ø ×-Ñ-¨d°9©oÓ>�”	Ø�|Š|  V¢Ø"�”Ø× Ò  T¨+Ò%6Ø#'�Ô Ø�~Š~ $ x¢.Ø $�”Ø-3×-@Ñ-@Ó-BØ-3×-@Ñ-@Ó-Bð-DˆD×Ñœc %›jÓ)ñ# &r   c                 ó˜   — | xj                   dz  c_         |j                  d| j                   dk7  xr dxs d| j                   fz  «       y )Nr2   z%s%04d: Ú
r   )rP   Úwrite)r   Úoutfiles     r   Ú_write_linenoz"Terminal256Formatter._write_linenoõ   s=   € Ø�Š˜Ñ�Ø�‰�j D§L¡L°AÑ$5Ò$>¸$Ò$DÀ"ÀdÇlÁlÐ#SÑSÕTr   c                 ó0   — t        j                  | ||«      S r   )r   Úformat)r   Útokensourcer…   s      r   rˆ   zTerminal256Formatter.formatù   s   € Ü×Ñ  k°7Ó;Ð;r   c                 óB  — | j                   r| j                  |«       |D ]Ä  \  }}d}|r§|r¥	 | j                  t        |«         \  }}|j	                  d«      }|d d D ]J  }	|	r|j                  ||	z   |z   «       | j                   r| j                  |«       Œ:|j                  d«       ŒL |d   r|j                  ||d   z   |z   «       d}|r|rŒ¥|sŒ´|j                  |«       ŒÆ | j                   r|j                  d«       y y # t        $ r |j                  }Y ŒQw xY w)NTrƒ   éÿÿÿÿF)rF   r†   rI   r,   Úsplitr„   ÚKeyErrorÚparent)
r   r‰   r…   r€   ÚvalueÚ	not_foundÚonÚoffÚsplÚlines
             r   Úformat_unencodedz%Terminal256Formatter.format_unencodedü   s  € Ø�<Š<Ø×Ñ˜wÔ'ã'‰LˆE�5ØˆIÙ™Ið)à"×/Ñ/´°E³
Ñ;‘G�B˜ð  Ÿ+™+ dÓ+�CØ # C R£˜ÙØ#ŸM™M¨"¨t©)°c©/Ô:ØŸ<š<Ø ×.Ñ.¨wÕ7à#ŸM™M¨$Õ/ð !)ð ˜2’wØŸ™ b¨3¨r©7¡l°SÑ&8Ô9à %�Iñ' šIò6 Ø—‘˜eÕ$ð= (ð@ �<Š<Ø�M‰M˜$Õð øô  ò )à!ŸL™L’Eð)ús   ­BDÄDÄDN)r9   r:   r;   Ú__doc__ÚnameÚaliasesÚ	filenamesr   rM   rr   ry   rN   r†   rˆ   r•   r<   r   r   r   r   b   sD   „ ñð@ €DÚ2€GØ€Iòò""0òHò"ò&Dò*Uò<ó% r   c                   ó2   — e Zd ZdZdZg d¢Zg Zd„ Zd„ Zd„ Z	y)r   a}  
    Format tokens with ANSI color sequences, for output in a true-color
    terminal or console.  Like in `TerminalFormatter` color sequences
    are terminated at newlines, so that paging the output works correctly.

    .. versionadded:: 2.1

    Options accepted:

    `style`
        The style to use, can be a string or a Style subclass (default:
        ``'default'``).
    ÚTerminalTrueColor)Úterminal16mÚ
console16mÚ16mc                  ó   — y r   r<   )r   s    r   rM   z-TerminalTrueColorFormatter._build_color_table7  s   € Ør   c                 ó€   — 	 t        t        |«      d«      }|dz	  dz  }|dz	  dz  }|dz  }|||fS # t        $ r Y y w xY w)Nrt   rW   ra   )r-   r,   ru   )r   rv   rx   re   rf   rg   s         r   Ú_color_tuplez'TerminalTrueColorFormatter._color_tuple:  s^   € ð	Ü”c˜%“j "Ó%ˆCð �B‰Y˜$ÑˆØ�A‰X˜ÑˆØ�$‰JˆØ�1�aˆyÐøô ò 	Ùð	ús   ‚1 ±	=¼=c                 ó´  — | j                   D ]É  \  }}t        «       }|d   r| j                  |d   «      |_        |d   r| j                  |d   «      |_        | j
                  r|d   rd|_        | j                  r|d   rd|_        | j                  r|d   rd|_
        |j                  «       |j                  «       f| j                  t        |«      <   ŒË y )Nrv   r}   r   Tr   r   )r~   r	   r¡   r   r   rJ   r   rK   r   rL   r   r3   r8   rI   r,   r   s       r   rN   z(TerminalTrueColorFormatter._setup_stylesD  sÅ   € ØŸ:œ:‰KˆE�4Ü#Ó%ˆFØ�GŠ}Ø ×-Ñ-¨d°7©mÓ<�”	Ø�IŠØ ×-Ñ-¨d°9©oÓ>�”	Ø�|Š|  V¢Ø"�”Ø× Ò  T¨+Ò%6Ø#'�Ô Ø�~Š~ $ x¢.Ø $�”Ø-3×-EÑ-EÓ-GØ-3×-@Ñ-@Ó-Bð-DˆD×Ñœc %›jÒ)ñ &r   N)
r9   r:   r;   r–   r—   r˜   r™   rM   r¡   rN   r<   r   r   r   r   %  s(   „ ñð €DÚ2€GØ€IòòóDr   N)r–   Úpygments.formatterr   Úpygments.consoler   Úpygments.styler   Ú__all__r	   r   r   r<   r   r   Ú<module>r§      sK   ðñõ2 )Ý "Ý %ð "Ð#?Ð
@€÷="ñ ="ô@ ˜9ô  ôF-DÐ!5õ -Dr   