
    k7iO1                        S SK r S SKrS SKJrJrJrJrJrJrJ	r	  S SK
r
S SK
Jr  \R                  S:  a  S SKJr  OS SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJr  S SKJrJr  \ R@                  RB                  r!\ R@                  RD                  r"\ R@                  RF                  r#\ R@                  RH                  r$\ R@                  RJ                  r%S r&\
RN                   " S	 S
5      5       r(S\)\*\(4   4S jr+  SS\)\*\(4   4S jjr,S\)\*\(4   4S jr-S\)\*\(4   4S jr.S\)\*\(4   4S jr/S\)\*\(4   4S jr0S\)\*\(4   4S jr1S\)\*\(4   4S jr2S\S\)\*\(4   4S jr3g)    N)	AnnotatedAnyClassVarOptionalget_args
get_originget_type_hints)field)      )Self)NotRequiredRequiredis_annotatedis_attrsis_dataclassis_enum_flagis_namedtupleis_pydanticis_pydantic_secretis_typeddictresolveresolve_annotatedresolve_optional)UNSET
is_builtinc                 X    [        U 5      (       d  U$ [        U4[        U 5      SS  -      $ )N   )r   r   r   )src_typedst_types     M/home/james-whalen/.local/lib/python3.13/site-packages/cyclopts/field_info.py_replace_annotated_typer"   -   s0    !!h[8H#5ab#99::    c            
          \ rS rSr% SrSr\\S4   \S'   \	R                  R                  r\	R                  \S'   \" SSS	9r\\S
'   \" \	R                  R"                  SS9r\\S'   \" \	R                  R"                  SS9r\\S'   \" SSS9r\S-  \S'    \	R                  R"                  r\\S'   \	R                  R                  r\\S'   \	R                  R.                  r\\S'   \	R                  R0                  r\\S'   \	R                  R2                  r\\S'   \	R                  R4                  r\\S'   \" \\\15      r\\\	R                        \S'   \" \\\15      r\\\	R                        \S'   \\SS.S\	R                  S\S
\S-  S\ 4S jj5       r!\"S 5       r#\"S 5       r$\"S\4S j5       r%\"S\4S j5       r&\"S\4S  j5       r'\"S\4S! j5       r(S" r)Sr*g)#	FieldInfo3   z(Extension of :class:`inspect.Parameter`. .nameskindTF)kw_onlydefaultrequired)r+   r*   r+   
annotationNhelpemptyPOSITIONAL_OR_KEYWORDPOSITIONAL_ONLYKEYWORD_ONLYVAR_POSITIONALVAR_KEYWORD
POSITIONALKEYWORDr-   r,   iparamreturnc                4   UcX  UR                   UR                  L =(       a9    UR                  UR                  :g  =(       a    UR                  UR                  :g  nU " UR
                  4U[        L a  UR                  OUUR                  UR                   US9$ )N)r(   r-   r)   r+   r,   )r+   r/   r)   r4   r3   namer   r-   )clsr8   r-   r,   s       r!   from_iparamFieldInfo.from_iparamO   s    &,,. 9KK6#5#559KK6#8#88  ;;.,6%,?v((ZNN
 	
r#   c                 B   U R                   nU[        R                  R                  L d  [	        U5      [
        L aX  [        XR                  [        R                  R                  L d  U R                  c  [        O[        U R                  5      5      n[        U5      nU$ )z=Annotation with Optional-removed and cyclopts type-inferring.)r-   inspect	Parameterr/   r   r   r"   r+   strtyper   )selfhints     r!   rE   FieldInfo.hint`   sy     7$$***gdms.B*\\W->->-D-DDH\cbfgkgsgsbtD  %r#   c                      U R                   S   $ )zThe **first** provided name.r   )r(   rD   s    r!   r;   FieldInfo.namek   s     zz!}r#   c                 4    U R                   U R                  ;   $ N)r)   r5   rH   s    r!   is_positionalFieldInfo.is_positionalp   s    yyDOO++r#   c                 4    U R                   [        [        4;   $ rK   )r)   r1   r3   rH   s    r!   is_positional_onlyFieldInfo.is_positional_onlyt   s    yy_n===r#   c                 4    U R                   U R                  ;   $ rK   )r)   r6   rH   s    r!   
is_keywordFieldInfo.is_keywordx   s    yyDLL((r#   c                 4    U R                   [        [        4;   $ rK   )r)   r2   r4   rH   s    r!   is_keyword_onlyFieldInfo.is_keyword_only|   s    yy\;777r#   c                 0    [         R                  " U 40 UD6$ rK   )attrsevolve)rD   kwargss     r!   rY   FieldInfo.evolve   s    ||D+F++r#   )+__name__
__module____qualname____firstlineno____doc__r(   tuplerB   __annotations__r@   rA   r0   r)   _ParameterKindr
   r,   boolr/   r+   r   r-   r.   r   r1   r2   r3   r4   	frozensetr5   r6   classmethodr   r   r=   propertyrE   r;   rL   rO   rR   rU   rY   __static_attributes__r'   r#   r!   r%   r%   3   sO   2E5c?#*#4#4#J#JD'
 
 J47Hd7!2!2!8!8$GGSGG$5$5$;$;TJJJT48D#*8p
 ''--E8-&-&7&7&M&M8M ' 1 1 A AOXA$..;;L(;&00??NH?#--99K9>G	@?J7#9#9:;  <EF[]ikvEw;xGXi 6 678xINhl 
!2!2 
3 
Z^aeZe 
qu 
 
      ,t , , >D > > )D ) ) 8 8 8,r#   r%   r9   c                    0 n[        U SS9R                  5        Hc  u  p#[        [        U5      5      nU[        L a  SnO"U[
        L a  SnOU R                  (       a  SnOSn[        U4[        R                  X5S9X'   Me     U$ )NTinclude_extrasFr7   )	r	   itemsr   r   r   r   	__total__r%   r2   )	typeddictoutr;   r-   originr,   s         r!   _typed_dict_field_infosrq      s    
C*9TJPPR-j9:XH{"H  HHtgy'='=*h	 S Jr#   c                    0 n[        U R                  5      R                  5        H_  u  pEUR                  S:X  a  M  U(       d  UR                  UR
                  L a  M9  U(       d  UR                  UR                  L a  M[  XSU'   Ma     U$ )NrD   )signature_parameters__init__rl   r;   r)   r3   r4   )finclude_var_positionalinclude_var_keywordro   r;   
field_infos         r!   _generic_class_field_infosry      st    
 C0<BBD??f$%*//Z=V=V*V"z*:P:P'PD	 E Jr#   c           
         SSK Jn  0 nU R                  R                  5        GH  u  p4/ nUR                  (       a~  U R
                  R                  SS5      (       a  UR                  U5        UR                  UR                  5        UR                  R                  5       nXe;  a  UR                  U5        OUR                  U5        UR                  =(       d    S nUR                   H5  n[        US5      (       d  M  UR                  (       d  M)  UR                  nM7     UR                  (       a+  [        UR                  4[        UR                  5      -      n	OUR                  n	[        [        U5      UR                   (       a  ["        R$                  R&                  O["        R$                  R(                  U	UR*                  UL a  [        R,                  OUR*                  UR/                  5       US9X#'   GM     U$ )Nr   )PydanticUndefinedpopulate_by_nameFdescription)r(   r)   r-   r+   r,   r.   )pydantic_corer{   model_fieldsrl   aliasmodel_configgetappendlowerr}   metadatahasattrr   r-   ra   r%   r*   r@   rA   r2   r0   r+   r/   is_required)
modelr{   ro   python_namepydantic_fieldr(   legacy_formr.   metar-   s
             r!   _pydantic_field_infosr      s   /
C','9'9'?'?'A#!!%%&8%@@[)LL--. )..446K'[)LL% ))1T"++Dt]++0@0@0@'' , """N$=$=#?%H_H_B`#`aJ'22J$,3A3I3I""//wO`O`OvOv!'5'='=AR'RIOOXfXnXn#//1
? (BN Jr#   c           
         0 n[        U 5      nU R                   Hi  n[        U4[        R                  UR	                  U[
        5      U R                  R	                  U[        R                  5      X0R                  ;  S9X'   Mk     U$ )Nr(   r)   r-   r+   r,   )r	   _fieldsr%   r0   r   rB   _field_defaultsr/   )rE   ro   
type_hintsr;   s       r!   _namedtuple_field_infosr      st    
C%J'00!~~dC0((,,T9??C!5!55
	  Jr#   c                     0 n[        U R                  5      nU R                   H  nUR                  (       d  M  X#R                     n[        UR                  [        R                  5      (       a  SnS nO>UR                  [        R                  L a  Sn[        R                  nOSnUR                  nUR                  (       a  UR                  R                  S5      OS nUR                  UR                  4XVUS9XR                  '   M     U$ )NFTr.   )r(   r,   r+   r.   )rs   rt   __attrs_attrs__initr   
isinstancer+   rX   FactoryNOTHINGr%   r/   r   r   rY   r;   )rE   ro   field_infos	attributerx   r,   r+   r.   s           r!   _attrs_field_infosr      s    
C&t}}5K))	~~ 1
i''77HG%--/HooGH''G1:1C1Cy!!%%f-)00??$xt  1  
OO% ** Jr#   c           
         SS K n0 nUR                  U 5      n[        U SS9nU GH^  nUR                  UR                  La  UR                  5       nSnO:UR
                  UR                  La  UR
                  nSnO[        R                  nSnUR                  UR                  [        R                  5      nUR                  (       a  [        R                  O[        R                  n	S n
UR                  (       a=  UR                  R                  S5      =(       d    UR                  R                  S5      n
U
(       d  [        US5      (       a  UR                  n
[        UR                  4U	UUUU
S9X%R                  '   GMa     U$ )Nr   Trj   Fr.   doc)r(   r)   r,   r-   r+   r.   )dataclassesfieldsr	   default_factoryMISSINGr+   r%   r/   r   r;   r*   r2   r0   r   r   r   )rE   r   ro   r   r   ru   r+   r,   r-   r)   r.   s              r!   _dataclass_field_infosr      s0   
C%FT:JK$7$77'')GHYYk111iiGHooGH^^AFFIOO<
)*y%%	8W8W ::::>>&)BQZZ^^E-BD5))55D66)!
FF3 B Jr#   c           	      t    0 nU R                    H%  n[        U4[        R                  [        SSS9X'   M'     U$ )zNExtract field infos from a Flag enum, treating each member as a boolean field.Fr   )__members__r%   r2   rd   )	enum_flagro   member_names      r!   _enum_flag_field_infosr   '  sD    
C ,,$.'' 	
 - Jr#   c                    [        U 5      (       a  0 $ [        U 5      (       a  0 $ [        U S5      (       a  [        U R                  5      $ [        U 5      (       a  [        U 5      $ [        U 5      (       a  [        U 5      $ [        U 5      (       a  [        U 5      $ [        U 5      (       a  [        U 5      $ [        U 5      (       a  [        U 5      $ [        U 5      (       a  [!        U 5      $ [#        U 5      $ )N__supertype__)r   r   r   get_field_infosr   r   r   r   r   r   r   r   rq   r   r   r   r   ry   )rE   s    r!   r   r   8  s     $	 $	 t_%%t1122D &d++	T		$T**	t		&t,,	d		&t,,	$!$''	d		%d++)$//r#   ru   c                 b   S[         R                  ;   a%  SSKJn  [	        X5      (       a  U R
                  OU nOU n[        USS9n0 n[        R                  " U 5      R                  R                  5        H5  u  pVUR                  XVR                  5      n[        R                  XgS9XE'   M7     U$ )N	functoolsr   )partialTrj   )r-   )sysmodulesr   r   r   funcr	   r@   	signature
parametersrl   r   r-   r%   r=   )ru   r   r   r   ro   r;   r8   r-   s           r!   rs   rs   Y  s    ckk!%#A//qvvQT:J
C))!,77==?^^D*;*;<
))&)H	 @ Jr#   )FF)4r@   r   typingr   r   r   r   r   r   r	   rX   r
   version_infor   typing_extensionscyclopts.annotationsr   r   r   r   r   r   r   r   r   r   r   r   r   cyclopts.utilsr   r   rA   r0   r1   r2   r3   r4   r"   definer%   dictrB   rq   ry   r   r   r   r   r   r   rs   r'   r#   r!   <module>r      s    
    w&    -))?? ##33  --""11++; M, M, M,`$sI~*> & ! 
#y.	"+Di$8 +\T#y.%9 S)^ 4 6'Di$8 'Tc9n)= "0T#y.1 0BC Di$8 r#   