
    h                       % S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSK	r
SSKrSSKrSSK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JrJr  SSKJr  SSK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*  SSK+J,r,  SSK-J.r.  SSK/J0r0  SSK1J2r  SSK1J3r3J4r4J5r5  SSK6J7r7  \Rp                   " S S5      5       r9S%S jr:          S&S jr;\9" 5       r<\:" S5        S'S jr=\R|                  S(S j5       r? S)       S*S jjr@\Rp                  " SS9 " S S5      5       rA/ qBS\CS '    " S! S"\R                  \R                  5      rE " S# S$\R                  5      rGg)+a  Utilities and functions for helptext formatting. We replace argparse's simple help
messages with ones that:
    - Are more nicely formatted!
    - Support multiple columns when many fields are defined.
    - Use `rich` for formatting.
    - Can be themed with an accent color.

This is largely built by fussing around in argparse implementation details. It's
chaotic as a result; for stability we mirror argparse at _argparse.py.
    )annotationsN)gettext)
AnyDict	GeneratorIterableListNoReturnOptionalSetTuplecast)Columns)ConsoleGroupRenderableType)Padding)Panel)Rule)Style)Table)Text)Theme)override   )	_argparse)
_arguments_stringsconf)ParserSpecificationc                      \ rS rSr% \" 5       rS\S'   \" 5       rS\S'   \" 5       rS\S'   \" 5       r	S\S'   \" 5       r
S\S'   \" 5       rS\S'   \" 5       rS\S	'   \" 5       rS\S
'   SS jrSrg)	TyroTheme5   r   borderdescription
invocationmetavarmetavar_fixedhelptexthelptext_requiredhelptext_defaultc                *    [        [        U 5      5      $ N)r   varsselfs    R/home/james-whalen/.local/lib/python3.13/site-packages/tyro/_argparse_formatter.pyas_rich_themeTyroTheme.as_rich_theme@   s    T$Z       N)returnr   )__name__
__module____qualname____firstlineno__r   r$   __annotations__r%   r&   r'   r(   r)   r*   r+   r2   __static_attributes__r5   r4   r1   r"   r"   5   si    GFEK JWGU 7M5"gHe$wu&#ge%!r4   r"   c                @   [        U SS9[        l        [        U SS9[        l        [        5       [        l        [        U SS9[        l        [        SSS9[        l        [        SS9[        l        [        SSS9[        l        [        U S:w  a  SOSS	9[        l	        g
)zSet an accent color to use in help messages. Takes any color supported by ``rich``,
see ``python -m rich.color``. Experimental.T)colordim)r>   boldred)r?   
bright_redcyanmagentar>   N)
r   THEMEr$   r%   r&   r'   r(   r)   r*   r+   )accent_colors    r1   set_accent_colorrH   D   s{     |6ELLt<EwE48EMe$7Et_EN#,TBE"$.fIEr4   c                `   ^ ^^^^^ / mSmSm        SUU UUUU4S jjmT" XS5        TTT4$ )a  Recursively search for arguments in a ParserSpecification. Used for error message
printing.

Returns a list of arguments, whether the parser has subcommands or not, and -- if
`unrecognized_arguments` is passed in --- whether an unrecognized argument exists
under a different subparser.

Args:
    args: Arguments being parsed. Used for heuristics on subcommands.
    parser_spec: Argument parser specification.
    subcommands: Prog corresponding to parser_spec.
    unrecognized_arguments: Used for same_exists return value.
Fc                  > U R                   (       d  SO!U R                  (       a  U R                  b  SOSnU R                   GH  nUR                  R                  5       (       d  UR                  R                  5       (       a  MD  [        R                  UR                  R                  ;   dP  [        R                  UR                  R                  ;   a*  [        R                  UR                  R                  ;   a  M  UR                  R                  nUR                  R                  bH  [        UR                  R                  5      (       a$  UR                  R                  USS9R                   nTR#                  [%        UUR                  R&                  X-   UR                  R(                  US95        T(       a  GM  [+        [-        U4S jUR                  R                  5      5      (       d  GM  SmGM     U R                  bI  SmU R                  R.                  R1                  5        H  u  nnT	" UUS	-   U-   UUT
;   a  S
OS-   S9  M!     U R2                  R5                  5        H  nT	" XU5        M     g)z;Find all possible arguments that could have been passed in. Nz (other subcommands) --helpz --helpdest)r'   
usage_hinthelpsubcommand_match_scorec                   > U T;   $ r-   r5   )xunrecognized_argumentss    r1   <lambda>Erecursive_arg_search.<locals>._recursive_arg_search.<locals>.<lambda>   s    a#99r4   T r   gMbP)rP   )add_helpconsolidate_subcommand_args
subparsersargsfieldis_positionalloweredis_fixedr   SuppressmarkersSuppressFixedFixedname_or_flagsactioncallableoption_stringsappend_ArgumentInfor'   rO   anymapparser_from_nameitemschild_from_prefixvalues)parser_specprogrP   	help_flagargrf   subparser_name	subparserchild_recursive_arg_searchrZ   	argumentshas_subcommandssame_existsrS   s            r1   rv   3recursive_arg_search.<locals>._recursive_arg_searcho   s    ''  ::**6 .  	 ##Cyy&&((CKK,@,@,B,B }}		 1 11""cii&7&77JJ#))"3"33 [[66N
 "". S[[//00!$!3!3" "4 " !. 
  #KK//#/))+A
 ;393;;;T;TU$ $ #[ $^ !!-"O ''88>>@%3J/+A*d2q,@	 A !2299;E!%/EF <r4   r   )ro   r    rp   strrP   floatr6   Noner5   )rZ   ro   rp   rS   rv   rw   rx   ry   s   `  `@@@@r1   recursive_arg_searchr~   W   sh    ( &(IOKRG(RGRG !&RG 
	RG RGh +Q/o{22r4   c                    [        U [        5      (       a  [        [        R                  " U 5      5      $ [        U 5      $ r-   )
isinstancer{   lenr   strip_ansi_sequences)objs    r1   monkeypatch_lenr      s.    #s8005663xr4   c               #     #    [        [        S5      (       d8  [        [        l         SSKn U R                  5          Sv   SSS5        [        ?gSv   g! , (       d  f       N= f! [         a    Sv    N-f = f7f)zContext for working with ANSI codes + argparse:
- Applies a temporary monkey patch for making argparse ignore ANSI codes when
  wrapping usage text.
- Enables support for Windows via colorama.
r   r   N)hasattrargparser   r   coloramacolorama_textImportError)r   s    r1   ansi_contextr      s`      8U##&	 '') * L 	 *)  		sK   %A:A& AA& 	A:
A#A& "A:#A& &A74A:6A77A:c                    [        U[        R                  5       S9nUR                  5        nUR	                  XS9  S S S 5        WR                  5       R                  S5      $ ! , (       d  f       N-= f)Nwidththeme	soft_wrap
)r   rF   r2   captureprintgetrstrip)
renderabler   r   dummy_consoleouts        r1   str_from_richr      s]     %u/B/B/DEM				 CJ< 
!779D!! 
!	 s   A$$
A2T)frozenc                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   Srg)rh   i  zTuple[str, ...]rf   Optional[str]r'   r{   rN   rO   r|   rP   r5   N)r7   r8   r9   r:   r;   r<   r5   r4   r1   rh   rh     s"    ##O
!!Qr4   rh   zList[Tuple[str, str]] global_unrecognized_arg_and_progc                     ^  \ rS rSr% S\S'   S\S'   S\S'   S\S'   SU 4S	 jjr\U 4S
 j5       r\SS j5       rS r	\SS j5       r
SrU =r$ )TyroArgumentParseri!  r    _parser_specificationbool_parsing_known_args_console_outputs	List[str]_argsc                &   > [         TU ]  " U0 UD6  g r-   )super__init__)r0   rZ   kwargs	__class__s      r1   r   TyroArgumentParser.__init__'  s    $)&)r4   c                :   > SSK Jn  X#;   a  g[        TU ]  X5      $ )zWe override _check_value to ignore sentinel values defined by tyro.

This solves a choices error raised by argparse in a very specific edge case:
literals in containers as positional arguments.
r   )MISSING_AND_MISSING_NONPROPN)_fieldsr   r   _check_value)r0   rd   valuer   r   s       r1   r   TyroArgumentParser._check_value*  s!     	9/w#F22r4   c                    U(       a>  U R                   (       a,  U=(       d    [        R                  n UR                  U5        g g g ! [        [
        4 a     g f = fr-   )r   sysstderrwriteAttributeErrorOSError)r0   messagefiles      r1   _print_message!TyroArgumentParser._print_message7  sL    t,,%3::D

7# -7 #G, s   A AAc           	     b  ^ ^^^^^^^^ ^!^" ST R                   ;  a  / qT R                  b  T R                  T5      m0 mT R                   Hi  nUR
                  n[        UR
                  5       HA  u  pVTR                  U/ 5      nUR                  USU 5        UR                  XES-   S 5        MC     Mk     0 m/ n[        T5      n	[        U	5       Hg  u  pZU
S:X  a-  UR                  S5        U	 H  n
UR                  S5        M     M8  T R                  U
5      nUc  SnOUTU'   SnUR                  U5        Mi     SR                  U5      m[        5       m [        5       m!SUUU U!U 4S	 jjm"UUUUU U"4S
 jnT R                  5       mUUUU U"4S jn/ mSnT(       a  [        T5      nOSnUU::  al  [!        T Vs/ s H  nUU:  d  M  UPM     sn5      nUU:w  a  U" U5      nUU:  a  UnMB  UnUT;  a  TUU nTR                  U5        UnU" U5      nUU::  a  Ml  U" U5      nTR                  TUS 5        / nT R"                   H  nUT ;  d  M  UR$                  (       a'  UR                  [&        R(                  " U5      5        MC  UR*                  c  MR  [-        UR*                  [.        5      (       d  Ms  [1        TUR2                  5      (       d  M  UR*                  [5        TUR2                  5      L d  M  [7        TUR2                  T R9                  UUR*                  5      5        M     U(       a,  T R;                  [=        S5      SR                  U5      -  5        T R                   H  nUR$                  (       d  M  UR
                   H  nUT!;   d  M    M0     UR
                   Vs/ s H8  nUR>                  [&        R@                  Ld  M"  [&        R(                  " U5      PM:     nn[=        S5      nT R;                  USR                  U5      -  5        M     TT4$ s  snf s  snf )zWe override _parse_known_args() to improve error messages in the presence of
subcommands. Difference is marked with <new>...</new> below.rV   Nr   ---AOrK   c                v  > T	R                  U 5        TR                  X5      nX0R                  Laj  T
R                  U 5        TR                  U / 5       HC  nUT
;   d  M  [	        S5      n[
        R                  " U5      n[
        R                  " XU-  5      e   U[
        R                  La  U " TTX25        g g )Nznot allowed with argument %s)	add_get_valuesdefaultr   _r   _get_action_nameArgumentErrorSUPPRESS)rd   argument_stringsoption_stringargument_valuesconflict_actionmsgaction_nameaction_conflicts	namespaceseen_actionsseen_non_default_actionsr0   s          r1   take_action9TyroArgumentParser._parse_known_args.<locals>.take_action|  s    V$"..vHO
 nn4(,,V4'7';';FB'GO&*BB >?&.&?&?&P&44V;=NOO	 (H h&7&77tYG 8r4   c                  > TU    nUu  p#pETR                   n/ n UcK  TR                  (       d!  [        R                  UTR                  45        TR                  TU    5        U S-   $ UGb  U" US5      nTR
                  n	US:X  a  US   U	;  a  US:w  a  U(       d	  US   U	;   a$  [        S5      n
[        R                  " X*U-  5      eUR                  U/ U45        US   nXS   -   nTR                  nX<;   a(  X   nUSS  nU(       d  S =pEOUS   S:X  a  SnUSS  nOSnOTR                  X-   5        U S-   nOxUS:X  a  U S-   nU/nUR                  X.U45        OV[        S5      n
[        R                  " X*U-  5      eU S-   nTUS  nU" UU5      nX-   nTX nUR                  X.U45        OGM  U(       d   eU H  u  p.nT" X.U5        M     U$ )Nr   r   r   rK   zignored explicit argument %r=)
_match_argumentr   r   rg   rp   prefix_charsr   r   r   _option_string_actions)start_indexoption_tuplerd   r   sepexplicit_argmatch_argumentaction_tuples	arg_countcharsr   charoptionals_mapstoprZ   startselected_patternsarg_stringsarg_strings_patternextrasoption_string_indicesr0   r   s                    r1   consume_optional>TyroArgumentParser._parse_known_args.<locals>.consume_optional  sG   0=L7C4F3 "11NM>  338??*DII6 MM+k":;&?*  + .vs ;I
 !--E!Q)!,E9(B.,q/U":"#$B"CC"*"8"8|AS"TT%,,fb--HI,Q/(,A(>(,(C(C(9%2%AF+7+;L#/59 9l!-aC!7&)/;AB/?&("MM$*=>#.?D! #a*Q ,~%,,fM-JK
   >?&44V<=OPP (!OE(;EF(C% .v7H II ,D&u2D!((&)FGS Z ! =/<+mF-8 0=Kr4   c                   > T
R                   nTU S  nU" T	U5      n[        T	U5       H  u  pETX U-    nX-  n T" XF5        M     T	[        U5      S  T	S S & U $ r-   )_match_arguments_partialzipr   )r   match_partialselected_pattern
arg_countsrd   r   rZ   r   r   positionalsr0   r   s          r1   consume_positionalsATyroArgumentParser._parse_known_args.<locals>.consume_positionals  s{     99M2;<@&{4DEJ &)j%A!";y1HI(F) &B )Z):;KNr4   r   z(the following arguments are required: %s, z#one of the arguments %s is requiredr-   )!rp   r   fromfile_prefix_chars_read_args_from_files_mutually_exclusive_groups_group_actions	enumerate
setdefaultextenditerrg   _parse_optionaljoinset_get_positional_actionsmaxmin_actionsrequiredr   r   r   r   r{   r   rM   getattrsetattr
_get_valueerrorr   rO   r   )#r0   r   r   mutex_groupgroup_actionsimutex_action	conflictsarg_string_pattern_partsarg_strings_iter
arg_stringr   patternr   r   r   max_option_string_indexindexnext_option_string_indexpositionals_end_indexstrings
stop_indexrequired_actionsrd   groupnamesr   r   r   r   r   r   r   r   r   s#   ```                        @@@@@@@@r1   _parse_known_args$TyroArgumentParser._parse_known_argsA  s    dii/1, %%144[AK ::K'66M#,[-G-G#H,77bI	  r!23  1uw!78 $I ; !##% ,&'78MAT!(//4"2J,33C8 #3  $33J?'!G/;)!,!G(//8! 9& !gg&>? u#&5 	H 	H*Y	 Y	z 224	 	(  &)*?&@#&(#44'*$9R$95Uk=Q$9R($ 66(;K(H% );6"7K"7K "77%k2JKg&6 +;7K1 446 )5
 	k*+./ mmF\)??$++H,E,Ef,MN 2&v~~s;;#Iv{{;;"NNgi.MM%"KK OOFFNNC $* JJ<=)),-. 44E~~~#22F!99 3 ',&:&:&:F!;;h.?.?? :11&9&:  
 ABCJJsSXXe_45 5" &  [ SHs   :
P'P'0!P,P,c                  ^ / nSn[        [        5      S:  Ga  SnSSR                  [         VVs/ s H  u  pEUPM	     snn5       3n[        S [         5       5      n[	        U R
                  U R                  U R                  R                  S5      S   US9u  pxn	U(       a)  U	(       a"  Sn[         H  u  pJUS	U S
U
 S3-  nM     US-  nU GH#  m/ nU HR  nTR                  S5      (       d   eS6U4S jjnUR                  U[        [        XR                  5      5      45        MT     Sn/ nSn[        US S9 HY  u  nnUS:  a    OOUS:  a  US:  a  XR                  :w  a    O2UXR                  :g  -  nUR                  U5        UR                  nM[     SnSnSn[        U5      S:  aE  UR                  [        [!        SS9S95        UR                  [        U5      S:X  a  SOST S35        SnU GH  nUS-  nUb  UR                  UR                  :w  a  SnUS:  a    GM\  US-  n[        U5      S:  aI  US:  aC  Ub@  UR                  UR                  :X  a&  U(       d  UR                  [#        S S!5      5        S"nM  U(       a7  Ub4  UR                  UR                  :X  a  UR$                  UR$                  :X  dr  UR                  [#        S#UR$                  c  S$R                  UR                  5      O*S$R                  UR                  5      S-   UR$                  -   -   S%-   S&5      5        UR&                  bv  UbN  UR&                  UR&                  :w  d4  UR                  UR                  :w  d  UR$                  UR$                  :w  a%  UR                  [#        UR&                  S'5      5        U(       a)  UR                  [#        S(UR(                   S)3S!5      5        UnGM     GM&     GO(UR                  S*5      (       Ga  S+n0 nUR                  S5      S,   R+                  5       R-                  S$5       H"  nS-U;   a  UR-                  S-5      S   nSUU'   M$     [	        U R
                  U R                  U R                  R                  S5      S   [        5       S9u  pxn	A	U HH  nUR                   H5  nUU;   d  M  UU   b  UR.                  UU   R.                  :  d  M0  UUU'   M7     MJ     S"nUR1                  5        GH	  nUc  M	  U(       a#  UR3                  [        [!        SS9S9S./5        SnUR                  [#        S#UR$                  c  S$R                  UR                  5      O*S$R                  UR                  5      S-   UR$                  -   -   S%-   S&5      5        UR&                  b%  UR                  [#        UR&                  S'5      5        U(       d  M  UR                  [#        S(UR(                   S)3S!5      5        GM     U R4                  (       a  [7        [8        R;                  5       S"S/9nUR=                  [?        [A        [        U5      S:  a  US   RC                  5       USS -    OS0/UQ[E        [F        [H           U RJ                  (       a   [        [!        SS9S9S1U R                   S23/O/ 5      Q76 S#U S%3S3[!        S4S9SS595        [L        RN                  " S,5        gs  snnf )7zImprove error messages from argparse.

error(message: string)

Prints a usage message incorporating the message to stderr and
exits.

If you override this in a subclass, it should not return -- it
should either exit or raise an exception.
zParsing errorr   zUnrecognized optionszUnrecognized options: rV   c              3  Z   #    U  H!  u  pUR                  S 5      (       d  M  Uv   M#     g7f)r   N)
startswith).0rr   r   s      r1   	<genexpr>+TyroArgumentParser.error.<locals>.<genexpr>p  s)      )>FC >>$'	 >s   +	+)rZ   ro   rp   rS   z$Unrecognized or misplaced options:

z  z (applied to [green]z
[/green])
zQ
Arguments are applied to the directly preceding subcommand, so ordering matters.r   c                2  >^  T R                  TSS  5      (       d  T R                  TSS  5      (       a  g[        T5      S:  a1  [        [	        U 4S jTSS  R                  S5      5      5      (       a  g[        R                  " TT S9R                  5       $ )N   ?   c                   > U T;   $ r-   r5   )partr   s    r1   rT   =TyroArgumentParser.error.<locals>.get_score.<locals>.<lambda>  s
    T]-Br4   .)ab)	endswithr#  r   allrj   splitdifflibSequenceMatcherratio)r   unrecognized_arguments   `r1   	get_score+TyroArgumentParser.error.<locals>.get_score  s    (111!"5 *556KAB6OPP#& !671< B 5ab 9 ? ? DB B $'#*#:#:"7=$#eg&r4   Nc                    U S   * U S   R                   * U S   R                  S   U S   R                  U S   R                  U S   R                  4$ )Nr   r   )rP   rf   r'   rN   rO   )	arg_scores    r1   rT   *TyroArgumentParser.error.<locals>.<lambda>  s[    &q\M 'q\@@@%aL77:%aL00%aL33%aL--/r4   )keyg?r)     FrA   rE   )styler   zPerhaps you meant:zArguments similar to :
      r*  z[...])r   r   r      Tz[bold]r   z[/bold])r   r   r   r*  )r   r   r   rB  z
in [green]z[/green]z%the following arguments are required:zRequired optionsr(  /zArgument helptext:)r   r   rK   zFor full helptext, run [bold]z --help[/bold]leftrB   )titletitle_alignborder_styleexpand)r   r{   r6   r|   )(r   r   r  r  r~   r   r   rp   	partitionr#  rg   r  rj   rf   sortedr   r   r   r'   rO   rN   stripr3  rP   rn   r   r   r   rF   r2   r   r   r   upperr   r	   r   rW   r   exit)r0   r   
extra_infomessage_titlerr   r   rS   rw   rx   ry   rp   scored_argumentsarg_infor8  prev_arg_option_stringsshow_argumentsunique_counterscoreprev_arg_infosame_counterdots_printedinfo_from_required_argr   first	maybe_argconsoler7  s                             @r1   r  TyroArgumentParser.error]  sK    ,.
'/0142M.sxxKk8lKkKk8l/m.noG%( )>) &" 7KZZ 66YY((-a0'=	73I ;B!AICC5(<TF+NNG "Boo *@%FH  )H0;;DAAAA&" %++!3s96M6M'N#OP+ !*4 FJ'68!" ( $He$ s{*a/37N7NN"&=AXAX&XXN"))(3.6.E.E+7: :> $~&*%%dU1C&DE%%56!; -45J4K1M "# .H A%L%-#22m6R6RR'()R/!&!+
 N+q0(A-)5$33}7S7SS+&-- '$+$1!" (,  ()5$33}7S7SS$,,0E0EE"))# ( (0'7'7'? %)IIh.E.E$F)-83J3J)K&)**&.&6&6*7	!" #,!, !-,  }}0 &-#==M,>,>>#22m6R6RR#++}/D/DD"))'(--*NO '"))#",X-@-@,A J - %-MY !/Y *@t  GHH.MIK"((-a0668>>tD#:))C.+C.2&s+ E
 7KZZ 66YY((-a0'*u	73I % &.%<%<M$(>>.}=E#::0?VVW AI.}= &= &  E3::<	$ %% u5'9:0 "E!!   )008 !IIi&>&>?!%9+C+C!D!""'//"0	 $$ % >>-%%ginnl&KL"? %%()=)=(>hG)M =Z   E$7$7$9$GGMM  #7|a/  'qz//1GABK?@!#	 $  0
  $}} !%5u+= >"?		{. Y
 "$" #=/9 &!&\!: +2 	u 9ms   \r5   )r6   r}   r-   )r   r{   r6   r
   )r7   r8   r9   r:   r;   r   r   r   r   r  r  r<   __classcell__r   s   @r1   r   r   !  se    ..* 
3 
3  Z!x k kr4   r   c                     ^  \ rS rSrSU 4S jjr\S 5       r\U 4S j5       rS r\S 5       r	\U 4S j5       r
\ " S S	\5      5       rS
 r\    SU 4S jj5       rSrU =r$ )TyroArgparseHelpFormatteri  c                   > Sn[         R                  " 5       R                  S-
  nSnSU l        [        R
                  (       + U l        [        TU ]!  XXC5        g )Nr*  r(     F)	shutilget_terminal_sizecolumns_fixed_help_positionr   USE_RICH_strip_ansi_sequencesr   r   )r0   rp   indent_incrementr   max_help_positionr   s        r1   r   "TyroArgparseHelpFormatter.__init__  sS    ((*22Q6$)! *4)<)<%<"1BJr4   c                   U R                  X5      nU" S5      S   n[        U[        5      (       aU  U R                  (       a  U$ [	        [
        R                  " UUS:X  a  [        R                  O[        R                  SS9SS9$ U$ )zQOverride _format_args() to ignore nargs and always expect single string
metavars.r   r   z{fixed}foldr?  overflowTr   )
_metavar_formatterr   r{   rj  r   r   	from_ansirF   r(   r'   )r0   rd   default_metavarget_metavarr   s        r1   _format_args&TyroArgparseHelpFormatter._format_args  s     --fF!nQc3 --  #NN36)3CE//!' #	 
r4   c                   > U R                   n[        TU ]	  U5        U R                   U R                  S-   :  a  X l         g g )Nr(  )_action_max_lengthr   add_argument_max_help_position)r0   rd   prev_max_lengthr   s      r1   rz  &TyroArgparseHelpFormatter.add_argument  sB     11V$""T%<%<q%@@&5# Ar4   c                    U R                   R                  SU5      R                  5       nSS Kn[        Ul        UR                  X5      nU?U$ )NrV   r   )_whitespace_matchersubrL  textwrapr   r   wrap)r0   textr   r  r   s        r1   _split_lines&TyroArgparseHelpFormatter._split_lines  sI    ''++C6<<> 	$ 'mmD(L
r4   c                T   ^ SR                  U4S jUR                  SS9 5       5      $ )NrK   c              3  .   >#    U  H
  nTU-   v   M     g 7fr-   r5   )r$  lineindents     r1   r%  7TyroArgparseHelpFormatter._fill_text.<locals>.<genexpr>  s     P1Ov}1Os   T)keepends)r  
splitlines)r0   r  r   r  s      `r1   
_fill_text$TyroArgparseHelpFormatter._fill_text  s#    wwP$1OPPPr4   c                  > S U l         SU l        [        TU ]  5       nS U l         SU l        [        TU ]  5       nUR	                  S5      UR	                  S5      :  a  UOUnU R
                  (       a  [        R                  " U5      $ U$ )NFTr   )
_tyro_rulerh  r   format_helpcountrj  r   r   )r0   help1help2r   r   s       r1   r  %TyroArgparseHelpFormatter.format_help  s|     $)!#%$(!#%{{4(5;;t+<<e%%%0055Jr4   c                  :    \ rS rSrS	S jrS rS rS
S jrS rSr	g)"TyroArgparseHelpFormatter._Sectioni  Nc                X    Xl         X l        X0l        / U l        S U R                   l        g r-   )	formatterparentheadingrl   r  )r0   r  r  r  s       r1   r   +TyroArgparseHelpFormatter._Section.__init__  s$    &N K"LDJ(,DNN%r4   c                \    U R                   c  U R                  5       $ U R                  5       $ r-   )r  _tyro_format_root_tyro_format_nonrootr/   s    r1   r  .TyroArgparseHelpFormatter._Section.format_help  s*    {{"--//0022r4   c                   [        U R                  R                  [        R	                  5       S9nUR                  5        n/ n/ n/ nU R                   H  u  pgU" U6 nUc  M  [        U[        5      (       a<  UR                  5       S:X  a  M:  UR                  [        R                  " USS95        M`  [        U[        5      (       d   eUR                  U5        UR                  [        USS9R                  5       R                  S5      S-   5        M     Sn	S	n
[!        S[#        [%        U5      U
-  S-   U R                  R                  U	-  ['        U5      5      5      nS
nS nS nU(       Gd@  US:  aV  U R                  R                  U-  S-
  nU Vs/ s H,  n[        XS9R                  5       R                  S5      S-   PM.     nnOS n[)        U5       Vs/ s H  nSPM     nn[)        U5       Vs/ s H  n/ PM     nn[+        XE5       HA  u  nnUR-                  [#        U5      5      nUU   R                  U5        UU==   U-  ss'   MC     [!        / UQSP76 nU Vs/ s H  nUU-  PM
     nnUS:X  d$  [/        U Vs/ s H  nUS:  PM
     sn5      (       a  OUS-  nU(       d  GM@  Uc   e[1        U Vs/ s H  n[3        U6 PM     snSUS9nUR5                  [3        U6 5        UR5                  U5        S S S 5        UR7                  5       $ s  snf s  snf s  snf s  snf s  snf s  snf ! , (       d  f       WR7                  5       $ = f)Nr   rK   ro  rq  A   r   r   r   2   Fr   g333333?T)column_firstr   )r   r  _widthrF   r2   r   rl   r   r{   rL  rg   r   rs  r   r   r  r  r  sumr   ranger   r  r2  r   r   r   r   )r0   r   r   	top_partscolumn_partscolumn_parts_linesfuncrZ   item_contentmin_column_widthheight_breakpointcolumn_countdonecolumn_parts_groupedcolumn_widthpr  column_lineslchosen_columncolumn_lines_maxcolumn_lines_ratior6  grg  s                            r1   r  4TyroArgparseHelpFormatter._Section._tyro_format_root  sn   #nn++53F3F3HM &&(G	!%'""&**JD#';L#+ $L#66'--/25$!((v)VW  *,>>>>$++L9 +11),bAGGIOOPTU # #-. $& $&!"./3DDqH--1AAL)  '+$##a''+~~'<'<'Lq'P
 &2.%1 *!@FFHNNtTWXX%1 + .*
 (,/4\/B#C/B!A/BL#C8=l8K+L8K1B8K(+L #L E1(4(:(:3|;L(M,];BB1E$]3q83 !F
 (+'<L'<!'<$HT)U1!.>*>&)U $q(C2DE2D2DE- -  A%L= $@ ,777!(<=(<1UAY(<=!%& ##E9$56##G,c )d ;;= I. $D+L *V F >W )(d ;;= sb   EL63L
L6L(L67L"A#L6&L'5L6L,
L61L6?L1
/L6L66
Mc           
        U R                   R                  U5      nU R                   R                  n[        U R                   R                  S-   U R                   R
                  5      nU R                   R                  (       a  Sn/ nUR                  SS/:X  aC  UR                  c   e[        [        R                  " SUR                  -   S-   5      5      Ul        UR                  b  [        UR                  [        5      (       d   e[        R                  " UR                  5      UR                  :w  a/  [        R                   " UR                  R#                  SS5      SS	9O.[        R                  " UR                  R#                  SS5      SS	9nO[        S
5      nUR                  (       a  [%        [        R                  " U5      5      U-   US-
  :  a  U R                   R                  (       dr  ['        SS SS9nUR)                  XC-
  S9  UR)                  5         UR+                  [        R                   " U[,        R.                  SS9U5        UR1                  U5        OfUR1                  [        R                   " US-   [,        R.                  SS95        UR                  (       a  UR1                  [3        USSSXC-
  4S95         UR5                  5        H}  nU R                   R7                  5         UR1                  [3        [9        U R;                  U5      6 SSSU R                   R<                  4S95        U R                   R?                  5         M     U$ ! [@         a     U$ f = f)Nr*  z-hz--helpz
[helptext]z[/helptext]z%%%ro  r  rK   r   Fr   )show_headerboxpaddingr  rp  r   )pad)!r  _format_action_invocation_current_indentr  ry  r{  rh  rf   rO   r   r   from_markupr   r{   r   r   rs  replacer   r   
add_columnadd_rowrF   r&   rg   r   _get_subactions_indentr   _format_action_indent_increment_dedentr   )	r0   rd   r&   r  help_position
item_partsr)   table	subactions	            r1   r  1TyroArgparseHelpFormatter._Section._format_actionG  s   AA&IJ^^33F11A511M ~~22 !/1J $$x(88 {{...+$$\FKK%?-%OP
 {{&!&++s3333  44V[[AV[[P NN6;;#6#6tS#AFS))++D#6   8 55jABVK!#$;;%T1E  }'= >  "NN"#..!'
  !!%( !!NN"T)#..!' ;;%%$!"Aq-*@ A!'!7!7!9INN**,%%!4#6#6y#AB!"Aq$..*J*J K NN**, ":  " s   BM$ $
M21M2c           	       ^  S n/ nT R                    H  u  p4[        USS 5      [        R                  L aG  Uu  n[	        U[
        R                  5      (       d   eUR                  T R                  U5      5        Mj  U" U6 n[	        U[        5      (       d   eUR                  5       S:w  d  M  Ub   e[        R                  " UR                  5       S-   [        R                  SS9nM     [        U5      S:X  a  g T R                  [
        R                   LaI  T R                  b<  T R"                  R$                  nSUST R                  4-  nUR                  5       S S nOSn['        [(        R*                  " [-        U 4S	 jUb  X!/-   OU5      6 5      n	[/        [-        [        U	5      5      n
T R"                  R0                  c7  [        R                  " S
U
-  [        R2                  SS9T R"                  l        OO[        T R"                  R0                  R4                  S   5      U
:  a  S
U
-  /T R"                  R0                  l        Ub  UT R"                  R0                  /U-   n[7        [9        U6 US[        R2                  S9$ )N__func__rK   r   ro  rp  r   z%*s%s:
r   c                   > [         R                  " [        U TR                  R                  SS95      R                  5       R                  S5      $ )NT)r   r   r   )r   r   r   r  r  r   r3  )r  r0   s    r1   rT   ITyroArgparseHelpFormatter._Section._tyro_format_nonroot.<locals>.<lambda>  s@    ("?"?) !)>)>$#
  t#%r4   u   ─croprE  )rF  rG  rH  )rl   r	  rb  r  r   r   Actionr   r{   rL  r   rs  rF   r%   r   r  r   r  r  list	itertoolschainrj   r  r  r$   _textr   r   )r0   description_partr  r  rZ   rd   r  current_indentr  lines	max_widths   `          r1   r  7TyroArgparseHelpFormatter._Section._tyro_format_nonroot  sS   #J"jj
D*d30??@ !%IV%fhoo>>>>%%d&9&9&&AB $(;L%lC8888#))+r1,44+/>>(..047"'"3"3%+,(! ), :!# ||8#4#449Q!%!?!?$DLL'II!--/#2. %  0; ');;!+E$ CUO,I~~((0 -1NNI%U\\F-) T^^..44Q789D3893D2E))/  +$NN-- 

 z"""\\	 r4   )r  r  rl   r  r-   )rd   zargparse.Action)
r7   r8   r9   r:   r   r  r  r  r  r<   r5   r4   r1   _Sectionr    s     	-	3V	!pW	rS	r4   r  c                t   [        5       n0 nU GHH  nUR                  (       d  [        SU 35      e UR                  UR                  S   5      n[	        UR                  5      nXg-   nXU UR                  :X  a  Sn	UR                   H8  n
UR                  U
5        U
R                  [        R                  L d  M3  U	S-  n	M:     Xy-
  nUR                  (       d-  Xd;   a  XF==   S-  ss'   OSXF'   X;   a  XH==   S-  ss'   O7SXH'   O2US:  a,  Xd;   a  XF==   S-  ss'   OSXF'   X;   a  XH==   S	-  ss'   OS	XH'   [        US-   U5       H  nS
XL'   M	     GMH  GMK     / n[        U5       GH  u  pU
R                  [        R                  L ai  UR                  S5        UR                  U5      S
:X  a  UR                  U5        M\  UR                  US-   5      S
:X  a  UR                  US-   5        M  M  U
R                  (       dQ  U R!                  U
5      nU R#                  X5      nX;   a  US   S:X  a  US   S:X  a  USS nUR                  U5        M  U
R                  S   nU
R$                  S:X  a'  ['        U
S5      (       a  U
R)                  5       OSU-  nO+U R+                  U
5      nU R#                  X5      nU< SU< 3nU
R                  (       d
  X;  a  SU-  nUR                  U5        GM     [-        USS9 H
  nXL   /XU& M     SR/                  U Vs/ s H
  nUc  M  UPM     sn5      nSnSn[0        R2                  " SU-  SU5      n[0        R2                  " SU-  SU5      n[0        R2                  " U< SU< 3SU5      nUR5                  5       nU$ ! [         a     GM  f = fs  snf )zJBackporting from Python 3.10, primarily to call format_usage() on actions.zempty group r   r   z [[]z (()|Nr   format_usagez%srV   z[%s]T)reversez[\[(]z[\])]z(%s) z\1z (%s)z *rK   )r  r   
ValueErrorr  r   r   rO   r   r   r  r  r   rg   r   poprf   #_get_default_metavar_for_positionalrv  nargsr   r  !_get_default_metavar_for_optionalrK  r  _rer  rL  )r0   actionsgroupsr  insertsr  r   group_action_countendsuppressed_actions_countrd   exposed_actions_countr  partsr   r,  r   args_stringitemr  opencloses                         r1   _format_actions_usage/TyroArgparseHelpFormatter._format_actions_usage  s    E'' <w!788%)e&:&:1&=> &))=)=%>"0%)=)==/0,"'"6"6%))&1!;;(*;*;;494 #7 +E * !>> +#Nd2N-0GN>#LC/L+.GL.2 +#Nd2N-0GN>#LC/L+.GL"519c2%(
 3; > X "7+IA {{h///T";;q>S(KKN[[Q'3.KKA& / **BB6J((9 *Aw#~$r(c/#Abz T" !' 5 5a 8 <<1$ #6>:: ++-!M1  #DDVLG"&"3"3F"DK&3[AD 6+F!D=D T"a ,f .A!*EAJ / xx%D%$4%DE wwx$t4wwx%'5wwD%0#t<zz| S  | Es   N# N5+N5#
N21N2c                  > [        U[        5      (       d   e[        U5      S:  a  / n[        R                  " U R
                  5      nSnU H  nUR                  S:X  d  [        UR                  5      S:X  a  UR                  U5        M?  U(       a  MH  SnUR                  [        R                  " [        U5      S:X  a  SOUS   R                  5       S	-   /S
S95        M     UnUc  [        S5      n[        T	U ]9  UUUU5      nSU-   $ )Nr*  FrO   r   Tr   OPTIONSr   z OPTIONSrK   rL   z[bold]usage[/bold]: z

)r   r  r   shlexr3  _progrM   rf   rg   r   r  rM  r   r   _format_usage)
r0   usager  r  prefixnew_actions
prog_partsadded_optionsrd   r   s
            r1   r  'TyroArgparseHelpFormatter._format_usagel  s    '4((((w<!KTZZ0J!M!;;&(C0E0E,F!,K&&v.&$(M&&  (+:!'; %.)3B)=)=)?*)L	 "$	 "" "G >"#9:F%	
 ~r4   )ry  rh  rj  r  )rp   r{   )r  zIterable[argparse.Action]r6   r{   )r7   r8   r9   r:   r   r   rv  rz  r  r  r  objectr  r  r  r<   r_  r`  s   @r1   rb  rb    s    	K  0 6 6
 Q Q  * R6 R Rhun $7$	$ $r4   rb  )rG   r   r6   r}   )
rZ   r   ro   r    rp   r{   rS   zSet[str]r6   z&Tuple[List[_ArgumentInfo], bool, bool])r   r   r6   int)r6   zGenerator[None, None, None])NF)r   r   r   zOptional[int]r   r   r6   r{   )H__doc__
__future__r   r   argparse_sys
contextlibdataclassesr4  r  rer  r  re  r   r   r   typingr   r   r   r   r	   r
   r   r   r   r   rich.columnsr   rich.consoler   r   r   rich.paddingr   
rich.panelr   	rich.ruler   
rich.styler   
rich.tabler   	rich.textr   
rich.themer   typing_extensionsr   rK   r   r   r   r   _parsersr    	dataclassr"   rH   r~   rF   r   contextmanagerr   r   rh   r   r;   ArgumentParserr   RawDescriptionHelpFormatterrb  r5   r4   r1   <module>r"     s  	 #         
     ! 7 7         & # ( ( ) ! ! !&n3
n3$n3 n3 %	n3
 ,n3f 	   $ $P PU""'4"HL"" d#R R $R* ;=  "7 <
h	00,2M2M h	VE D D Er4   