
    !<iO1                        d dl Z d dlZd dlmZmZmZmZmZmZm	Z	 d dl
Z
d dl
mZ ej        dk    rd dlmZ nd dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZ e j         j!        Z!e j         j"        Z"e j         j#        Z#e j         j$        Z$e j         j%        Z%d Z&e
j'         G d	 d
                      Z(de)e*e(f         fdZ+	 	 dde)e*e(f         fdZ,de)e*e(f         fdZ-de)e*e(f         fdZ.de)e*e(f         fdZ/de)e*e(f         fdZ0de)e*e(f         fdZ1de)e*e(f         fdZ2dede)e*e(f         fdZ3dS )    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                 p    t          |           s|S t          |ft          |           dd          z            S )N   )r   r   r   )src_typedst_types     /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/cyclopts/field_info.py_replace_annotated_typer"   -   s:    !! h[8H#5#5abb#99::    c            
       \   e Zd ZU dZdZeedf         ed<   ej	        j
        Zej        ed<    edd          Zeed	<    eej	        j        d
          Zeed<    eej	        j        d
          Zeed<    edd
          Zedz  ed<   	 ej	        j        Zeed<   ej	        j
        Z
eed<   ej	        j        Zeed<   ej	        j        Zeed<   ej	        j        Zeed<   ej	        j        Zeed<    ee
eeh          Zeeej                          ed<    ee
eeh          Zeeej                          ed<   eedddej	        ded	edz  defd            Z e!d             Z"e!d             Z#e!defd            Z$e!defd            Z%e!defd            Z&e!defd             Z'd! Z(dS )"	FieldInfoz(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                    |.|j         |j        u o|j        |j        k    o|j        |j        k    } | |j        f|t          u r|j        n||j        |j         |          S )N)r'   r,   r(   r*   r+   )r*   r.   r(   r3   r2   namer   r,   )clsr7   r,   r+   s       r!   from_iparamzFieldInfo.from_iparamO   s    &,. 9K6#559K6#88  s;.,6%,?,?v((ZN
 
 
 	
r#   c                    | j         }|t          j        j        u st	          |          t
          u rHt          || j        t          j        j        u s| j        t          nt          | j                            }t          |          }|S )z=Annotation with Optional-removed and cyclopts type-inferring.)r,   inspect	Parameterr.   r   r   r"   r*   strtyper   )selfhints     r!   rC   zFieldInfo.hint`   s~     7$***gdmms.B.B*T\W->-DDDH\ccbfgkgsbtbt D  %%r#   c                     | j         d         S )zThe **first** provided name.r   )r'   rB   s    r!   r:   zFieldInfo.namek   s     z!}r#   c                     | j         | j        v S N)r(   r4   rE   s    r!   is_positionalzFieldInfo.is_positionalp   s    yDO++r#   c                 ,    | j         t          t          fv S rG   )r(   r0   r2   rE   s    r!   is_positional_onlyzFieldInfo.is_positional_onlyt   s    y_n===r#   c                     | j         | j        v S rG   )r(   r5   rE   s    r!   
is_keywordzFieldInfo.is_keywordx   s    yDL((r#   c                 ,    | j         t          t          fv S rG   )r(   r1   r3   rE   s    r!   is_keyword_onlyzFieldInfo.is_keyword_only|   s    y\;777r#   c                 &    t          j        | fi |S rG   )attrsevolve)rB   kwargss     r!   rQ   zFieldInfo.evolve   s    |D++F+++r#   ))__name__
__module____qualname____doc__r'   tupler@   __annotations__r>   r?   r/   r(   _ParameterKindr
   r+   boolr.   r*   r   r,   r-   r   r0   r1   r2   r3   	frozensetr4   r5   classmethodr   r   r<   propertyrC   r:   rH   rJ   rL   rN   rQ   r&   r#   r!   r%   r%   3   s        22E5c?#*#4#JD'
 JJJU4777Hd7775!2!8$GGGGSGGGeG$5$;TJJJJJJJuT4888D#*888p
 '-E8---&-&7&M8MMM ' 1 AOXAAA$.;L(;;;&0?NH???#-9K999>Gi	@? ?J7#9:;    <E9F[]ikvEw;x;xGXi 678xxxINhl 
 
 
!2 
3 
Z^aeZe 
qu 
 
 
 [
    X   X ,t , , , X, >D > > > X> )D ) ) ) X) 8 8 8 8 X8, , , , ,r#   r%   r8   c                    i }t          | d                                          D ]f\  }}t          t          |                    }|t          u rd}n|t
          u rd}n| j        rd}nd}t          |ft          j        ||          ||<   g|S )NTinclude_extrasFr6   )	r	   itemsr   r   r   r   	__total__r%   r1   )	typeddictoutr:   r,   originr+   s         r!   _typed_dict_field_infosrf      s    
C*9TJJJPPRR 
i 
ij-j99::XHH{""HH  	HHHtgy'=*_ghhhD		Jr#   Fc                     i }t          | j                                                  D ]8\  }}|j        dk    r|s|j        |j        u r"|s|j        |j        u r3|||<   9|S )NrB   )signature_parameters__init__ra   r:   r(   r2   r3   )finclude_var_positionalinclude_var_keywordrd   r:   
field_infos         r!   _generic_class_field_infosrn      s    
 C0<<BBDD  j?f$$% 	*/Z=V*V*V" 	z*:P'P'PD		Jr#   c           	      N   ddl m} i }| j                                        D ]\  }}g }|j        r}| j                            dd          r|                    |           |                    |j                   |j                                        }||vr|                    |           n|                    |           |j	        pd }|j
        D ] }t          |d          r|j	        r|j	        }!|j
        r)t          |j        ft          |j
                  z            }	n|j        }	t          t          |          |j        rt"          j        j        nt"          j        j        |	|j        |u rt          j        n|j        |                                |          ||<   |S )Nr   )PydanticUndefinedpopulate_by_nameFdescription)r'   r(   r,   r*   r+   r-   )pydantic_corerp   model_fieldsra   aliasmodel_configgetappendlowerrr   metadatahasattrr   r,   rW   r%   r)   r>   r?   r1   r/   r*   r.   is_required)
modelrp   rd   python_namepydantic_fieldr'   legacy_formr-   metar,   s
             r!   _pydantic_field_infosr      s   //////
C','9'?'?'A'A &
 &
#^ 	&!%%&8%@@ *[)))LL-... ).4466K%''[)))LL%%% )1T"+ 	( 	(Dt]++ (0@ ('
 " 	3"N$=#?%H_B`B`#`aJJ'2J$,,3A3Iv"//wO`Ov!'5'=AR'R'RIOOXfXn#//11
 
 
K Jr#   c           
         i }t          |           }| j        D ]g}t          |ft          j        |                    |t
                    | j                            |t          j                  || j        v          ||<   h|S )Nr'   r(   r,   r*   r+   )r	   _fieldsr%   r/   rw   r@   _field_defaultsr.   )rC   rd   
type_hintsr:   s       r!   _namedtuple_field_infosr      s    
C%%J 
 
'0!~~dC00(,,T9?CC!55
 
 
D		 Jr#   c                    i }t          | j                  }| j        D ]}|j        s
||j                 }t          |j        t          j                  rd}d }n+|j        t          j	        u rd}t          j        }n	d}|j        }|j        r|j                            d          nd }|                    |j        f|||          ||j        <   |S )NFTr-   )r'   r+   r*   r-   )rh   ri   __attrs_attrs__initru   
isinstancer*   rP   FactoryNOTHINGr%   r.   rz   rw   rQ   r:   )rC   rd   field_infos	attributerm   r+   r*   r-   s           r!   _attrs_field_infosr      s    
C&t}55K) 
 
	~ 	 1
i'77 	(HGG%-//HoGGH'G1:1CMy!%%f---)00?$xt  1  
  
JO Jr#   c           	      |   dd l }i }|                    |           }t          | d          }|D ]}|j        |j        ur|                                }d}n&|j        |j        ur
|j        }d}nt          j        }d}|                    |j	        t          j                  }|j
        rt          j        nt          j        }	d }
|j        r4|j                            d          p|j                            d          }
|
st          |d          r|j        }
t          |j	        f|	||||
          ||j	        <   |S )Nr   Tr_   Fr-   doc)r'   r(   r+   r,   r*   r-   )dataclassesfieldsr	   default_factoryMISSINGr*   r%   r.   rw   r:   r)   r1   r/   rz   r{   r   )rC   r   rd   r   r   rj   r*   r+   r,   r(   r-   s              r!   _dataclass_field_infosr      sY   
C%%FT:::J  
  
K$777''))GHHYk111iGHHoGH^^AFIO<<
)*Wy%%	8W : 	C:>>&))BQZ^^E-B-BD 	5)) 	5D6)!
 
 
AF Jr#   c                 l    i }| j         D ])}t          |ft          j        t          dd          ||<   *|S )zNExtract field infos from a Flag enum, treating each member as a boolean field.Fr   )__members__r%   r1   rZ   )	enum_flagrd   member_names      r!   _enum_flag_field_infosr   '  sR    
C , 

 

$.' 	
 	
 	
K Jr#   c                    t          |           ri S t          |           ri S t          | d          rt          | j                  S t          |           rt          |           S t          |           rt          |           S t          |           rt          |           S t          |           rt          |           S t          |           rt          |           S t          |           rt!          |           S t#          |           S )N__supertype__)r   r   r{   get_field_infosr   r   r   r   r   r   r   r   rf   r   r   r   r   rn   )rC   s    r!   r   r   8  s    $ 	 $ 	 t_%% 3t1222D 0 &d+++	T		 0$T***	t		 	0&t,,,	d		 0&t,,,	$ 0!$'''	d		 0%d+++)$///r#   rj   c                 b   dt           j        v r ddlm} t	          | |          r| j        n| }n| }t          |d          }i }t          j        |           j	        
                                D ]?\  }}|                    ||j                  }t                              ||          ||<   @|S )N	functoolsr   )partialTr_   )r,   )sysmodulesr   r   r   funcr	   r>   	signature
parametersra   rw   r,   r%   r<   )rj   r   r   r   rd   r:   r7   r,   s           r!   rh   rh   Y  s    ck!!%%%%%%#Aw//6qvvQT:::J
C)!,,7==?? I If^^D&*;<<
))&Z)HHD		Jr#   )FF)4r>   r   typingr   r   r   r   r   r   r	   rP   r
   version_infor   typing_extensionscyclopts.annotationsr   r   r   r   r   r   r   r   r   r   r   r   r   cyclopts.utilsr   r   r?   r/   r0   r1   r2   r3   r"   definer%   dictr@   rf   rn   r   r   r   r   r   r   rh   r&   r#   r!   <module>r      sa    



                        w&&&&&&                              - , , , , , , ,)? #3 -"1+; ; ; M, M, M, M, M, M, M, M,`$sI~*>    & !  
#y.	   "+Di$8 + + + +\T#y.%9    S)^ 4    6'Di$8 ' ' ' 'Tc9n)=    "0T#y.1 0 0 0 0BC Di$8      r#   