
    k7i!:                        S SK r S SKrS SKJrJr  S SKJr  S SKJrJ	r	J
r
JrJrJr  S SKJrJr  S SK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  \(       a  S SKJr  S SKJ r J!r!  S SK"J#r#  / SQr$S r% " S S\&5      r' " S S\&5      r(\ " S S\&5      5       r)\" SS9 " S S\)5      5       r*\" SS9 " S S\)5      5       r+\" SS9 " S S\)5      5       r,\" SS9 " S S\)5      5       r- " S  S!\)5      r.\" SS9 " S" S#\)5      5       r/\" SS9 " S$ S%\)5      5       r0\" SS9 " S& S'\)5      5       r1\" SS9 " S( S)\)5      5       r2\" SS9 " S* S+\)5      5       r3g),    N)CallableSequence)chain)TYPE_CHECKINGAnyLiteralOptionalget_args
get_origin)definefield)get_hint_name)CommandSpec)Group)Token)is_option_likejson_decode_error_verbosifier)Console)ArgumentArgumentCollection)App)CoercionErrorCommandCollisionErrorCycloptsErrorDocstringErrorUnknownCommandErrorMissingArgumentErrorMixedArgumentErrorRepeatArgumentErrorUnknownOptionErrorUnusedCliTokensErrorValidationErrorCombinedShortOptionErrorc                 `    [         R                  " U 5      [         R                  " U 5      S   4$ )N   )inspectgetsourcefilegetsourcelines)funcs    M/home/james-whalen/.local/lib/python3.13/site-packages/cyclopts/exceptions.py_get_function_infor+   '   s(      &(>(>t(DQ(GGG    c                       \ rS rSrSrSrg)r   +   zDA command with the same name has already been registered to the app. N__name__
__module____qualname____firstlineno____doc____static_attributes__r/   r,   r*   r   r   +   s    Nr,   r   c                       \ rS rSrSrSrg)r   2   zVThe docstring either has a syntax error, or inconsistency with the function signature.r/   Nr0   r/   r,   r*   r   r   2   s    `r,   r   c                       \ rS rSr% SrSr\S-  \S'    Sr\	\S'    Sr
\\   S-  \S'    Sr\\   S-  \S'    Sr\S-  \S	'    Sr\S
   \S'    Sr\\   S-  \S'    Sr\S   \S'    \" SSS9r\S   \S'    S rSrg)r   6   zzRoot exception for runtime errors.

As CycloptsErrors bubble up the Cyclopts call-stack, more information is added to it.
NmsgTverboseroot_input_tokensunused_tokenstargetr   argumentcommand_chainr   app)defaultkw_onlyr   consolec                 D   U R                   b  U R                   $ / nU R                  (       a  UR                  [        U 5      R                  5        U R
                  (       aw  [        U R
                  5      u  p#UR                  SU SU S35        UR                  SU R
                  R                   [        R                  " U R
                  5       35        U R                  b  UR                  SU R                   35        O U(       a  SR                  U5      S-   $ g)NzFunction defined in file "z", line :z    zRoot Input Tokens: 
 )r;   r<   appendtyper1   r?   r+   r&   	signaturer=   join)selfstringsfilelinenos       r*   __str__CycloptsError.__str__i   s    8888O<<NN4:../{{1$++>!;D6&QRSTdkk&:&:%;G<M<Mdkk<Z;[\]%%1!4T5K5K4LMN99W%,,r,   r/   )r1   r2   r3   r4   r5   r;   str__annotations__r<   boolr=   listr>   r?   r   r@   r	   rA   r   rB   r   rE   rR   r6   r/   r,   r*   r   r   6   s    
 Ct GT
 +/tCy4'. '+M49t#* #FHtO" &*Hhz") +/M8C=4'.  C% $)t#DGXi DCr,   r   T)rD   c                       \ rS rSrSrSrg)r#      z?Cannot combine short, token-consuming options with short flags.r/   Nr0   r/   r,   r*   r#   r#      s    Ir,   r#   c                      ^  \ rS rSr% SrSr\\S'    Sr\	S-  \S'    \
R                  R                  r\\S'    U 4S jrS	rU =r$ )
r"      z'Validator function raised an exception.rI   exception_messageNgroupvaluec                   > SnU R                   (       a  U R                  [        R                  R                  L a  U R                   R                  OU R                  n U R                   R
                  S   nUR                  (       a  UR                  S:X  a  SOSUR                   S3nUR                  (       a  UR                  O2U R                   R                  R                  S5      R                  5       nSU SU SU S	3nOsU R                  (       a6  U R                  R                  (       a  S
U R                  R                   S3nO,U R                  (       a  SU R                  S   < S	3nO[        e[        TU ]A  5        U 3nU R"                  (       a$  U(       a  U SU R"                   3$ U R"                  $ U$ ! [         a     NUf = f)NrI   r   cliz provided by ""-zInvalid value "z" for ".zInvalid values for group "".zInvalid values for command  )r@   r^   cycloptsutilsUNSETtokenssourcekeywordnamelstripupper
IndexErrorr]   rA   NotImplementedErrorsuperrR   r\   )rN   messager^   tokenprovided_byrm   cyclopts_message	__class__s          r*   rR   ValidationError.__str__   s   ==+/::9M9M+MDMM''SWS]S]EP,,Q/ ).8MbUcdidpdpcqqrSs(-u}}4==;M;M;T;TUX;Y;_;_;a+E7'$qQOZZzz6tzz6GrJ3D4F4Fr4J3MQOG%%#go/0	:!!*+1T-C-C,DEE---##+  s   G 
GGr/   )r1   r2   r3   r4   r5   r\   rT   rU   r]   r   rg   rh   ri   r^   r   rR   r6   __classcell__rw   s   @r*   r"   r"      sF    1s7E54<4%%E3%1$ $r,   r"   c                   F   ^  \ rS rSr% Sr\\S'    S\S'    U 4S jrSrU =r	$ )r       zjUnknown/unregistered option provided by the cli.

A nearest-neighbor parameter suggestion may be printed.
rt   r   argument_collectionc                 ,  > U R                   R                  =(       d    U R                   R                  nU R                   R                  S:X  a  SU S3nOSU SU R                   R                   S3nU R                   R                  =(       d    U R                   R                  =n(       aX  SS Kn[        [        R                  " S U R                   5       5      5      nUR                  X5SSS	9nU(       a  US
US    S3-  n[        TU ]-  5       U-   $ )Nr`   zUnknown option: "rd   z" from "r   c              3   8   #    U  H  oR                   v   M     g 7fN)names.0xs     r*   	<genexpr>-UnknownOptionError.__str__.<locals>.<genexpr>   s     1\C[a''C[   r%   333333?ncutoff Did you mean ""?)rt   rl   r^   rk   difflibrW   r   from_iterabler}   get_close_matchesrr   rR   )rN   r^   responserl   r   
candidatesclose_matchesrw   s          r*   rR   UnknownOptionError.__str__   s    

""6djj&6&6::%*5'4H*5'$**:K:K9LBOHjj((<DJJ,<,<<7<e111\4C[C[1\\]J#55gQWZ5[MomA.>-?rBBw 8++r,   r/   )
r1   r2   r3   r4   r5   r   rU   rR   r6   ry   rz   s   @r*   r    r       s%    
 L---3, ,r,   r    c                   Z   ^  \ rS rSr% SrSr\S   \S'    Sr\	S-  \S'    U 4S jr
SrU =r$ )	r      z6There was an error performing automatic type coercion.Nr   rt   target_typec           
        > U R                   bZ  U R                  (       a  U R                  R                  c  U R                   $ SU R                  R                   SU R                    3$ [        U R                  [
        R                  5      (       a[  [        U R                  5      nU R                  (       a  U R                  R                  c  U$ SU R                  R                   SU 3$ U R                  c   eU R                  c   e[        TU ]-  5       n[        U R                  5      [        L a7  SSR                  S [        U R                  5       5       5      -   S-   nSU 3nO[!        U R                  5      nU R                  (       d"  USU R                  R"                   S	U S
3-  nU$ U R                  R                  c  U R                  R"                  R%                  S5      R'                  5       nU R                  R(                  S:X  d  U R                  R(                  S:X  a%  USU SU R                  R*                   SU S
3-  nU$ USU SU R                  R(                   SU R                  R*                   SU S
3	-  n U$ U R                  R(                  S:X  d  U R                  R(                  S:X  a9  USU R                  R                   SU R                  R*                   SU S
3-  nU$ USU R                  R                   SU R                  R(                   SU R                  R*                   SU S
3	-  nU$ )NzInvalid value for z: {, c              3   8   #    U  H  n[        U5      v   M     g 7fr   )reprr   s     r*   r   (CoercionError.__str__.<locals>.<genexpr>   s     %R7Q!d1gg7Qr   }zone of zInvalid value for "z": unable to convert value to rc   rb   rI   r`   z": unable to convert "z" into z" from z: unable to convert ")r;   rt   rl   
isinstance	__cause__jsonJSONDecodeErrorr   r@   r   rr   rR   r   r   rM   r
   r   rm   rn   ro   rk   r^   )rN   r;   choicestarget_type_namepositional_namerw   s        r*   rR   CoercionError.__str__   s_   88::!3!3!;xx+DJJ,>,>+?r$((LL $..$*>*>??3DNNCzzTZZ%7%7%?J/

0B0B/C2cUKK}}(((+++god&&'72DII%Rx@P@P7Q%RRRUXXG!(	2,T-=-=>zz(););(<<Z[kZllmnnC 
 ZZ'"mm0077<BBDOzz  B&$***;*;u*D,_,==STXT^T^TdTdSeelm}l~~  A  A 
 ,_,=WTZZEVEVDWWlmqmwmwm}m}l~  F  GW  FX  XY  Z  Z 
 zz  B&$***;*;u*D,TZZ-?-?,@@VW[WaWaWgWgVhho  qA  pB  BC  D  D 
 ,TZZ-?-?,@

HYHYGZZoptpzpz  qA  qA  pB  BI  JZ  I[  [\  ]  ]
r,   r/   )r1   r2   r3   r4   r5   rt   r	   rU   r   rK   rR   r6   ry   rz   s   @r*   r   r      s9    @#E8G#  $K#( (r,   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )r   i  z4CLI token combination did not yield a valid command.c                   > U R                   (       d   eU R                   S   nSU S3nU R                  (       Ga  U R                  R                  (       Ga}  SS Kn/ nU R                  R                  R	                  5        H  u  pVXPR                  R
                  ;   d  XPR                  R                  ;   a  M9  [        U[        5      (       a  UR                  U R                  5      OUn[        U[        U R                  5      5      (       d  M  UR                  (       d  M  UR                  U5        M     UR                  UUSSS9nU(       a  USUS    S3-  nS	n	U Vs/ s H  oUR                  S
5      (       a  M  UPM     n
nU
(       aC  [        U
5      U	:  a  USSR!                  U
S U	 5       S3-  nOUSSR!                  U
5       S3-  n["        TU ]I  5       U-   $ s  snf )Nr   zUnknown command "rd   r%   r   r   r   r      rb   z Available commands: r   z, ...rc   )r>   rB   	_commandsr   items_help_flags_version_flagsr   r   resolverK   showrJ   r   
startswithlenrM   rr   rR   )rN   rt   r   r   visible_commandsrm   app_or_specsubappr   max_commandsavailable_commandsrw   s              r*   rR   UnknownCommandError.__str__  s   !!!!""1%&ugR0888***  "%)XX%7%7%=%=%?!88///488;R;R3R ;E[R]:^:^,,TXX6do!&$txx.99;;;$++D1 &@ $55 	 6 M omA.>-?rBB L3C!`3C4??[^K_$3C!`!)*\9"7		BTUbVbBc8d7eej kkH"7		BT8U7VVW XXHw 8++ "as   &G&G&r/   r1   r2   r3   r4   r5   rR   r6   ry   rz   s   @r*   r   r     s    >*, *,r,   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )r!   i8  z)Not all CLI tokens were used as expected.c                 `   > U R                   c   e[        TU ]	  5       SU R                    S3-   $ )NzUnused Tokens: rc   )r>   rr   rR   rN   rw   s    r*   rR   UnusedCliTokensError.__str__<  s7    !!---w _T5G5G4H#JJJr,   r/   r   rz   s   @r*   r!   r!   8  s    3K Kr,   r!   c                   b   ^  \ rS rSr% Sr\" \S9r\\   \	S'    Sr
\S-  \	S'    U 4S jrSrU =r$ )	r   iA  z%A required argument was not provided.)factorytokens_so_farNrl   c           
      B  > U R                   c   e/ nU R                   R                  5       u  p#US:X  a  SnSnO8US:X  a  SnSnO-SU S3n[        U R                  5      U-  nU(       a  SU S	3OSnSnU R                  (       a  U R                   R
                  R                  (       a  SS KnU R                   V	s/ s H  n	[        U	5      (       d  M  U	PM     n
n	UR                  U R                   R                  U
SS
S9nU(       a=  US   U R                   R                  ;  a   SU R                   R                   SUS    S3nU R                   R                  nU R                  b  U R                  nO\U R                   R                  (       aA  [        U R                   R                  5       H  nUR                  c  M  UR                  n  O   U R                  (       a7  UR!                  SSR#                  U R                  5       SU SU S	U 35        OUR!                  SU SU S	U 35        U(       a  UR!                  U5        U R$                  (       a  UR!                  SU R                   S	35        [&        TU ]Q  5       SR#                  U5      -   $ s  sn	f )Nr   zflag requiredrI   r%   zrequires an argumentz	requires z positional argumentsz
 Only got rc   r   r   zDid you mean "z" instead of "r   z	Command "rf   z" parameter "z" zParameter "z	 Parsed: )r@   token_countr   r   r>   
field_info
is_keywordr   r   r   rm   r   rl   rj   reversedrA   rJ   rM   r<   rr   rR   )rN   rO   count_required_stringonly_got_stringreceived_countclose_match_stringr   r   r   r   
param_namert   rw   s                 r*   rR   MissingArgumentError.__str__K  sR   }}(((==,,.A:-O OaZ4O O )%0EFO !3!34u<N@N
>*:!<TVO$--":":"E"E%)%7%7M%7>!;L!%7JM#55dmm6H6H*XYbe5fMq!19L9L!L'5dmm6H6H5IXefgXhWiik%l"]]''
<<#J]]!!!$--"6"67==,!&J 8
 NNCHHT%7%789zlRTUdTeefgvfwx NN[B6GqHYZ[NN-.<<NNYt'9'9&:!<=w 388G#4449 Ns   <JJr/   )r1   r2   r3   r4   r5   r   rW   r   rT   rU   rl   rR   r6   ry   rz   s   @r*   r   r   A  s7    /$T2M492fGS4Za/5 /5r,   r   c                   :   ^  \ rS rSr% SrS\S'    U 4S jrSrU =r$ )r   i}  zAThe same parameter has erroneously been specified multiple times.r   rt   c                 V   > [         TU ]  5       SU R                  R                   S3-   $ )Nz
Parameter z specified multiple times.)rr   rR   rt   rl   r   s    r*   rR   RepeatArgumentError.__str__  s*    w Z

0B0B/CC]#^^^r,   r/   )	r1   r2   r3   r4   r5   rU   rR   r6   ry   rz   s   @r*   r   r   }  s    KN_ _r,   r   c                   H   ^  \ rS rSr% Sr\\S'   \S   \S'   U 4S jrSr	U =r
$ )ArgumentOrderErrori  z|Cannot supply a POSITIONAL_OR_KEYWORD argument with a keyword, and then a later POSITIONAL_OR_KEYWORD argument positionally.rt   r   9prior_positional_or_keyword_supplied_as_keyword_argumentsc                 8  > U R                   c   e[        U R                  5      S:  n[        S U R                   R                   5       U R                   R
                  5      R                  S5      nU R                   Vs/ s H  o3R                  S   R                  PM     nn[        U5      S:X  a  US   n[        TU ]%  5       SU R                  < SU< SU(       a  SOS	 S
U< SU< SU R                  < SU R                   R
                  < S3-   $ s  snf )Nr%   c              3   ^   #    U  H#  oR                   (       d  M  UR                   v   M%     g 7fr   rl   r   s     r*   r   -ArgumentOrderError.__str__.<locals>.<genexpr>       R0D1		YQYY0D   --rb   r   zCannot specify token z positionally for parameter z$ due to previously specified keywordsrI   rf   z. z( must either be passed positionally, or z  must be passed as a keyword to rc   )r@   r   r   nextrj   rm   rn   rl   rr   rR   rt   )rN   pluraldisplay_namer   prior_display_namesrw   s        r*   rR   ArgumentOrderError.__str__  s   }}(((TSSTWXXR0D0DRTXTaTaTfTfgnnors)-)g)g
)gAHHQK)g 	 
 "#q("5a"8 GO%djj^3OP\O_  `D  LR  EH  XZ  D[  [\  ]p  \s  su  vI  uL  Lt  uy  u  u  tB  Bb  cg  cp  cp  cu  cu  bx  xy  zz	

s   "Dr/   )r1   r2   r3   r4   r5   rT   rU   rW   rR   r6   ry   rz   s   @r*   r   r     s#     GJ?CJ?OO
 
r,   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )r   i  z=Cannot supply keywords and non-keywords to the same argument.c                    > U R                   c   e[        S U R                   R                   5       U R                   R                  5      n[        TU ]  5       SU S3-   $ )Nc              3   ^   #    U  H#  oR                   (       d  M  UR                   v   M%     g 7fr   r   r   s     r*   r   -MixedArgumentError.__str__.<locals>.<genexpr>  r   r   z2Cannot supply keyword & non-keyword arguments to "rd   )r@   r   rj   rm   rr   rR   )rN   r   rw   s     r*   rR   MixedArgumentError.__str__  s[    }}(((R0D0DRTXTaTaTfTfgw %WXdWeeg#hhhr,   r/   r   rz   s   @r*   r   r     s    Gi ir,   r   )4r&   r   collections.abcr   r   	itertoolsr   typingr   r   r   r	   r
   r   attrsr   r   cyclopts.utilsrg   cyclopts.annotationsr   cyclopts.command_specr   cyclopts.groupr   cyclopts.tokenr   r   r   rich.consoler   cyclopts.argumentr   r   cyclopts.corer   __all__r+   	Exceptionr   r   r   r#   r"   r    r   r   r!   r   r   r   r   r/   r,   r*   <module>r      s     .  N N   . -     H$>! HOI OaY a EI E EP J} J J '$m '$ '$T , , ,> 5M 5 5p-,- -,` K= K K 85= 85 85v _- _ _ 
 
 
, i i ir,   