
    lKj`                     |   d dl Z d dlZd dlmZ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m Z  erd dl!m"Z" d dl#m$Z$ d dl%m&Z&m'Z' d dl(m)Z) dZ*	 dZ+	 dZ,	 dZ-	 dZ.	 g dZ/d Z0 G d de1      Z2 G d de1      Z3e G d de1             Z4 ed       G d d e4             Z5 ed       G d! d"e4             Z6 ed       G d# d$e4             Z7 ed       G d% d&e4             Z8 G d' d(e4      Z9 ed       G d) d*e4             Z: ed       G d+ d,e4             Z; ed       G d- d.e;             Z< ed       G d/ d0e4             Z= ed       G d1 d2e4             Z> ed       G d3 d4e4             Z? ed       G d5 d6e4             Z@y)7    N)CallableIterator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slice_to_str)ConsoleText)ArgumentArgumentCollection)Appzbold redboldcyanz
bold greendim)CoercionErrorCommandCollisionErrorCycloptsErrorDocstringErrorUnknownCommandErrorMissingArgumentErrorConsumeMultipleErrorMixedArgumentErrorRepeatArgumentErrorRequiresEqualsErrorUnknownOptionErrorUnusedCliTokensErrorValidationErrorCombinedShortOptionErrorSTYLE_OFFENDING_VALUE
STYLE_NAMESTYLE_VALID_CHOICESTYLE_SUGGESTIONSTYLE_SOURCEc                 \    t        j                  |       t        j                  |       d   fS )N   )inspectgetsourcefilegetsourcelines)funcs    d/Users/ahmed/devFolder/Ultron/claude-voice/.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;   r9   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.Nr=   rB   r;   r9   r#   r#   G   s    `r;   r#   c                      e Zd ZU dZdZd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dZddZd ZddZy)r"   zRoot exception for runtime errors.

    As CycloptsErrors bubble up the Cyclopts call-stack, more information is added to it.
    Nzstr | Text | NonemsgTverboseroot_input_tokensunused_tokenstargetr   argumentcommand_chainr   app)defaultkw_onlyr   consolec                     ddl m} | j                  J t        | j                  |      r| j                  S  || j                        S )zResolve ``self.msg`` (str | Text) into a Rich ``Text`` instance.

        Strings are wrapped as literal text -- only ``Text`` instances carry
        styling, so the caller opts in by constructing one explicitly.
        r   r   )	rich.textr   rE   
isinstance)selfr   s     r9   _resolved_msgzCycloptsError._resolved_msg   s<     	#xx###dhh%88ODHH~r;   c              #     K   | j                   | j                          y| j                  syt        |       j                  g}| j
                  rwt        | j
                        \  }}|j                  d| d| d       |j                  d| j
                  j                   t        j                  | j
                                | j                  |j                  d| j                          dj                  |      dz   df yw)	a  Yield segments that compose the error message.

        Each item is either a ``(text, style)`` tuple (empty string = no
        styling) or a pre-rendered :class:`rich.text.Text`. Drives both
        ``__str__`` (joins plain text) and ``__rich__`` (applies styles).
        Subclasses override to add their body, typically prefixing with
        ``yield from super()._segments()`` to include the verbose preamble.
        NzFunction defined in file "z", line :z    zRoot Input Tokens: 
 )rE   rT   rF   typer>   rI   r:   appendr5   	signaturerG   join)rS   stringsfilelinenos       r9   	_segmentszCycloptsError._segments   s      88$$&&||:&&';;-dkk:LD&NN7vXfXQOPNNT$++"6"6!78I8I$++8V7WXY!!-NN01G1G0HIJii 4'++s   D	Dc                     g }| j                         D ]B  }t        |t              r|j                  |d          (|j                  |j                         D dj                  |      S )Nr   rX   )r`   rR   tuplerZ   plainr\   )rS   partsitems      r9   __str__zCycloptsError.__str__   sR    NN$D$&T!W%TZZ(	 %
 wwu~r;   c                     ddl m}  |d      }| j                         D ]@  }t        |t              r|\  }}|j                  ||xs d        0|j                  |       B |S )Nr   r   rM   )style)rQ   r   r`   rR   rb   rZ   append_text)rS   r   outre   textrh   s         r9   __rich__zCycloptsError.__rich__   s\    " #NN$D$&"e

4u}
5% % 
r;   )returnr   rm   z Iterator[tuple[str, str] | Text])r>   r?   r@   rA   rE   __annotations__rF   boolrG   liststrrH   rI   r   rJ   r   rK   r   rL   r   rO   rT   r`   rf   rl   rB   r;   r9   r"   r"   K   s    
  $C	#4 GT
 +/tCy4'. '+M49t#* #FHtO" &*Hhz") +/M8C=4'.  C% $)t#DGXi DC,2r;   r"   T)rN   c                       e Zd ZdZy)r-   z?Cannot combine short, token-consuming options with short flags.Nr=   rB   r;   r9   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<   	 d fdZ xZS )	r,   z'Validator function raised an exception.rX   exception_messageNgroupvaluec              #   h  K   g }| j                   rr| j                  t        j                  j                  u r| j                   j                  n| j                  }	 | j                   j
                  d   }|j                  r|j                  dk(  rdnd|j                   }|j                  r|j                  n2| j                   j                  j                  d      j                         }t        |t              rt        |      n| }|j                  d       |j                  |t        f       |j                  d       |j                  |t         f       |r|j                  |t"        f       |j                  d       n| j&                  rd| j&                  j                  r|j                  d	       |j                  | j&                  j                  t         f       |j                  d       nY| j(                  rG|j                  d
       |j                  | j(                  d   t         f       |j                  d       nt*        t-        t.        | a               }|E d {    |E d {    | j2                  r|s|rd | j2                  df y y # t$        $ r Y \w xY w7 C7 ;w)Nr   clirX   z provided by -zInvalid value "rX   z" for rX   .rX   )zInvalid values for group rX   )zInvalid values for command "rX   z".rX   ) rX   )rJ   rw   cycloptsutilsUNSETtokenssourcekeywordnamelstripupperrR   slicer   rZ   r.   r/   r2   
IndexErrorrv   rK   NotImplementedErrorrq   superr`   ru   )	rS   bodyrw   tokenprovided_byr   	value_strpreamble	__class__s	           r9   r`   zValidationError._segments   s    &(==+/::9M9M+MDMM''SWS]S]E',,Q/ ).8MbUbchcocobpSq(-u}}4==;M;M;T;TUX;Y;_;_;a3=eU3KL/TYSZ	34Y(=>?N+T:./KKl ;<I&ZZzz=>TZZ__j9:I&KK<=KK++B/<=KK
#%%)+,!!4((",, ";  4 	sI   AJ2J 5G5J2*J.+	J24J05*J2	J+(J2*J++J20J2rn   )r>   r?   r@   rA   ru   rr   ro   rv   r   r   r   r   rw   r	   r`   __classcell__r   s   @r9   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<   	 d fdZ xZS )r*   zrUnknown/unregistered option provided by the cli.

    A nearest-neighbor parameter suggestion may be printed.
    r   r   argument_collectionc              #     K   | j                   j                  xs | j                   j                  }t        |       }t        |          E d {    |rdnddf |t        f |rdnd}| j                   j                  dk(  r
| ddf n-|r|df d| j                   j                   t        f d | j                   j                  xs | j                   j                  x}rad	d l	}t        t        j                  d
 | j                  D                    }|j                  ||dd      }|rd |d	   t        f d y y y 7 w)NzUnknown option: "zUnknown option: rX   "ry   r~    from r}   r   c              3   N   K   | ]  }|j                   s|j                    y wN)parsenames.0xs     r9   	<genexpr>z/UnknownOptionError._segments.<locals>.<genexpr>0  s      1gC[a_`_f_f!''C[   %%r4   333333?ncutoffz Did you mean rX   ?rX   )r   r   rw   r   r   r`   r.   r   r2   difflibrq   r   from_iterabler   get_close_matchesr1   )	rS   rw   quotedcloser   r   
candidatesclose_matchesr   s	           r9   r`   zUnknownOptionError._segments  sI    

""6djj&6&6#E**7$&&&&,"2DrII***2::%G1+r/!Ri4::,,-.<<Mjj((<DJJ,<,<<7<e111g4C[C[1gghJ#55gzQWZ5[M**#A&(888  = 	's   AEEDErn   )r>   r?   r@   rA   r   ro   r`   r   r   s   @r9   r*   r*     s%    
 L---3 r;   r*   c                   R     e Zd ZU dZdZed   ed<   	 dZedz  ed<   	 d fdZ	 xZ
S )r    z6There was an error performing automatic type coercion.Nr   r   target_typec              #   	  K   | j                   e| j                         }| j                  r| j                  j                  | yddlm}  |d| j                  j                   d      }||z    yt        | j                  t        j                        r_t        | j                        }| j                  r| j                  j                  |df yd| j                  j                   d| df y| j                  J | j                  J t        | 9         E d{    d}d}t        | j                        t         u rdt#        | j                        }|D cg c]#  }t        |t$              rd| dn
t'        |      % }}|D cg c]  }t        |t$              s| }}nt        | j                  t(              rxt+        | j                  t,              r^| j                  j.                  j0                  }	| j                  j2                  D cg c]
  } |	|       }
}|
D cg c]  }d| d
 }}|
}|I| j                  <| j                  j                  r| j                  j                  n2| j                  j4                  j7                  d      j9                         }d	 | j                  j:                  t<        f d
 |t>        f | j                  j@                  dvr!d| j                  j@                   tB        f d tE        |      D ]  \  }}|rd |tF        f  d ddl$}|jK                  | j                  j:                  |xs g dd      }|rd |d   tL        f d y|tO        | j                        nddjQ                  |       d}| j                  s-d | j                  j4                  t>        f d| ddf y| j                  j                  4| j                  j4                  j7                  d      j9                         }n| j                  j                  }d |t>        f | j                  j@                  dvr!d| j                  j@                   tB        f d | j                  j:                  t<        f d| ddf y7 c c}w c c}w c c}w c c}w w)zYield segments that compose the error message.

        Tuples are ``(text, style)`` pairs; ``Text`` items are emitted
        verbatim (so user-supplied Rich markup / ``Text`` is preserved).
        Nr   r   Invalid value for z: rX   r   rz   r{   r|   )rX   ry   r   )z. Choose from: rX   , rX   r}   r4   r   r   z Did you mean "rX   z"?rX   zone of {r   })r   rX   z: unable to convert value to r~   )z: unable to convert "rX   z" into ))rE   rT   r   r   rQ   r   rR   	__cause__jsonJSONDecodeErrorr   rJ   r   r   r`   r   r
   r   rr   reprrY   
issubclassr   	parametername_transform__members__r   r   r   rw   r.   r/   r   r2   	enumerater0   r   r   r1   r   r\   )rS   msg_textr   prefixverbosifiedchoice_strsplain_choicesargsr   ntmembersr   ichoicer   r   target_type_namedisplay_namer   s                     r9   r`   zCoercionError._segmentsG  sw     88))+H::!3!3!; 	 + 24::3E3E2FbIJx'' dnnd&:&:;7GK::!3!3!;!2o%  +4::+=+=*>bNPRRR}}(((+++7$&&&(,*.d&&'72D,,-DPTUPT1z!S'9Qqc8tAwFPTKU(,C1
1c0BQMC(($/Jt?O?OQU4V((77B&*&6&6&B&BC&Br!u&BGC-45WQqc8WK5#M "tzz'=)-););4::%%ASASAZAZ[^A_AeAeAgD''**""$999
""zz  3tzz0012L@@''&{3	6"N000 4 M--djj.>.>@SQSWXad-eE++Ah 000 0;/BM$**+)TXT]T]^iTjSkkmHn 	 zz**--$$j0012B1C1ErII::%==--44S9??AL::--L&&J&&::K/4::,,-.<<))jj 555()+R//{ 	' VC D5sP   D"S%S&<S"(S
SS&S*A/SS(S.S;J
SSrn   )r>   r?   r@   rA   r   r   ro   r   rY   r`   r   r   s   @r9   r    r    9  s;    @#E8G#  $K#\0 \0r;   r    c                   $     e Zd ZdZd fdZ xZS )r$   z4CLI token combination did not yield a valid command.c              #     K   | j                   sJ | j                   d   }t        | 	         E d {    d |t        f d | j                  r| j                  j
                  sy g }g }t               }| j                  j
                  j                         D ]  \  }}|| j                  j                  v s|| j                  j                  v r8t        |t              r|j                  | j                        n|}t        |t        | j                              s|j                  s|j                  |       t!        |      }||vs|j#                  |       |j$                  }	t        |	t&              r||	k(  s|j                  |       |	s||	v s|j                  |        |r`d t)        |      D ]I  \  }
}|
dkD  r-t+        |      dk(  rd n|
t+        |      dz
  k(  rd nd	 d
 |t,        f d
 K d n0dd l}|j1                  ||dd      }|rd |d   t,        f d d}|D cg c]  }|j3                  d      r| }}|sy d t+        |      |kD  r-|d | }t)        |      D ]  \  }
}|
rd	 |t4        f  d y t)        |      D ]  \  }
}|
rd	 |t4        f  d y 7 c c}w w)Nr   )zUnknown command "rX   r   r      )z or rX   r4   )z, or rX   r   )r   rX   r   r   r   r   r      rz   )z Available commands: rX   )z, ...rX   r}   )rH   r   r`   r.   rL   	_commandssetitems_help_flags_version_flagsrR   r   resolverY   showrZ   idaddsynonymrr   r   lenr1   r   r   
startswithr0   )rS   r   visible_commandssynonym_matchesseen_subappsr   app_or_specsubapp	subapp_idr   r   matchr   r   max_commandsavailable_commandsshownr   s                    r9   r`   zUnknownCommandError._segments  s    !!!!""1%7$&&&%%***TXX//&(%'!$!%!3!3!9!9!;D+txx+++ttxx7N7N/N6@k6Z[((2`kFfd488n5;;##D) 6
I,  + ..gs+''..t4'!1#**40/ "<2 &&%o65q5?+q0((c/2Q66))&--- 7 M#55e=MQR[^5_M++#A&(888 /?\/?ttWZG[d/?\!))!"\1&}5E$U+4"N... , $%784"N... 9 Ma 	'~ ]sB   /KKDK2KKKB,KK"K&A-KKrn   r>   r?   r@   rA   r`   r   r   s   @r9   r$   r$     s    >T Tr;   r$   c                   $     e Zd ZdZd fdZ xZS )r+   z)Not all CLI tokens were used as expected.c              #      K   | j                   J t        | 	         E d {    d| j                    ddf y 7 w)NzUnused Tokens: r~   rX   )rH   r   r`   rS   r   s    r9   r`   zUnusedCliTokensError._segments  sJ     !!---7$&&& 2 2315r99 	's    ?=?rn   r   r   s   @r9   r+   r+      s    3: :r;   r+   c                   `     e Zd ZU dZ ee      Zee   ed<   	 dZ	edz  ed<   	 d fdZ
 xZS )r%   z%A required argument was not provided.)factorytokens_so_farNr   c              #     K   | j                   J | 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                  rtdd l}| j                  D cg c]  }t        |      s| }	}|j                  | j                   j                  |	dd
      }
|
r |
d   | j                   j                  vr|
d   }| j                   j                  }| j                  | j                  }nT| j                   j                  r>t        | j                   j                        D ]  }|j                  |j                  } n t        | A         E d {    | j"                  r,d dj%                  | j"                        t&        f d nd |t&        f d| d	| df |4d | j                   j                  t(        f d |t*        f d | j,                  rd| j                   d	df y y c c}w 7 w)Nr   zflag requiredrX   r4   zrequires an argumentz	requires z positional argumentsz
 Only got r~   r   r   z	Command "rX   r   z" parameter rX   z
Parameter rX   r   )z instead of rX   r   z
  Parsed: )rJ   token_countr   r   rH   
field_info
is_keywordr   r   r   r   r   r   r   reversedr   r`   rK   r\   r/   r1   r.   rF   )rS   count_required_stringonly_got_stringreceived_countclose_matchr   r   r   matches
param_namer   r   s                r9   r`   zMissingArgumentError._segments  sJ    }}(((==,,.qA:-O OaZ4O O )%0EFO !3!34u<N@N
>*:!<TVO"&$--":":"E"E%)%7%7M%7>!;L!%7JM//0B0BJRS\_/`G71:T]]-@-@@%aj]]''
<<#J]]!!!$--"6"67==,!&J 8
 7$&&&!!((4--.
::$$""*$$/"!O#45r99"&&--$$&666$$444M<<t112!4b88 A N 	's,   B(I+I<I C I I!I"B4Irn   )r>   r?   r@   rA   r   rq   r   rr   ro   r   r`   r   r   s   @r9   r%   r%   
  s7    /$T2M492fGS4Za39 39r;   r%   c                   J    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dZ	y)	r&   zHThe number of values provided doesn't meet consume_multiple constraints.r   min_requiredNmax_allowedactual_countc              #     K   | j                   J | j                  xs | j                   j                  }| j                  | j                  k  rd| j                   }nd| j
                   }t        j                  |       E d {    | j                  r,d dj                  | j                        t        f d nd |t        f d| d| j                   dd	f y 7 bw)
Nzrequires at least zaccepts at most r   r   r   r   z elements. Got r~   rX   )rJ   r   r   r  r  r  r"   r`   rK   r\   r/   )rS   r  
constraints      r9   r`   zConsumeMultipleError._segmentsR  s     }}(((\\7T]]%7%7
t000-d.?.?-@AJ+D,<,<+=>J !**4000!!((4--.
::$$""*$$*_T->->,?qA2EE 	1s   BC*C(A#C*rn   )
r>   r?   r@   rA   r  intro   r  r  r`   rB   r;   r9   r&   r&   J  s-    RL#"Kt"L#Fr;   r&   c                   <     e Zd ZU dZdZedz  ed<   	 d fdZ xZS )r)   zJA long option requires ``=`` to assign a value (e.g., ``--option=value``).Nr   c              #      K   | j                   J | j                  xs | j                   j                  }t        |          E d {    d |t
        f d |t
        f d y 7 %w)Nr   )z) requires a value assigned with `=`. Use rX   )z=VALUE.rX   )rJ   r   r   r   r`   r/   )rS   r  r   s     r9   r`   zRequiresEqualsError._segmentso  sm     }}(((\\7T]]%7%7
7$&&&*$$==*$$ 	's   AA/A-&A/rn   )	r>   r?   r@   rA   r   rr   ro   r`   r   r   s   @r9   r)   r)   h  s!    TGS4Z5 r;   r)   c                   2     e Zd ZU dZded<   	 d fdZ xZS )r(   zAThe same parameter has erroneously been specified multiple times.r   r   c              #      K   | j                   j                  J t        |          E d {    d | j                   j                  t        f d y 7 +w)Nr   )z specified multiple times.rX   )r   r   r   r`   r/   r   s    r9   r`   zRepeatArgumentError._segments  sV      zz!!---7$&&&jj  *,,.. 	's   *AA,Arn   )r>   r?   r@   rA   ro   r`   r   r   s   @r9   r(   r(   z  s    KN/ /r;   r(   c                   @     e Zd ZU dZeed<   ed   ed<   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.r   r   9prior_positional_or_keyword_supplied_as_keyword_argumentsc              #     K   | 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   n|}t        | %         E d {    d | j                  t        f d |t        f d|rdnd	 d
d	f | t        f d | t        f d | j                  t        f d | j                   j
                  t        f d y c c}w 7 w)Nr4   c              3   N   K   | ]  }|j                   s|j                     y wr   r   r   s     r9   r   z/ArgumentOrderError._segments.<locals>.<genexpr>       R0D1		QYY0Dr   rz   r   )zCannot specify token "rX   )z" positionally for parameter rX   z$ due to previously specified keywordsrX   r   )z. rX   )z) must either be passed positionally, or "rX   )z!" must be passed as a keyword to rX   r}   )rJ   r   r  nextr   r   r   r   r   r`   r   r.   r/   )rS   pluralr   r   
prior_listprior_displayr   s         r9   r`   zArgumentOrderError._segments  sS    }}(((TSSTWXXR0D0DRTXTaTaTfTfgnnors373q3qr3qaahhqk))3q
r),ZA)=
1:7$&&&**jj///11J&&4FS4K1MrQQ*,,*,,==jj///55mm  *,,! s 	's   A?E# E"(E#
E!BE#rn   )	r>   r?   r@   rA   rr   ro   rq   r`   r   r   s   @r9   r  r    s#     GJ?CJ?OO r;   r  c                   $     e Zd ZdZd fdZ xZS )r'   z=Cannot supply keywords and non-keywords to the same argument.c              #      K   | j                   J t        d | j                   j                  D        | j                   j                        }t        |          E d {    d |t        f d y 7 w)Nc              3   N   K   | ]  }|j                   s|j                     y wr   r  r   s     r9   r   z/MixedArgumentError._segments.<locals>.<genexpr>  r  r   )z1Cannot supply keyword & non-keyword arguments to rX   r}   )rJ   r  r   r   r   r`   r/   )rS   r   r   s     r9   r`   zMixedArgumentError._segments  sl     }}(((R0D0DRTXTaTaTfTfg7$&&&EEJ&& 	's   AA8A6A8rn   r   r   s   @r9   r'   r'     s    G r;   r'   )Ar5   r   collections.abcr   r   r   enumr   	itertoolsr   typingr   r	   r
   r   r   r   attrsr   r   cyclopts.utilsr   cyclopts.annotationsr   cyclopts.command_specr   cyclopts.groupr   cyclopts.tokenr   r   r   r   rich.consoler   rQ   r   cyclopts.argumentr   r   cyclopts.corer   r.   r/   r0   r1   r2   __all__r:   	Exceptionr!   r#   r"   r-   r,   r*   r    r$   r+   r%   r&   r)   r(   r  r'   rB   r;   r9   <module>r+     s6     8 8   N N   . -     V V$>! #  6
 :  =  6 <.HOI OaY a CI C CL J} J J 3-m 3- 3-l ' ' 'T i0M i0 i0XW- Wt := : : <9= <9 <9~ F/ F F: -  " /- / /    : 	 	 	r;   