ó
    EñiÅ-  ã                   ót   • S r SSKJr  SSKJr  SSKJr  SS/r " S S5      r " S	 S\5      r	 " S
 S\	5      r
g)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                   ó6   • \ rS rSrS	S jrS rS rS rS rSr	g)
ÚEscapeSequenceé"   Nc                 ó@   • Xl         X l        X0l        X@l        XPl        g ©N)ÚfgÚbgÚboldÚ	underlineÚitalic)Úselfr   r   r   r   r   s         Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pygments/formatters/terminal256.pyÚ__init__ÚEscapeSequence.__init__#   s   € ØŒØŒØŒ	Ø"ŒØ�ó    c                 óR   • [        U5      (       a  SSR                  U5      -   S-   $ g)Nz[Ú;ÚmÚ )ÚlenÚjoin©r   Úattrss     r   ÚescapeÚEscapeSequence.escape*   s&   € Üˆu�:‰:Ø˜SŸX™X e›_Ñ,¨sÑ2Ð2Ør   c           	      ó   • / nU R                   bz  U R                   [        ;   aE  [        U R                   R                  SS5         nSU;   a  SU l        UR                  USS 5        O!UR                  SSS	U R                   -  45        U R                  b‚  U R                  [        ;   aM  [        U R                  R                  SS5         nUR                  [        [        USS 5      S
-   5      5        O!UR                  SSS	U R                  -  45        U R                  (       a  UR                  S5        U R                  (       a  UR                  S5        U R                  (       a  UR                  S5        U R                  U5      $ )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_stringÚ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           
      ó˜  • / nU R                   (       aX  UR                  SS[        U R                   S   5      [        U R                   S   5      [        U R                   S   5      45        U R                  (       aX  UR                  SS[        U R                  S   5      [        U R                  S   5      [        U R                  S   5      45        U R                  (       a  UR                  S5        U R                  (       a  UR                  S5        U R                  (       a  UR                  S	5        U R                  U5      $ )
Nr%   Ú2r   é   r#   r(   r)   r*   r+   )	r   r.   r/   r   r   r-   r   r   r   r   s     r   Útrue_color_stringÚ 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                 ó(  • / nU R                   b  UR                  S5        U R                  b  UR                  S5        U R                  (       d"  U R                  (       d  U R
                  (       a  UR                  S5        U R                  U5      $ )NÚ39Ú49Ú00)r   r-   r   r   r   r   r   r   s     r   Úreset_stringÚEscapeSequence.reset_stringW   sa   € ØˆØ�7‰7ÑØ�L‰L˜ÔØ�7‰7ÑØ�L‰L˜ÔØ�9�9˜ŸŸ¨$¯+¯+Ø�L‰L˜ÔØ�{‰{˜5Ó!Ð!r   )r   r   r   r   r   )NNFFF)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r2   r7   r=   Ú__static_attributes__© r   r   r	   r	   "   s   † ôòò
"ò4"õ"r   r	   c                   óX   • \ rS rSrSrSr/ SQr/ rS rS r	S r
S rS	 rS
 rS rS rSrg)r   éb   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                 ó  • [         R                  " U 40 UD6  / U l        0 U l        0 U l        SU;  U l        SU;  U l        SU;  U l        U R                  5         U R                  5         UR                  SS5      U l        SU l        g )NÚnoboldÚnounderlineÚnoitalicÚlinenosFr   )r   r   Úxterm_colorsÚ
best_matchÚstyle_stringÚuseboldÚuseunderlineÚ	useitalicÚ_build_color_tableÚ_setup_stylesÚgetrO   Ú_lineno)r   Úoptionss     r   r   ÚTerminal256Formatter.__init__‡   s‚   € Ü×Ò˜4Ñ+ 7Ò+àˆÔØˆŒØˆÔà wÑ.ˆŒØ)°Ñ8ˆÔØ#¨7Ñ2ˆŒà×ÑÔ!Ø×ÑÔà—{‘{ 9¨eÓ4ˆŒØˆ�r   c                 ój  • U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S	5        U R                   R                  S
5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        Sn[        S5       H;  nXS-  S-     nXS-  S-     nXS-     nU R                   R                  X4U45        M=     [        S5       H(  nSUS-  -   nU R                   R                  XfU45        M*     g )N)r   r   r   )éÍ   r   r   )r   r]   r   )r]   r]   r   )r   r   éî   )r]   r   r]   )r   r]   r]   )éå   r_   r_   )é   r`   r`   )éÿ   r   r   )r   ra   r   )ra   ra   r   )é\   rb   ra   )ra   r   ra   )r   ra   ra   )ra   ra   ra   )r   é_   é‡   é¯   é×   ra   éØ   é$   é   é   é   r'   )rP   r-   Úrange)r   Ú
valuerangeÚiÚrÚgÚbÚvs          r   rV   Ú'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Ø ™G q™=Ñ)ˆAØ ™F a™<Ñ(ˆAØ˜q™5Ñ!ˆAØ×Ñ×$Ñ$ a¨A YÖ/ñ	 ô �r–ˆAØ�A˜‘F‘
ˆAØ×Ñ×$Ñ$ a¨A YÖ/ò r   c                 ó®   • SnSn[        SS5       H@  nU R                  U   nXS   -
  nX'S   -
  n	X7S   -
  n
Xˆ-  X™-  -   Xª-  -   nX´:  d  M<  UnUnMB     U$ )Ni r   é   r6   r#   )rl   rP   )r   ro   rp   rq   ÚdistanceÚmatchrn   ÚvaluesÚrdÚgdÚbdÚds               r   Ú_closest_colorÚ#Terminal256Formatter._closest_color¼   sw   € ØˆØˆä�q˜#–ˆAØ×&Ñ& qÑ)ˆFà˜A‘Y‘ˆBØ˜A‘Y‘ˆBØ˜A‘Y‘ˆBØ‘˜™‘ ¡Ñ%ˆAà�|Ø�Ø’ñ ð ˆr   c                 ó2  • U R                   R                  US 5      nU[        ;   a  UnX R                   U'   UcK   [        [	        U5      S5      nUS-	  S-  nUS-	  S-  nUS-  nU R                  XEU5      nX R                   U'   U$ ! [
         a    Sn NEf = f)Né   r   ra   rk   )rQ   rX   r   r0   r/   Ú
ValueErrorr}   )r   ÚcolorÚindexÚrgbro   rp   rq   s          r   Ú_color_indexÚ!Terminal256Formatter._color_indexÍ   s«   € Ø—‘×#Ñ# E¨4Ó0ˆØ”JÓàˆEØ%*�O‰O˜EÑ"Ø‰=ðÜœ#˜e›* bÓ)�ð ˜‘˜dÑ"ˆAØ˜‘˜TÑ!ˆAØ�d‘
ˆAØ×'Ñ'¨¨aÓ0ˆEØ%*�O‰O˜EÑ"Øˆøô ó Ø’ðús   »B ÂBÂBc                 óš  • U R                    GH:  u  p[        5       nUS   (       a  U R                  US   5      Ul        O#US   (       a  U R                  US   5      Ul        US   (       a  U R                  US   5      Ul        O#US   (       a  U R                  US   5      Ul        U R
                  (       a  US   (       a  SUl        U R                  (       a  US   (       a  SUl        U R                  (       a  US   (       a  SUl
        UR                  5       UR                  5       4U R                  [        U5      '   GM=     g )	NÚ	ansicolorr‚   ÚbgansicolorÚbgcolorr   Tr   r   )Ústyler	   r…   r   r   rS   r   rT   r   rU   r   r2   r=   rR   r/   ©r   ÚttypeÚndefr   s       r   rW   Ú"Terminal256Formatter._setup_stylesà   s  € ØŸ:�:‰KˆEÜ#Ó%ˆ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                 ó¬   • U =R                   S-  sl         UR                  SU R                   S:g  =(       a    S=(       d    SU R                   4-  5        g )Nr6   z%s%04d: Ú
r   )rY   Úwrite)r   Úoutfiles     r   Ú_write_linenoÚ"Terminal256Formatter._write_linenoõ   s=   € Ø�Š˜Ñ�Ø�‰�j D§L¡L°AÑ$5×$>¸$×$DÀ"ÀdÇlÁlÐ#SÑSÕTr   c                 ó0   • [         R                  " XU5      $ r   )r   Úformat)r   Útokensourcer“   s      r   r—   ÚTerminal256Formatter.formatù   s   € Ü×Ò °7Ó;Ð;r   c                 ó®  • U R                   (       a  U R                  U5        U Hî  u  p4SnU(       aÆ  U(       a¿   U R                  [        U5         u  pgUR	                  S5      nUS S  HU  n	U	(       a  UR                  Xi-   U-   5        U R                   (       a  U R                  U5        MD  UR                  S5        MW     US   (       a  UR                  XhS   -   U-   5        SnU(       a	  U(       a  M¿  U(       d  MÝ  UR                  U5        Mð     U R                   (       a  UR                  S5        g g ! [         a    UR                  n Njf = f)NTr‘   éÿÿÿÿF)rO   r”   rR   r/   Úsplitr’   ÚKeyErrorÚparent)
r   r˜   r“   r�   ÚvalueÚ	not_foundÚonÚoffÚsplÚlines
             r   Úformat_unencodedÚ%Terminal256Formatter.format_unencodedü   s  € Ø�<�<Ø×Ñ˜wÔ'ã'‰LˆEØˆIÞžIð)à"×/Ñ/´°E³
Ñ;‘G�Bð  Ÿ+™+ dÓ+�CØ # C R£˜ÞØ#ŸM™M¨"©)°c©/Ô:ØŸ<Ÿ<Ø ×.Ñ.¨wÖ7à#ŸM™M¨$Ö/ñ !)ð ˜2—wØŸ™ b¨r©7¡l°SÑ&8Ô9à %�Iö' ŸI˜I÷6 ˆyØ—‘˜eÖ$ñ= (ð@ �<�<Ø�M‰M˜$Õð øô  ó )à!ŸL™L’Eð)ús   »B.D;Ä;EÅE)rY   rQ   rO   rR   rS   rU   rT   rP   N)r?   r@   rA   rB   Ú__doc__ÚnameÚaliasesÚ	filenamesr   rV   r}   r…   rW   r”   r—   r¥   rC   rD   r   r   r   r   b   sD   † ñð@ €DÚ2€GØ€Iòò""0òHò"ò&Dò*Uò<õ% r   c                   ó:   • \ rS rSrSrSr/ SQr/ rS rS r	S r
Srg	)
r   i%  aY  
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                 ó   • g r   rD   )r   s    r   rV   Ú-TerminalTrueColorFormatter._build_color_table7  s   € Ør   c                 ó€   •  [        [        U5      S5      nUS-	  S-  nUS-	  S-  nUS-  nX4U4$ ! [         a     g f = f)Nr€   ra   rk   )r0   r/   r�   )r   r‚   r„   ro   rp   rq   s         r   Ú_color_tupleÚ'TerminalTrueColorFormatter._color_tuple:  s\   € ð	Ü”c˜%“j "Ó%ˆCð �B‰Y˜$ÑˆØ�A‰X˜ÑˆØ�$‰JˆØ�aˆyÐøô ó 	Ùð	ús   ‚0 °
=¼=c                 ó  • U R                    Hñ  u  p[        5       nUS   (       a  U R                  US   5      Ul        US   (       a  U R                  US   5      Ul        U R
                  (       a  US   (       a  SUl        U R                  (       a  US   (       a  SUl        U R                  (       a  US   (       a  SUl
        UR                  5       UR                  5       4U R                  [        U5      '   Mó     g )Nr‚   rŠ   r   Tr   r   )r‹   r	   r³   r   r   rS   r   rT   r   rU   r   r7   r=   rR   r/   rŒ   s       r   rW   Ú(TerminalTrueColorFormatter._setup_stylesD  sÃ   € ØŸ:œ:‰KˆEÜ#Ó%ˆFØ�G�}Ø ×-Ñ-¨d°7©mÓ<�”	Ø�I�Ø ×-Ñ-¨d°9©oÓ>�”	Ø�|�|  V§Ø"�”Ø× ×  T¨+×%6Ø#'�Ô Ø�~�~ $ x§.Ø $�”Ø-3×-EÑ-EÓ-GØ-3×-@Ñ-@Ó-Bð-DˆD×Ñœc %›jÓ)ò &r   rD   N)r?   r@   rA   rB   r§   r¨   r©   rª   rV   r³   rW   rC   rD   r   r   r   r   %  s(   † ñð €DÚ2€GØ€IòòõDr   N)r§   Úpygments.formatterr   Úpygments.consoler   Úpygments.styler   Ú__all__r	   r   r   rD   r   r   Ú<module>r»      sK   ðñõ2 )Ý "Ý %ð "Ð#?Ð
@€÷="ñ ="ô@ ˜9ô  ôF-DÐ!5õ -Dr   