+
    Q(iwR                     8   ^ RI t^ RIt^ RIt^ RIt^ RI HtHtHt ^ RIH	t	 ^ RI
HtHtHtHtHtHtHt ^ RIt^ RIHtHt ]P*                  R8  d   ^ RI
Ht M^ RIHt ^ RIt^ RIHtHtHtHtHtH t H!t!H"t" ^ RI#H$t$H%t% ^ R	I&H't' ^ R
I(H)t)H*t*H+t+H,t,H-t- ].! ]]/,          ]]/,          ]P`                  P                  ]/,          ]1]/,          ]]/,          ]2]/R3,          ]]/R3,          04      t3]! R4      t4].! ]/R].]O]3O4      t5R t6R R lt7R R lt8R t9],! R4      ]* ! R R4      4       4       t:]:Pv                   U u/ uF.  p V Px                  '       g   K  V Pz                  V P|                  bK0  	  up t?]:! 4       t@R R ltARR R lltB] ! R R4      4       tCR# u up i )    N)CallableIterableSequence)deepcopy)AnyListTupleTypeVarcastget_args
get_origin)definefieldSelf)ITERABLE_TYPESNoneTypeis_annotatedis_nonetypeis_unionresolveresolve_annotatedresolve_optional)get_field_infossignature_parameters)Group)default_name_transformfrozenoptional_to_tuple_converterrecord_initto_tuple_converter.Tc                     V F8  pVf   K	  VP                  R4      '       g   K"  \        VP                   R24      h	  R # )N-z value must NOT start with "-".)
startswith
ValueErroralias)instance	attributevaluesvalues   &&& X/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/cyclopts/parameter.py_not_hyphen_validatorr-   @   s:    !1!1#!6!6	00OPQQ     c                >    V ^8  d   QhR\         \        R3,          /# )   default.tuplestr)formats   "r,   __annotate__r6   F   s      sCx r.   c                    a  R  V 3R llpV# )c                >    V ^8  d   QhR\         \        R3,          /# r0   return.r2   )r5   s   "r,   r6   )_negative_converter.<locals>.__annotate__G   s     - -E#s(O -r.   c                 &   < V f   S# \        V 4      # N)r!   )r+   r1   s   &r,   	converter&_negative_converter.<locals>.converterG   s    =N%e,,r.    r1   r>   s   f r,   _negative_converterrB   F   s    - - r.   c                b    V ^8  d   QhR\         \        \        R,          3,          R,          /# r0   r:   N)r3   int)r5   s   "r,   r6   r6   P   s(     !x !x%S4Z*@4*G !xr.   c                   V e   V RJ d   R# V RJ d   R# \        V \        4      '       d   V ^ 8  d   \        RV  R24      hV R3# \        V \        4      '       Ed    \	        V 4      ^8w  d   \        R\	        V 4       R24      hV w  rVf   VR3# \        V\        4      '       dC   \        V\
        4      '       g-   \        V\        4      '       d   \        V\
        4      '       d9   \        R\        V4      P                   R\        V4      P                   R	24      hV^ 8  g   V^ 8  d   \        R
V RV R	24      hW8  d   \        RV RV R	24      hW3# \        R\        V 4      P                   R24      h)zNormalize consume_multiple into (min, max) or None.

Returns
-------
tuple[int, int | None] | None
    ``None`` if consume_multiple is disabled (``None`` or ``False``).
    ``(min, max)`` where ``max=None`` means unlimited.
NFTz5consume_multiple int value must be non-negative, got .zGconsume_multiple sequence must have exactly 2 elements (min, max), got z5consume_multiple sequence elements must be int, got (, z).z<consume_multiple sequence values must be non-negative, got (z*consume_multiple min must be <= max, got (zHconsume_multiple must be None, bool, int, or a (min, max) sequence, got )r   N)	
isinstancerE   r&   r   lenbool	TypeErrortype__name__)r+   mnmxs   &  r,   _consume_multiple_converterrQ   P   s    }}%19TUZT[[\]^^t}%""u:?fgjkpgqfrrstuu::"c""jT&:&:*RQTBUBUYcdfhlYmYmGRHYHYGZZ\]abd]e]n]n\ooqr  6R!V[\^[__abdaeeghii7I"RPRtSUVWWx
^_cdi_j_s_s^ttuv
wwr.   c                ^    \        V \        4      '       d   \        P                  ! V 4      # V # )zConvert string patterns to compiled regex, pass through other types.

Note: re.compile() internally caches compiled patterns, so no additional
caching is needed here.
)rI   r4   recompile)r+   s   &r,   _parse_converterrU   t   s%     %zz%  Lr.   _provided_argsc                   0  a  ] tR t^t o Rt]! RR R7      t]! RRR7      t]! R"R RR7      t]! RR	 RR7      t	]! R]
RR7      t]! R]RR
R7      t]! R]RR7      t]! RRRR7      t]! RRR7      t]! R]P&                  P)                  R4      RR7      t]! RRR7      t]! R]P&                  P)                  R4      RR7      t]! RR RR7      t]! ]P4                  P6                  RR7      t]! R]! R#4      ]RR7      t]! R]! R$4      ]RR7      t]! R]! R"4      ]RR7      t ]! RRR7      t!]! R
RR7      t"]! R
RR7      t#]! RRRR7      t$]! RRR7      t%]! R]&RR7      t']! RRR7      t(]! RRR7      t)]! R]P&                  P)                  R
4      RR7      t*]! RRR7      t+]! RRR7      t,]! ]-R
R
R7      t.]/V 3R lR l4       t0]/R 4       t1V 3R lR lt2R t3]4V 3R lR l4       t5]4V 3R lR l4       t6]4V 3R lR l4       t7V 3R lR  lt8V 3R! lt9R"t:V t;R# )%	Parametera  Cyclopts configuration for individual function parameters with :obj:`~typing.Annotated`.

Example usage:

.. code-block:: python

    from cyclopts import app, Parameter
    from typing import Annotated

    app = App()


    @app.default
    def main(foo: Annotated[int, Parameter(name="bar")]):
        print(foo)


    app()

.. code-block:: console

    $ my-script 100
    100

    $ my-script --bar 100
    100
Nc                N    \        \        \        R 3,          \        V 4      4      # .r   r3   r4   r!   xs   &r,   <lambda>Parameter.<lambda>       DsCx2DQ2GHr.   rA   T)r1   kw_onlyc                |    \        \        \        \        \        .\        3,          R 3,          \	        V 4      4      # rZ   )r   r3   r   r   r!   r\   s   &r,   r^   r_      s)    Dxc
C'@#'E!FHZ[\H]^r.   )r1   r>   ra   c                N    \        \        \        R 3,          \        V 4      4      # rZ   r[   r\   s   &r,   r^   r_      r`   r.   F)r1   r>   ra   hashshow)r1   r'   ra   c                N    \        \        \        R 3,          \        V 4      4      # rZ   r[   r\   s   &r,   r^   r_      r`   r.   )r1   r>   	validatorra   name_transform)r'   r1   ra   )factoryiniteqc                .   < V ^8  d   QhRS[ R,          /# rD   )rK   )r5   __classdict__s   "r,   r6   Parameter.__annotate__E  s        dTk  r.   c                    V P                   e   V P                   # V P                  e+   \        V P                  \        P                  4      '       d   R # \        V P                  4      # r=   )_showparserI   rS   PatternrK   selfs   &r,   re   Parameter.showD  sF    ::!::::DJJ

!C!CDJJr.   c                J    V P                   '       d   V P                   # \        # r=   )_name_transformr   rs   s   &r,   rh   Parameter.name_transformL  s    '+';';';t##WAWWr.   c                4   < V ^8  d   QhRS[ S[R3,          /# r9   r2   )r5   rm   s   "r,   r6   rn   P  s     ; ;eCHo ;r.   c           	     ,   V P                   '       d   V P                  f   R# \        V4      p\        V4      '       da   \	        V4      p\        VR R7      p. pV F4  pV P                  V4       F  pWd9  g   K  VP                  V4       K  	  K6  	  \        V4      # \        V4      pV\        9  d   V'       d   V\        9  d   R# MR# . . rV P                  '       dQ   V P                   F-  p	V	P                  R4      '       d   TMTP                  V	4       K/  	  V'       g   \        V4      # \        V P                  \        4      '       g   Q hV P                   EF&  p
V
P                  R4      '       g   K  V
R,          p
V
P                  R4      pV\        J g   V\         9   d   V P"                  pM.\%        V4      '       g   Vf   V P&                  pMV P(                  pRP+                  VR R 4      pV'       d
   VR,          p\        V\        4      '       g   Q hV P                  f6   V F,  pV'       g   K  VP                  RV V VR,           24       K.  	  EK  V F  p	VP                  RV V	 24       K  	  EK)  	  \        V4      # )	Nc                 0    \        V 4      ;'       g    V R J # r=   )r   r\   s   &r,   r^   )Parameter.get_negatives.<locals>.<lambda>Z  s    KN<W<WaSWi<Wr.   )keyr$   z--:r0   NNrG   r@   )countnegativer   r   r   sortedget_negativesappendr3   r   _NEGATIVE_FLAG_TYPESr%   rI   namesplitrK   ITERATIVE_BOOL_IMPLICIT_VALUEnegative_boolr   negative_nonenegative_iterablejoin)rt   type_
union_argssorted_argsoutr]   negoriginuser_negativesr   r   name_componentsnegative_prefixesname_prefixnegative_prefixs   &&             r,   r   Parameter.get_negativesP  s1   :::$--/I!%(E??!%J !1XYKC --a0C~

3 1 ! :E",,!55I 6 	 "^=== MM ++C00nLLXV * "Sz!$))U++++IID??4((8D"jjoO})F F$($6$6!U##u}$($6$6!$($:$:!((?3B#78Ks"/7777}}$'8O&

R}_4EoVXFYEZ#[\ (9 !/HJJK=
;< !/+ . Szr.   c                   RP                  V P                   Uu. uFE  pVP                  V P                  9   g   K   VP                   R\	        WP
                  4      : 2NKG  	  up4      p\        V 4      P                   RV R2# u upi )zOnly shows non-default values.rH   =())r   __attrs_attrs__r'   rV   getattrr   rM   rN   )rt   acontents   &  r,   __repr__Parameter.__repr__  s    )) ---A77d111 7177)1WT66256-
 t*%%&ay22s
   B)Bc                "   < V ^8  d   QhRRRR/# )r0   
parametersParameter | Noner:   rX   r@   )r5   rm   s   "r,   r6   rn     s      "4  r.   c                   / pV Uu. uF
  q3f   K  VNK  	  pp\        V4      ^8X  d
   V^ ,          # V'       g   \        # V F/  pVP                   F  p\        V\        V,          4      W&&   K  	  K1  	  V ! R/ VB # u upi )zReturns a new Parameter with combined values of all provided ``parameters``.

Parameters
----------
*parameters : Parameter | None
     Parameters who's attributes override ``self`` attributes.
     Ordered from least-to-highest attribute priority.
r@   )rJ   EMPTY_PARAMETERrV   r   _parameter_alias_to_name)clsr   kwargsr]   filtered	parameterr'   s   &*     r,   combineParameter.combine  s     );z!AAz; x=AA;""!I"11 '	3KE3R S 2 " }V} <s
   A=A=c                    < V ^8  d   QhRS[ /# )r0   r:   r   )r5   rm   s   "r,   r6   rn     s     
 
 
r.   c           	         T ! R/ V P                    Uu/ uF-  qP                  '       g   K  VP                  VP                  bK/  	  upB # u upi )zCreate a Parameter with all Cyclopts-default values.

This is different than just :class:`Parameter` because the default
values will be recorded and override all upstream parameter values.
r@   )r   rj   r'   r1   )r   r   s   & r,   r1   Parameter.default  sG      
+.+>+>I+>a&&!qww		!+>I
 	
Is
   AAc                >   < V ^8  d   QhRS[ RRRS[S[ R3,          /# )r0   r   default_parametersr   r:   rX   )r   r3   )r5   rm   s   "r,   r6   rn     s5     	H 	HC 	H>P 	HUZ[^`k[kUl 	Hr.   c                    V\         P                  P                  J d"   V'       d   WP                  ! V!  3# V\        3# \        V4      w  rWP                  ! . VOVO5!  3# )z1Resolve the immediate Parameter from a type hint.)inspectrX   emptyr   r   get_parameters)r   r   r   r   s   &&* r,   from_annotationParameter.from_annotation  sa     G%%+++!kk+=>>>o-- .u 5E++G'9GJGGGr.   c                &   < V ^8  d   QhRS[ RS[ /# )r0   objr:   )r"   )r5   rm   s   "r,   r6   rn     s      A ! r.   c                   \        VR4      '       g   \        VR7      Vn        M5VP                  P                  V8w  d   \	        VP                  4      Vn        VP                  P
                  P                  V 4       V# )zDecorator interface for annotating a function/class with a :class:`Parameter`.

Most commonly used for directly configuring a class:

.. code-block:: python

    @Parameter(...)
    class Foo: ...
__cyclopts__)r   )hasattrCycloptsConfigr   r   r   r   r   )rt   r   s   &&r,   __call__Parameter.__call__  sd     sN++-#6C!!S('(8(89C##**40
r.   c                "  < V ^8  d   Qh/ RS[ ,          S[S[ ,          ,          ;R&   S[RS[3,          S[ ,          R,          ;R&   RS[S[S[.S[3,          ,          S[S[S[S[.S[3,          ,          ,          ;R&   RS[ ,          S[S[ ,          ,          ;R&   RS[ ,          S[S[ ,          ,          ;R&   RS[,          S[ ,          S[S[S[ ,          ,          ,          ;R&   S[S[P                  ,          R,          ;R	&   S[R,          ;R
&   RS[,          S[S[.S[3,          ,          ;R&   S[;R&   S[ R,          ;R&   S[;R&   RS[ ,          S[S[ ,          ,          ;R&   S[;R&   RS[ ,          S[S[ ,          ,          ;R&   RS[ ,          S[S[ ,          ,          ;R&   RS[ ,          S[S[ ,          ,          ;R&   S[R,          ;R&   S[;R&   S[;R&   S[S[ .S[ 3,          R,          ;R&   S[R,          ;R&   RS[,          S[,          S[	S[,          ,          S[
S[S[R,          3,          ,          ;R&   S[R,          ;R&   S[R,          ;R&   S[;R&   S[R,          ;R&   S[R,          ;R&   S[
S[ R3,          ;R&   # ) r0   Nr   .r>   rg   r'   r   grouprq   rp   show_defaultshow_choiceshelpshow_env_varenv_varenv_var_splitr   r   r   requiredallow_leading_hyphenrequires_equalsrw   accepts_keysconsume_multiple	json_dict	json_listr   allow_repeatingn_tokensrV   )r4   r   r   r   r   rK   rS   rr   rE   r   r3   )r5   rm   s   "r,   r6   rn      s    F *x}
$ G R S!C'$. S ^ hSz3//(8S#JPSO;T2UU _ l #:% m z Sj8C=( { H %<# 55 I V "**t# W b $; c n +# 44 o x  y D *8E H  I V CZ(3-' W b  c n #:- o ~ czHSM1  N #:- O \ Tk ] f  g p  q z seSj)D0 { F + G P TkC'(3-7%S4Z:PP Q \ d{>] ` d{>a d  e p D[ q z Dj { F #s(OPG r.   r@   )zno-)zempty-)<rN   
__module____qualname____firstlineno____doc__r   r   r>   rg   r'   r   r   r!   r   rU   rq   rp   r   attrs
convertersdefault_if_noner   r   r   r   cyclopts_env_varr   rB   r-   r   r   r   r   r   r   rw   r   rQ   r   r   r   r   r   r   r3   rV   propertyre   rh   r   r   classmethodr   r1   r   r   __annotate_func____static_attributes____classdictcell__rm   s   @r,   rX   rX      s    @ (-H(D 272I Y^^YI ).H)E ,1-,H 9>$	9E ',"'E E 8=8L
 ""2248L T48D""2248L +0H+G $!!//M 16%h/'	1M 5:%k2'	5 16%b)'	1M "H
 "'"
 "O
 494O !&!L
 TY-T #4>I"4>I""2259E $)$O
 !H ',E%&PN    X X; ;z	3  0 
 
 	H 	H S
  r.   rX   c                $    V ^8  d   QhR\         /# )r0   f)r   )r5   s   "r,   r6   r6     s     3 3 3r.   c                F   V P                   ;'       g    RP                  R4      '       d   R# \        V 4      P                  4        EFU  p\	        VP
                  4      pV'       g    \        VP
                  RR4      '       g   K@  \        P                  VP
                  4      w  r4VP                  e   \        VP                  \        P                  4      '       g^   VP                  '       gL   VP                  VP                  J pVP                  VP                   JpV'       g   V'       g   \#        R4      hRVP$                  9   g   EK
  VP                  VP                   J g   EK'  VP
                  p\'        V4      p\)        V4      p\*        ;QJ d*    R VP                  4        4       F  '       d   K   RM	  R	M! R VP                  4        4       4      p	V	'       g   EK  VP,                  '       d   VP,                  ^ ,          MRp
V
'       d   R
V
 R2MRp\#        RV RV  RV
 RVP
                  P.                   RVP
                  P.                   RV
 RVP
                  P.                   RV
 RV
 RV
 RVP
                  P.                   R24      h	  R# )zValidate if a function abides by Cyclopts's rules.

Raises
------
ValueError
    Function has naming or parameter/signature inconsistencies.
 r   Nr   zuParameter.parse=False must be used with either a KEYWORD_ONLY function parameter or a parameter with a default value.*c              3   B   "   T F  qP                   '       * x  K  	  R # 5ir=   )r   ).0
field_infos   & r,   	<genexpr>#validate_command.<locals>.<genexpr>  s     %kPj**=*=&=&=Pjs   FT"z" z
Parameter zin function z has all optional values, uses Parameter(name="*"), but itself has no default value. Consider either:
    1) If immutable, providing a default value "z: z = z2()"
    2) Otherwise, declaring it optional like "z# | None = None" and instanting the z, object in the function body:
           if z is None:
               z())r   r%   r   r*   r   
annotationr   rX   r   rq   rI   rS   rr   kindKEYWORD_ONLYr1   r   r&   r   r   r   allnamesrN   )r   r   field_info_is_annotated_cparamis_keyword_onlyhas_default	annotatedclass_field_infosall_fields_optional
param_namequoted_param_names   &           r,   validate_commandr     sn    	
&&z22*1-446
".z/D/D"E&wz7L7Ln^b/c/c --j.C.CD	<<#Jv||RZZ,P,PY_YeYeYe(oo1H1HHO$,,J4D4DDK#{ ;  6;;""j&6&66 #--I	*I /	 :"%#%kPaPhPhPj%k###%kPaPhPhPj%k"k""4>4D4D4DZ--a0"
:Da
|2$6"!  !2 3<s CGGQlRTU_UjUjUsUsTttw  yC  yN  yN  yW  yW  xX XEEOLPRS]ShShSqSqRr  sV  Wa  Vb b%%/L 1&&0\Z5J5J5S5S4TTVX E 7r.   c          	      t    V ^8  d   QhR\         R\        R\        \         \        \        ,          3,          /# )r0   hintskip_converter_paramsr:   )r"   rK   r3   listrX   )r5   s   "r,   r6   r6     s5     D D D4 DE!TR[_J\D] Dr.   c                   \        V 4      p . p\        V 4      '       d?   \        V 4      pV^ ,          p VP                  R VR,           4       4       \        V 4      p . p\	        V RR4      ;p'       d   VP                  VP
                  4       . pV'       EgD   W$,            EF6  pVP                  '       g   K  VP                  p\        V\        4      '       d   \	        W4      p\        VR4      '       d(   VP                  VP                  P
                  4        M\        VR4      '       g   K  \        VR4      '       g   K  \        VP                  R4      '       g   K  VP                  P                  P                  VP                  4      p	V	'       g   K  \        V	R4      '       g   EK  VP                  V	P                  P
                  4        M	  Wd,           V,           p
W
3# )ag  At root level, checks for cyclopts.Parameter annotations.

Includes checking the ``__cyclopts__`` attribute on both the type and any converter functions.

Parameters
----------
hint
    Type hint to extract parameters from.
skip_converter_params
    If True, skip extracting parameters from converter's __cyclopts__.
    Used to prevent infinite recursion in token_count.

Returns
-------
hint
    Annotation hint with :obj:`Annotated` and :obj:`Optional` resolved.
list[Parameter]
    List of parameters discovered, ordered by priority (lowest to highest):
    converter-decoration < type-decoration < annotation.
c              3   V   "   T F  p\        V\        4      '       g   K  Vx  K!  	  R # 5ir=   )rI   rX   )r   r]   s   & r,   r   !get_parameters.<locals>.<genexpr>6  s     Q9a
1i8P9s   )
):   NNr   N__self__rN   __dict__)r   r   r   extendr   r   r>   rI   r4   r   r   r  r  getrN   )r   r   annotated_paramsinnertype_cyclopts_config_paramscyclopts_configconverter_paramsparamr>   
descriptorr   s   &&         r,   r   r     s   * D!D DQxQ59QQ% #%!$===#**?+E+EF   %CCE!OO	 i-- ' 8I 9n55$++I,B,B,M,MN Iz22	:66	 2 2J?? "+!3!3!<!<!@!@ASAS!TJ!zgj.&I&I(//
0G0G0R0RS- D4 "?BRRJr.   c                   H   a  ] tR tRt o RtRt]! ]RR7      tV 3R lt	Rt
V tR# )r   ia  zV
Intended for storing additional data to a ``__cyclopts__`` attribute via decoration.
NF)ri   rj   c                B   < V ^8  d   Qh/ S[ ;R&   S[S[,          ;R&   # )r0   r   r   )r   r   rX   )r5   rm   s   "r,   r6   CycloptsConfig.__annotate__a  s"      
O  YA r.   r@   )rN   r   r   r   r   r   r   r   r   r   r   r   r   s   @r,   r   r   a  s$      C"'5"AJ  r.   r   )      )F)Dcollections.abccollectionsr   rS   sysr   r   r   copyr   typingr   r   r	   r
   r   r   r   r   r   r   version_infor   typing_extensionscyclopts._env_varr   cyclopts.annotationsr   r   r   r   r   r   r   r   cyclopts.field_infor   r   cyclopts.groupr   cyclopts.utilsr   r   r   r    r!   	frozensetrK   abcr   r3   r   r"   r   r-   rB   rQ   rU   rX   r   rj   r'   r   r   r   r   r   r   )ps   0r,   <module>r#     s     	 
 8 8     w& 	 	 	 F    !*  &T
T
dCidCi
!  CL $h!h!hJg!hi R!xH W W  Wx
 &&&vv AGGQVVO&  +3lDN B B BOs   :FF