\h jddlZddlmZddlmZddlmZmZmZm Z m Z m Z m Z m Z ddlmZddlmZddlmZdd lmZdd lmZmZej0d ej2Zej0d ZGd de Ze eZeegefZeeegefZ ej0djBfdede defdZ"dedee e#e ee effdZ$ d!dede eefde%de edef dZ&e'dk(rCgdZ(ddl)m*Z*ddl+m,Z,e,ddd Z-e(D]Z.e-j_ee.e.e*e-yy)"N) literal_eval) attrgetter)CallableIterableListMatch NamedTupleOptionalTupleUnion)_emoji_replace) EmojiVariant) MarkupError)Style)SpanTextz((\\*)\[([a-z#/@][^[]*?)])z^([\w.]*?)(\(.*?\))?$cReZdZUdZeed< eeed< defdZedefdZ y)TagzA tag in console markup.name parametersreturnch|j |jS|jd|jS)N rrselfs Z/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py__str__z Tag.__str__s30DII 9= 1T__DU6V ct|jd|jdSd|jd|jdS)z*Get the string representation of this tag.[]=rrs rmarkupz Tag.markup!sG & {!  TYYKq 13 r N) __name__ __module__ __qualname____doc__str__annotations__r rpropertyr%r rrrsA" I$ 3     r rz(\\*)(\[[a-z#/@][^[]*?])r%_escapercFdttdtfd}|||}|S)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. matchrc:|j\}}||d|S)z!Called by re.sub replace matches.\)groups)r0 backslashestexts rescape_backslashesz"escape..escape_backslashes=s'!LLN T{m2dV44r )rr*)r%r.r6s rescaper70s-5%*55 ' 0F Mr c#Kd}t}t}tj|D]}|j \}}}|j \}} ||kDr ||||df|rA|t |d\} } | r|d| zdf|| dzz }| r||t |ddf| }||jd\} } }|d|| | r|ndf| }|t |kr |||ddfyyw)zParse markup in to an iterable of tuples of (position, text, tag). Args: markup (str): A string containing console markup rNr2r$)divmodrRE_TAGSfinditerr3spanlen partition)r%position_divmod_Tagr0 full_textescapestag_textstartendr4escapedr5equalsrs r_parserJFs'HG D!!&)',||~$ 7HZZ\ s 8 /5 5 #*3w<#; KTK/55q(Ys7|~6<<#+#5#5c#: fjT4FjEEE%&#f+xy)4//sC%C'styleemoji emoji_variantc t}d|vrt|r||||S||St|}|j}tj}gj g}|j} t } t} dtdtttfffd } t|D]\} }}|%|jdd}||r||n|/|2|jjd r/|jd dj}|r||} | |\}}n \}}|jjdr|j(rrd}|j(j}t*j-|}||j/\}}|dn|} t1|}|r|t9|t:r|n|ff}nd}| | |t=|t|j|iY| | |t=|t|}| ||j|j(}jt=||ft=|}r3j \}}t|}|r| | |||r3t?|dddtAd|_!|S#t $rt#d |j$d | d dwxYw#t&$rt#d| ddwxYw#t2$r-}t#d|d|j(d|j4d}~wt6$r!}t#d|j(d|dd}~wwxYw)a9Render console markup in to a Text instance. Args: markup (str): A string containing console markup. emoji (bool, optional): Also render emoji code. Defaults to True. Raises: MarkupError: If there is a syntax error in the markup. Returns: Text: A test instance. r")default_variant)rK style_namercttdD]"\}\}}|j|k(s| cSt|)z"Pop tag matching given style name.r ) enumeratereversedrKeyError)rPindex_tagpop style_stacks r pop_stylezrender..pop_stylesK(+)>B #OE8Asxx:%E6{" #z""r Nz\[/r z closing tag 'z' at position z doesn't match any open tagzclosing tag '[/]' at position z has nothing to close@z()zerror parsing z in z; r-)metarF)key)"rrappendr normalizerXrrr*r intrJreplacer startswithstriprTrr% IndexErrorr RE_HANDLERr0r3r SyntaxErrormsg Exception isinstancetupler>sortedrspans)r%rKrLrM emoji_replacer5rarbro append_span_SpanrBrZr@ plain_textrWrPrFopen_tag handler_namer handler_matchmatch_parameters meta_paramserrornormalized_tag text_lengthrXrYs @@rrenderr|gs$#M &DIM&- @  OU   e D [[FI)+K //CE,,K E D#c#eCHo#&,F^D@!*c  !#++E37J =,: F _xx""3' XXab\//1 !*:!6J$*3J*?x $*-%x ==++C0**') %-%8%8%>%>%@ (2(8(8(D (4=J=Q=Q=S:L*:(8(@FV' (*6z*BK( ,#-k5#A!,&1^ +K') !3t9e(--9U.V  eSYH FG"&i&93>>!J""CI~#>?ID@Ld)K  __& sC  e[%8 9  dd G)<=DJ KC$$)+CJJ<~hZOjk#$$&$)rs VVV* "**%JJ  RZZ0 1  * .s>*C/0^S1367 !+ +F G K K   ,0308E#x}hsm*K$LM0F ",0 z z e z zL) z  zz zF', 8V 4D+ T&\6*+ $K%r