+
    j,i`&                       ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t
 ^RIHt RR.t ! R	 R4      t]P                  ! 4        U Uu/ uF  w  rWbK	  	  upp t]P                  ! 4        U Uu/ uF  w  rWbK	  	  upp t/ t	]! ]
P&                  4       F  w  tw  tttR
]R ]R ]R 2]	]&   K  	  R R lt ! R R]4      t]! 4       tR# u upp i u upp i )    )annotations)	Formatter)	Generator)BG_ANSI_COLORSFG_ANSI_COLORS)_256_colors)StyleAndTextTuplesANSIansi_escapec                  z    ] tR t^tRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltR R ltRtR# )r
   a  
ANSI formatted text.
Take something ANSI escaped text, for use as a formatted string. E.g.

::

    ANSI('\x1b[31mhello \x1b[32mworld')

Characters between ``\001`` and ``\002`` are supposed to have a zero width
when printed, but these are literally sent to the terminal output. This can
be used for instance, for inserting Final Term prompt commands.  They will
be translated into a prompt_toolkit '[ZeroWidthEscape]' fragment.
c                    V ^8  d   QhRRRR/# )   valuestrreturnNone )formats   "D/usr/lib/python3/dist-packages/prompt_toolkit/formatted_text/ansi.py__annotate__ANSI.__annotate__    s      c d     c                	"   Wn         . V n        R V n        R V n        RV n        RV n        RV n        RV n        RV n        RV n	        RV n
        RV n        V P                  4       pVP                  R 4       V F  pVP                  V4       K  	  R # )NF)r   _formatted_text_color_bgcolor_bold_dim
_underline_strike_italic_blink_reverse_hidden_parse_corotsend)selfr   parsercs   &&  r   __init__ANSI.__init__    s    
35 #'$(
	 ""$DAKKN r   c                   V ^8  d   QhRR/# )r   r   zGenerator[None, str, None]r   )r   s   "r   r   r   6   s     S2 S28 S2r   c              #    "   RpV P                   p RpRx pVR8X  d7   RpVR8w  d.   Rx pVR8X  d   VP                  RV34       Rx pM
WT,          pK4  VR8X  d   Rx pVR	8X  d   RpMK[  VR
8X  d   RpV'       d   Rp. p Rx p	V	P                  4       '       d   Wy,          pK%  TP                  \        \	        T;'       g    ^ 4      R4      4       V	R8X  d   RpK^  V	R8X  d$   V P                  V4       V P                  4       pK  V	R8X  d0   \        V^ ,          4       F  p
VP                  VR34       K  	  EK.  EK1  VP                  W34       EKF  5i)z2
Coroutine that parses the ANSI escape sequences.
 TFNz[ZeroWidthEscape][   i'  ;mC )r   appendisdigitminint_select_graphic_rendition_create_style_stringrange)r'   styleformatted_textcsir)   escaped_textsquare_bracketcurrentparamscharis   &          r   r%   ANSI._parse_corot6   s^     -- CA F{!6kAF{&--/BL.QR!$) F{!&!S(Cf D ||~~
 c#gll*;T&BC  3;&(G "S[ ::6B$($=$=$?E! "S[%*6!9%5 . 5 5ucl C &6 " " %%uj1s   A:E=E'EBEc                    V ^8  d   QhRRRR/# )r   attrsz	list[int]r   r   r   )r   s   "r   r   r      s     V6 V6y V6T V6r   c                   V'       g   ^ .pM\        VRRR1,          4      pV'       Ed   VP                  4       pV\        9   d   \        V,          V n        K8  V\        9   d   \        V,          V n        KW  V^8X  d
   RV n        Kg  V^8X  d
   RV n        Kw  V^8X  d
   RV n        K  V^8X  d
   RV n	        K  V^8X  d
   RV n
        K  V^8X  d
   RV n
        K  V^8X  d
   RV n        K  V^8X  d
   RV n        K  V^	8X  d
   RV n        K  V^8X  d   RV n        RV n        K  V^8X  d   RV n        EK  V^8X  d   RV n	        EK   V^8X  d   RV n
        EK1  V^8X  d   RV n        EKB  V^8X  d   RV n        EKS  V^8X  d   RV n        EKd  V'       gJ   RV n        RV n        RV n        RV n        RV n	        RV n        RV n        RV n
        RV n        RV n        EK  VR9   g   EK  \        V4      ^8  g   EK  VP                  4       pV^8X  dt   \        V4      ^8  dd   V^&8X  d,   VP                  4       p\        P!                  V4      V n        M1V^08X  d+   VP                  4       p\        P!                  V4      V n        V^8X  g   EKf  \        V4      ^8  g   EKy   RVP                  4       R VP                  4       R VP                  4       R 2pV^&8X  d
   WPn        EK  V^08X  d
   WPn        EK  EK  R#   \"         d     EK  i ; i)z8
Taken a list of graphics attributes and apply changes.
NTF#02x)&   0   )listpop
_fg_colorsr   
_bg_colorsr   r   r   r!   r   r"   r#   r$   r    lenr   get
IndexError)r'   rJ   attrnr5   	color_strs   &&    r   r<   ANSI._select_graphic_rendition   s    CEtt%Ee99;Dz!(.# *4 0!
 	#"&"" $##"
!	$"'# %$$" $"
!	"'$$# %$!c%j1nIIK 6c%jAorz!IIK&1ooa&8!IIK(3(: 6c%jAo
6		C0S0A%))+cARS "  2:*3K!RZ,5M (Y N & s   6K7 7LLc                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r      s        c  r   c                   . pV P                   '       d   VP                  V P                   4       V P                  '       d#   VP                  RV P                  ,           4       V P                  '       d   VP                  R4       V P                  '       d   VP                  R4       V P
                  '       d   VP                  R4       V P                  '       d   VP                  R4       V P                  '       d   VP                  R4       V P                  '       d   VP                  R4       V P                  '       d   VP                  R4       V P                  '       d   VP                  R	4       R
P                  V4      # )zG
Turn current style flags into a string for usage in a formatted text.
zbg:bolddim	underlinestrikeitalicblinkreversehiddenr7   )r   r8   r   r   r   r   r    r!   r"   r#   r$   join)r'   results   & r   r=   ANSI._create_style_string   s     ;;;MM$++&===MM%$--/0:::MM&!999MM% ???MM+&<<<MM(#<<<MM(#;;;MM'"===MM)$<<<MM(#xxr   c                   V ^8  d   QhRR/# r]   r   )r   s   "r   r   r      s     ' '# 'r   c                	$    R V P                   : R2# )zANSI())r   r'   s   &r   __repr__ANSI.__repr__   s    tzznA&&r   c                   V ^8  d   QhRR/# )r   r   r	   r   )r   s   "r   r   r     s     $ $'9 $r   c                	    V P                   # N)r   rm   s   &r   __pt_formatted_text__ANSI.__pt_formatted_text__  s    ###r   c               $    V ^8  d   QhRRRRRR/# )r   argsr   kwargsr   r
   r   )r   s   "r   r   r     s&     A AC A3 A4 Ar   c                T    \        \        P                  V P                  W4      4      # )zn
Like `str.format`, but make sure that the arguments are properly
escaped. (No ANSI escapes can be injected.)
)r
   	FORMATTERvformatr   )r'   rv   rw   s   &*,r   r   ANSI.format  s     
 I%%djj$?@@r   c                    V ^8  d   QhRRRR/# )r   r   objectr   r
   r   )r   s   "r   r   r     s     ( (V ( (r   c                    \        V\        4      '       g   V3p\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p\        V P                  V,          4      # )z
ANSI('<b>%s</b>') % value
c              3  8   "   T F  p\        V4      x  K  	  R # 5irr   )r   ).0rG   s   & r   	<genexpr>ANSI.__mod__.<locals>.<genexpr>  s     4ek!nnes   )
isinstancetupler
   r   )r'   r   s   &&r   __mod__ANSI.__mod__  sJ     %''HE4e44e44DJJ&''r   )r   r"   r   r   r   r   r$   r!   r#   r    r   r   N)__name__
__module____qualname____firstlineno____doc__r*   r%   r<   r=   rn   rs   r   r   __static_attributes__r   r   r   r
   r
      s9    ,S2jV6p 8'$A( (r   rL   rM   c                    V ^8  d   QhRRRR/# )r   textr}   r   r   r   )r   s   "r   r   r   "  s     = =f = =r   c                X    \        V 4      P                  RR4      P                  RR4      # )z,
Replace characters with a special meaning.
r1   ?)r   replace)r   s   &r   r   r   "  s(     t9VS)11$<<r   c                  "    ] tR tRtR R ltRtR# )ANSIFormatteri)  c               $    V ^8  d   QhRRRRRR/# )r   r   r}   format_specr   r   r   )r   s   "r   r   ANSIFormatter.__annotate__*  s!     7 7& 7s 7s 7r   c                	*    \        \        W4      4      # rr   )r   r   )r'   r   r   s   &&&r   format_fieldANSIFormatter.format_field*  s    6%566r   r   N)r   r   r   r   r   r   r   r   r   r   r   )  s    7 7r   r   N)
__future__r   stringr   typingr   prompt_toolkit.output.vt100r   r   r   _256_colors_tablebaser	   __all__r
   itemsrS   rT   	enumeratecolorsrG   rgbr   r   ry   )kvs   00r   <module>r      s    "   F H $ C( C(N  .33565tqad56
-33565tqad56
 /667LAy1a3#wqg.KN 8=7I 7
 O	- 76s   	C
.C