
    q"h!                     t   S SK r S SKJr  S SKJr  S SKJrJrJrJ	r	J
r
JrJrJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  \ R0                  " S\ R2                  5      r\ R0                  " S5      r " S S\
5      r\	\   r\\/\4   r\\\/\4   r \ R0                  " S5      RB                  4S\S\ S\4S jjr"S\S\\\#\\   \\   4      4S jr$   S!S\S\\\4   S\%S\\   S\4
S jjr&\'S:X  aB  / SQr(S SK)J*r*  S SK+J,r,  \," SSSS 9r-\( H  r.\-R_                  \" \.5      \.5        M     \*" \-5        gg)"    N)literal_eval)
attrgetter)CallableIterableListMatch
NamedTupleOptionalTupleUnion   )_emoji_replace)EmojiVariant)MarkupError)Style)SpanTextz((\\*)\[([a-z#/@][^[]*?)])z^([\w.]*?)(\(.*?\))?$c                   ^    \ rS rSr% Sr\\S'    \\   \S'    S\4S jr\	S\4S j5       r
Srg	)
Tag   zA tag in console markup.name
parametersreturnc                 j    U R                   c  U R                  $ U R                   SU R                    3$ )N r   r   selfs    I/var/www/html/env/lib/python3.13/site-packages/pip/_vendor/rich/markup.py__str__Tag.__str__   s3    0DII	
9=1T__DU6V	
    c                 v    U R                   c  SU R                   S3$ SU R                   SU R                    S3$ )z*Get the string representation of this tag.[]=r   r   s    r   markup
Tag.markup!   sG    
 & 		{!	
 TYYKq 13	
r"    N)__name__
__module____qualname____firstlineno____doc__str__annotations__r
   r    propertyr'   __static_attributes__r)   r"   r   r   r      sA    "
I$3
 

 
 
 
r"   r   z(\\*)(\[[a-z#/@][^[]*?])r'   _escaper   c                     S[         [           S[        4S jnU" X 5      n U R                  S5      (       a  U R                  S5      (       d  U S-   $ U $ )zEscapes text so that it won't be interpreted as markup.

Args:
    markup (str): Content to be inserted in to markup.

Returns:
    str: Markup with square brackets escaped.
matchr   c                 8    U R                  5       u  pU U SU 3$ )z!Called by re.sub replace matches.\)groups)r5   backslashestexts      r   escape_backslashes"escape.<locals>.escape_backslashes=   s%    !LLN{m2dV44r"   r7   z\\)r   r/   endswith)r'   r3   r;   s      r   escaper>   0   sR    5%* 5 5
 '0FtV__V%<%<}Mr"   c              #     #    Sn[         n[        n[        R                  U 5       H  nUR	                  5       u  pVnUR                  5       u  pX:  a  XX S4v   U(       aI  U" [        U5      S5      u  pU
(       a  USU
-  S4v   XS-  -  nU(       a  X[        U5      S S4v   U	nM  UR                  S5      u  pnUSU" X(       a  UOS5      4v   U	nM     U[        U 5      :  a
  XUS S4v   gg7f)zParse markup in to an iterable of tuples of (position, text, tag).

Args:
    markup (str): A string containing console markup

r   N   r7   r&   )divmodr   RE_TAGSfinditerr8   spanlen	partition)r'   position_divmod_Tagr5   	full_textescapestag_textstartendr9   escapedr:   equalsr   s                  r   _parserQ   I   s     HGD!!&)',||~$	HZZ\
/55#*3w<#; KTK/55q(s7|~6<<#+#5#5c#: jT4FjEEE% *& #f+xy)4// s   C3C5styleemojiemoji_variantc                 T  ^^ [         nSU ;  a  [        U(       a	  U" XS9US9$ U US9$ [        US9nUR                  n[        R                  n/ mTR
                  m/ nUR                  n	[        n
[        nS[        S[        [        [        4   4UU4S jjn[        U 5       GH  u  pnUb+  UR                  SS5      nU" U(       a  U" U5      OU5        M5  Uc  M:  UR                  R                  S	5      (       GaI  UR                  S
S R                  5       nU(       a  U" U5      n U" U5      u  nnO T" 5       u  nnUR                  R                  S5      (       a  UR(                  (       a~  SnUR(                  R                  5       n[*        R-                  U5      nUb  UR/                  5       u  nnUc  SOUn [1        U5      nU(       a  U[9        U[:        5      (       a  UOU44nOSnU	" U
" U[=        U5      [        UR                  U0S95      5        GM  U	" U
" U[=        U5      [        U5      5      5        GM  U" U" UR                  5      UR(                  5      nTR                  [=        U5      U45        GM     [=        U5      nT(       a>  TR                  5       u  nn[        U5      nU(       a  U	" U
" UUU5      5        T(       a  M>  [?        USSS2   [A        S5      S9Ul!        U$ ! [          a    [#        SUR$                   SU S35      Sef = f! [&         a    [#        SU S35      Sef = f! [2         a/  n[#        SU< SUR(                  < SUR4                   35      eSnAf[6         a"  n[#        SUR(                  < SU 35      SeSnAff = f)a  Render console markup in to a Text instance.

Args:
    markup (str): A string containing console markup.
    style: (Union[str, Style]): The style to use.
    emoji (bool, optional): Also render emoji code. Defaults to True.
    emoji_variant (str, optional): Optional emoji variant, either "text" or "emoji". Defaults to None.


Raises:
    MarkupError: If there is a syntax error in the markup.

Returns:
    Text: A test instance.
r$   )default_variant)rR   
style_namer   c                    > [        [        T5      S5       H#  u  nu  p#UR                  U :X  d  M  T" U* 5      s  $    [        U 5      e)z"Pop tag matching given style name.r   )	enumeratereversedr   KeyError)rW   index_tagpopstyle_stacks       r   	pop_stylerender.<locals>.pop_style   sE    (+)>BOE8Axx:%E6{"  C z""r"   Nz\[/r   zclosing tag 'z' at position z doesn't match any open tagzclosing tag '[/]' at position z has nothing to close@ z()zerror parsing z in z; r)   )metarM   )key)"r   r   appendr   	normalizer_   r   r   r/   r   intrQ   replacer   
startswithstripr[   r   r'   
IndexErrorr   
RE_HANDLERr5   r8   r   SyntaxErrormsg	Exception
isinstancetuplerE   sortedr   spans)r'   rR   rS   rT   emoji_replacer:   ri   rj   rw   append_span_SpanrI   ra   rG   
plain_textr^   rW   rM   open_taghandler_namer   handler_matchmatch_parametersmeta_paramserrornormalized_tagtext_lengthr_   r`   s                              @@r   renderr   j   s   * #M
&DIM&@
 	
OU
 	
 eD[[FI)+K
//CE,,KED#c #eCHo # # &,F^!c!#++E37J=,:F_xx""3'' XXab\//1
!*:!6J$*3J*?x$*-%x ==++C00**')%-%8%8%>%>%@
(2(8(8(D(4=J=Q=Q=S:L*:(8(@FV '	(*6z*BK ( ,#-k5#A#A !,&1^	+K ')!3t9e(--9U.V  eSYH FG "&i&93>>!J""CI~#>?I &4L d)K
 __&
sCe[%89	 + ddG)<=DJKC $ $)+CJJ<~hZOjk#$$ & $)<XJF[\#$$$  + "-"0d8CVCVBYY[\a\e\e[f g#   ) ("-"01D1D0Gr% Q##'((s<   +K;8
L&M;(L#&M
N'*M88N'N""N'__main__)z[red]Hello World[/red]z[magenta]Hello [b]World[/b]z9[bold]Bold[italic] bold and italic [/bold]italic[/italic]zDClick [link=https://www.willmcgugan.com]here[/link] to visit my Blogz+:warning-emoji: [bold red blink] DANGER![/])print)TableMarkupResult)r   r   )padding)re   TN)0reastr   operatorr   typingr   r   r   r   r	   r
   r   r   r   rS   r   errorsr   rR   r   r:   r   r   compileVERBOSErB   rp   r   r/   _ReStringMatch_ReSubCallable_EscapeSubMethodsubr>   rk   rQ   boolr   r*   MARKUPpip._vendor.richr   pip._vendor.rich.tabler   gridr'   add_rowr)   r"   r   <module>r      s   	   V V V *    
**%JJ
 ZZ01

* 
. s>*C/0^S1367 
 !#

+F G K K 	203 08E#x}hsm*K$LM 0F  ",0	}}e} } L)	}
 
}@ zF ',8V4DT&\6*  
$K# r"   