
    iA                     J   d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZ d dlmZmZ d dlZd dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ e
rd dlm Z  d dl!m"Z"m#Z# d dl$m%Z% g dZ&d Z' G d de(      Z) G d de(      Z*e G d de(             Z+ ed       G d de+             Z, ed       G d de+             Z- ed       G d de+             Z. ed       G d d e+             Z/ G d! d"e+      Z0 ed       G d# d$e+             Z1 ed       G d% d&e+             Z2 ed       G d' d(e2             Z3 ed       G d) d*e+             Z4 ed       G d+ d,e+             Z5 ed       G d- d.e+             Z6 ed       G d/ d0e+             Z7y)1    N)CallableSequence)Enum)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ConsumeMultipleErrorMixedArgumentErrorRepeatArgumentErrorRequiresEqualsErrorUnknownOptionErrorUnusedCliTokensErrorValidationErrorCombinedShortOptionErrorc                 \    t        j                  |       t        j                  |       d   fS )N   )inspectgetsourcefilegetsourcelines)funcs    y/home/jay/workspace/.worktrees/task-2116-dev1/scripts/.codegraph-venv/lib/python3.12/site-packages/cyclopts/exceptions.py_get_function_infor.   *   s(      &(>(>t(DQ(GGG    c                       e Zd ZdZy)r   zDA command with the same name has already been registered to the app.N__name__
__module____qualname____doc__ r/   r-   r   r   .   s    Nr/   r   c                       e Zd ZdZy)r   zVThe docstring either has a syntax error, or inconsistency with the function signature.Nr1   r6   r/   r-   r   r   5   s    `r/   r   c                       e Zd ZU dZdZedz  ed<   	 dZeed<   	 dZ	e
e   dz  ed<   	 dZe
e   dz  ed<   	 dZedz  ed<   	 dZed	   ed
<   	 dZee   dz  ed<   	 dZed   ed<   	  edd      Zed   ed<   	 d Zy)r   zRoot 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                 "   | j                   | j                   S g }| j                  r|j                  t        |       j                         | j
                  rwt        | j
                        \  }}|j                  d| d| d       |j                  d| j
                  j                   t        j                  | j
                                | j                   |j                  d| j                          n	 |rdj                  |      dz   S y)NzFunction defined in file "z", line :z    zRoot Input Tokens: 
 )r9   r:   appendtyper2   r=   r.   r)   	signaturer;   join)selfstringsfilelinenos       r-   __str__zCycloptsError.__str__l   s    8888O<<NN4:../{{1$++>f!;D6&QRSTdkk&:&:%;G<M<Mdkk<Z;[\]%%1!4T5K5K4LMN99W%,,r/   )r2   r3   r4   r5   r9   str__annotations__r:   boolr;   listr<   r=   r   r>   r
   r?   r   r@   r   rC   rP   r6   r/   r-   r   r   9   s    
 Ct GT
 +/tCy4'. '+M49t#* #FHtO" &*Hhz") +/M8C=4'.  C% $)t#DGXi DCr/   r   T)rB   c                       e Zd ZdZy)r&   z?Cannot combine short, token-consuming options with short flags.Nr1   r6   r/   r-   r&   r&      s    Ir/   r&   c                        e Zd ZU dZdZeed<   	 dZedz  ed<   	 e	j                  j                  Zeed<   	  fdZ xZS )r%   z'Validator function raised an exception.rG   exception_messageNgroupvaluec                 P   d}| j                   r| j                  t        j                  j                  u r| j                   j                  n| j                  }	 | j                   j
                  d   }|j                  r|j                  dk(  rdnd|j                   d}|j                  r|j                  n2| j                   j                  j                  d      j                         }d| d| d| d	}nc| j                  r1| j                  j                  rAd
| j                  j                   d}n&| j                  rd| j                  d   d	}nt        t        | A          | }| j"                  r|r| d| j"                   S | j"                  S |S # t        $ r Y Jw xY w)NrG   r   cliz provided by ""-zInvalid value "z" for ".zInvalid values for group "".zInvalid values for command  )r>   rY   cycloptsutilsUNSETtokenssourcekeywordnamelstripupper
IndexErrorrX   r?   NotImplementedErrorsuperrP   rW   )rL   messagerY   tokenprovided_byrh   cyclopts_message	__class__s          r-   rP   z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   F 	F%$F%)r2   r3   r4   r5   rW   rQ   rR   rX   r   rb   rc   rd   rY   r   rP   __classcell__rr   s   @r-   r%   r%      sF    1s7E54<4%%E3%1$ $r/   r%   c                   <     e Zd ZU dZeed<   	 ded<   	  fdZ xZS )r#   zrUnknown/unregistered option provided by the cli.

    A nearest-neighbor parameter suggestion may be printed.
    ro   r   argument_collectionc                    | j                   j                  xs | j                   j                  }| j                   j                  dk(  rd| d}nd| d| j                   j                   d}| j                   j                  xs | j                   j                  x}rVdd l}t        t        j                  d | j                  D                    }|j                  ||dd	      }|r|d
|d    dz  }t        | -         |z   S )Nr[   zUnknown option: "r_   z" from "r   c              3   N   K   | ]  }|j                   s|j                    y wN)parsenames.0xs     r-   	<genexpr>z-UnknownOptionError.__str__.<locals>.<genexpr>   s     1ga_`_f_f!''1g   %%r(   333333?ncutoff Did you mean ""?)ro   rg   rY   rf   difflibrT   r   from_iterablerv   get_close_matchesrm   rP   )rL   rY   responserg   r   
candidatesclose_matchesrr   s          r-   rP   zUnknownOptionError.__str__   s    

""6djj&6&6::%*5'4H*5'$**:K:K9LBOHjj((<DJJ,<,<<7<e111g4C[C[1gghJ#55gzQWZ5[MomA.>-?rBBw 8++r/   )r2   r3   r4   r5   r   rR   rP   rs   rt   s   @r-   r#   r#      s%    
 L---3, ,r/   r#   c                   P     e Zd ZU dZdZed   ed<   	 dZedz  ed<   	  fdZ	 xZ
S )r   z6There was an error performing automatic type coercion.Nr   ro   target_typec           
         | j                   T| j                  r| j                  j                  | j                   S d| j                  j                   d| j                    S t        | j                  t
        j                        rUt        | j                        }| j                  r| j                  j                  |S d| j                  j                   d| S | j                  J | j                  J t        | -         }t        | j                        t        u r7ddj                  d t        | j                        D              z   dz   }d| }nt        | j                  t               rtt#        | j                  t$              rZ| j                  j&                  j(                  ddj                  fd| j                  j*                  D              z   dz   }d| }nt-        | j                        }| j                  s"|d	| j                  j.                   d
| dz  }|S | j                  j                  | j                  j.                  j1                  d      j3                         }| j                  j4                  dk(  s| j                  j4                  dk(  r%|d	| d| j                  j6                   d| dz  }|S |d	| d| j                  j4                   d| j                  j6                   d| d	z  }|S | j                  j4                  dk(  s| j                  j4                  dk(  r9|d	| j                  j                   d| j                  j6                   d| dz  }|S |d	| j                  j                   d| j                  j4                   d| j                  j6                   d| d	z  }|S )NzInvalid value for z: {, c              3   2   K   | ]  }t        |        y wry   reprr|   s     r-   r   z(CoercionError.__str__.<locals>.<genexpr>   s     %R!d1g%Rs   }zone of c              3   @   K   | ]  }t         |              y wry   r   )r}   r~   nts     r-   r   z(CoercionError.__str__.<locals>.<genexpr>   s     %Xad2a5k%Xs   zInvalid value for "z": unable to convert value to r^   r]   rG   r[   z": unable to convert "z" into z" from z: unable to convert ")r9   ro   rg   
isinstance	__cause__jsonJSONDecodeErrorr   r>   r   rm   rP   r   r	   rK   r   rI   
issubclassr   	parametername_transform__members__r   rh   ri   rj   rf   rY   )rL   r9   choicestarget_type_namepositional_namer   rr   s        @r-   rP   z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(($/Jt?O?OQU4V((77BDII%X4;K;K;W;W%XXX[^^G!(	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/   )r2   r3   r4   r5   ro   r
   rR   r   rI   rP   rs   rt   s   @r-   r   r      s9    @#E8G#  $K#, ,r/   r   c                   "     e Zd ZdZ fdZ xZS )r   z4CLI token combination did not yield a valid command.c                 n   | j                   sJ | j                   d   }d| d}| j                  ro| j                  j                  rXdd l}g }| j                  j                  j	                         D ]  \  }}|| j                  j
                  v s|| j                  j                  v r7t        |t              r|j                  | j                        n|}t        |t        | j                              s|j                  s|j                  |        |j                  ||dd      }|r|d|d    dz  }d	}	|D cg c]  }|j                  d
      r| }
}|
rBt        |
      |	kD  r|ddj!                  |
d |	        dz  }n|ddj!                  |
       dz  }t"        | I         |z   S c c}w )Nr   zUnknown command "r_   r(   r   r   r   r      r]   z Available commands: r   z, ...r^   )r<   r@   	_commandsr   items_help_flags_version_flagsr   r   resolverI   showrH   r   
startswithlenrK   rm   rP   )rL   ro   r   r   visible_commandsrh   app_or_specsubappr   max_commandsavailable_commandsrr   s              r-   rP   zUnknownCommandError.__str__  s   !!!!""1%&ugR088**  "%)XX%7%7%=%=%? 2!k488///4488;R;R3R ;E[R]:^,,TXX6do!&$txx.9;;$++D12 $55 	 6 M omA.>-?rBB L3C!`44??[^K_$!`!`!)*\9"7		BTUbVbBc8d7eej kkH"7		BT8U7VVW XXHw 8++ "as    F2F2r2   r3   r4   r5   rP   rs   rt   s   @r-   r   r     s    >*, *,r/   r   c                   "     e Zd ZdZ fdZ xZS )r$   z)Not all CLI tokens were used as expected.c                 ^    | j                   J t        | 	         d| j                    dz   S )NzUnused Tokens: r^   )r<   rm   rP   rL   rr   s    r-   rP   zUnusedCliTokensError.__str__C  s7    !!---w _T5G5G4H#JJJr/   r   rt   s   @r-   r$   r$   ?  s    3K Kr/   r$   c                   ^     e Zd ZU dZ ee      Zee   ed<   	 dZ	edz  ed<   	  fdZ
 xZS )r   z%A required argument was not provided.)factorytokens_so_farNrg   c           
         | j                   J g }| j                   j                         \  }}|dk(  rd}d}n2|dk(  rd}d}n(d| d}t        | j                        |z  }|rd| d	nd}d}| j                  r| j                   j
                  j                  rdd l}| j                  D 	cg c]  }	t        |	      s|	 }
}	|j                  | j                   j                  |
dd
      }|r;|d   | j                   j                  vr d| j                   j                   d|d    d}| j                   j                  }| j                  | j                  }nT| j                   j                  r>t        | j                   j                        D ]  }|j                  |j                  } n | j                  r7|j!                  ddj#                  | j                         d| d| d	|        n|j!                  d| d| d	|        |r|j!                  |       | j$                  r|j!                  d| j                   d	       t&        | Q         dj#                  |      z   S c c}	w )Nr   zflag requiredrG   r(   zrequires an argumentz	requires z positional argumentsz
 Only got r^   r   r   zDid you mean "z" instead of "r   	Command "ra   " parameter "" Parameter "z	 Parsed: )r>   token_countr   r   r<   
field_info
is_keywordr   r   r   rh   r{   rg   re   reversedr?   rH   rK   r:   rm   rP   )rL   rM   count_required_stringonly_got_stringreceived_countclose_match_stringr   r~   r   r   
param_namero   rr   s                 r-   rP   zMissingArgumentError.__str__R  sV   }}(((==,,.qA:-O OaZ4O O )%0EFO !3!34u<N@N
>*:!<TVO$--":":"E"E%)%7%7M>!;L!MJM#55dmm6H6H*XYbe5fMq!19L9L!L'5dmm6H6H5IXefgXhWiik%l"]]''
<<#J]]!!!$--"6"67 ==,!&J
 NNCHHT%7%789zlRTUdTeefgvfwx NN[B6GqHYZ[NN-.<<NNYt'9'9&:!<=w 388G#4449 Ns   +I&<I&)r2   r3   r4   r5   r   rT   r   rQ   rR   rg   rP   rs   rt   s   @r-   r   r   H  s7    /$T2M492fGS4Za/5 /5r/   r   c                   H    e Zd ZU dZdZeed<   dZedz  ed<   dZeed<   d Z	y)r   zHThe number of values provided doesn't meet consume_multiple constraints.r   min_requiredNmax_allowedactual_countc           	         | j                   J | j                  xs | j                   j                  }| j                  | j                  k  rd| j                   }nd| j
                   }| j                  r3ddj                  | j                         d| d| d| j                   d	}nd	| d| d| j                   d}t        j                  |       |z   S )
Nzrequires at least zaccepts at most r   ra   r   r   z elements. Got r^   r   )
r>   rg   rh   r   r   r   r?   rK   r   rP   )rL   r   
constraintbases       r-   rP   zConsumeMultipleError.__str__  s    }}(((\\7T]]%7%7
t000-d.?.?-@AJ+D,<,<+=>Jsxx(:(:;<M*UWXbWccrsw  tE  tE  sF  FG  HD Bzl/$J[J[I\\]^D$$T*T11r/   )
r2   r3   r4   r5   r   intrR   r   r   rP   r6   r/   r-   r   r     s,    RL#"Kt"L#2r/   r   c                   :     e Zd ZU dZdZedz  ed<   	  fdZ xZS )r"   zJA long option requires ``=`` to assign a value (e.g., ``--option=value``).Nrg   c                     | j                   J | j                  xs | j                   j                  }t        |          d| d| dz   S )Nr   z+" requires a value assigned with "=". Use "z=VALUE".)r>   rg   rh   rm   rP   )rL   r   rr   s     r-   rP   zRequiresEqualsError.__str__  sV    }}(((\\7T]]%7%7
GOJ<'RS]R^^fgh	
r/   )	r2   r3   r4   r5   rg   rQ   rR   rP   rs   rt   s   @r-   r"   r"     s!    TGS4Z5
 
r/   r"   c                   0     e Zd ZU dZded<   	  fdZ xZS )r!   zAThe same parameter has erroneously been specified multiple times.r   ro   c                 V    t         |          d| j                  j                   dz   S )Nz
Parameter z specified multiple times.)rm   rP   ro   rg   r   s    r-   rP   zRepeatArgumentError.__str__  s*    w Z

0B0B/CC]#^^^r/   )r2   r3   r4   r5   rR   rP   rs   rt   s   @r-   r!   r!     s    KN_ _r/   r!   c                   >     e Zd ZU dZeed<   ed   ed<    fdZ xZS )ArgumentOrderErrorz|Cannot supply a POSITIONAL_OR_KEYWORD argument with a keyword, and then a later POSITIONAL_OR_KEYWORD argument positionally.ro   r   9prior_positional_or_keyword_supplied_as_keyword_argumentsc                    | j                   J t        | j                        dkD  }t        d | j                   j                  D        | j                   j
                        j                  d      }| j                  D cg c]  }|j                  d   j                   }}t        |      dk(  r|d   }t        | %         d| j                  d|d|rdnd	 d
|d|d| j                  d| j                   j
                  dz   S c c}w )Nr(   c              3   N   K   | ]  }|j                   s|j                     y wry   rg   r|   s     r-   r   z-ArgumentOrderError.__str__.<locals>.<genexpr>       R1		QYYRr   r]   r   zCannot specify token z positionally for parameter z$ due to previously specified keywordsrG   ra   z. z( must either be passed positionally, or z  must be passed as a keyword to r^   )r>   r   r   nextre   rh   ri   rg   rm   rP   ro   )rL   pluraldisplay_namer~   prior_display_namesrr   s        r-   rP   zArgumentOrderError.__str__  s   }}(((TSSTWXXR0D0DRTXTaTaTfTfgnnors)-)g)g
$%AHHQK
 
 "#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)	r2   r3   r4   r5   rQ   rR   rT   rP   rs   rt   s   @r-   r   r     s#     GJ?CJ?OO
 
r/   r   c                   "     e Zd ZdZ fdZ xZS )r    z=Cannot supply keywords and non-keywords to the same argument.c                     | j                   J t        d | j                   j                  D        | j                   j                        }t        |          d| dz   S )Nc              3   N   K   | ]  }|j                   s|j                     y wry   r   r|   s     r-   r   z-MixedArgumentError.__str__.<locals>.<genexpr>  r   r   z2Cannot supply keyword & non-keyword arguments to "r_   )r>   r   re   rh   rm   rP   )rL   r   rr   s     r-   rP   zMixedArgumentError.__str__  s[    }}(((R0D0DRTXTaTaTfTfgw %WXdWeeg#hhhr/   r   rt   s   @r-   r    r      s    Gi ir/   r    )8r)   r   collections.abcr   r   enumr   	itertoolsr   typingr   r   r	   r
   r   r   attrsr   r   cyclopts.utilsrb   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    r6   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 , , ,> 9M 9 9x-,- -,` K= K K 85= 85 85v 2/ 2 20 
- 
 
 _- _ _ 
 
 
, i i ir/   