
    !<iaW                         d dl Z d dlZd dlZ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 d dlmZ d dlmZ d dlmZmZ d d	lmZmZmZmZmZmZm Z  d d
l!m"Z"m#Z# d dl$m%Z% d dl&m'Z'm(Z( ej)        dk     rn	 erd dl*m+Z+  ee%d          Z, G d de          Z-dde.z  ee.         z  de/e.         fdZ0de1e.df         fdZ2ddddedee.         de.de3fdZ4dede5de5fd Z6dee.         de.de/e1e.e3f                  fd!Z7dd"dede/e.         de.de/e.         fd#Z8defd$Z9ded%efd&Z:defd'Z;de/e1d(ef                  fd)Z<dd"d%edede/e.         d*ee         de.de1e j=        e/e.         f         fd+Z>dS ),    N)CallableIterableSequence)suppress)partial)TYPE_CHECKINGAny
NamedTuple
get_origin)_bool)resolve_optional)ArgumentArgumentCollection)ArgumentOrderErrorCoercionErrorCombinedShortOptionErrorCycloptsErrorMissingArgumentErrorUnknownOptionErrorValidationError)POSITIONAL_ONLYPOSITIONAL_OR_KEYWORD)Token)UNSETis_option_like)      )Groupcli)sourcec                   R    e Zd ZU dZeed<   	 eed<   	 eedf         ed<   	 eed<   dS )_KeywordMatchz?Represents a matched CLI token with its corresponding argument.matched_tokenargument.keysimplicit_valueN)	__name__
__module____qualname____doc__str__annotations__r   tupler	        /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/cyclopts/bind.pyr"   r"   '   sY         III&
S/-<<r/   r"   tokensreturnc                     | t           j        dd          } n9t          | t                    rt	          j        |           } nt          |           } | S )N   )sysargv
isinstancer+   shlexsplitlist)r1   s    r0   normalize_tokensr;   7   sK    ~!""	FC	 	  V$$fMr/   .c                 *   | sdS | d         j         }| dd          D ]v}|j         s dS t          t          ||j         d                    D ])\  }\  }}||k    r|dk    r  dS |j         d |         } n*|d t          |j                            }w|S )Nr.   r   r4   F)strict)r%   	enumerateziplen)argument_collectioncommonr$   i
common_keyargument_keys         r0   _common_root_keysrF   A   s     r #(F'+ 
. 
.} 	22-6s68=Y^7_7_7_-`-` 	 	)A)
L\))66222!rr* * ,#hm,,,-Mr/   --F)end_of_options_delimiterstop_at_first_unknownrA   rH   rI   c                   g g }}d}|r;	 |                     |          }||d          }|d |         }n# t          $ r Y nw xY wt          |          D ]\\  }}	|dk    r|dz  }t          |	d          s8|r |                    ||d                      n|                    |	           [g }
d}|	                    d          o|	                    d           }d|	v r^|	                    dd          \  }}	 |                     |           |
                    |           |dz  }d}n# t          $ r |	}Y nw xY w|	}g }d }	 |                    t          |g|                     |          R             n# t          $ r |rNt          |	          d	k    r:|                    d          }d}|t          |          k     r	||         }d| }	 |                     |          \  }}}|t          us|j        j        r+|                    t          ||||                     |dz  }n<||dz   d          }|                    t          ||||                     |r|}|dz  }nfnQ# t          $ rD |r%|                    ||d                     |cY cY c S |                    |           |dz  }Y nw xY w|t          |          k     	|sY n=|r#|                    ||d                     |cY c S |                    |	           Y Y nw xY wt          |          D ]\  }}|+|t          |          dz
  k    r|
                    |           |j        j        j        r/|j                            t!          |j        d
                     s|j        t          ur|
r	 t'          |
d                   }nG# t(          $ r:}|j        t!          |j                  |_        |j        |j        |_         d }~ww xY w|r5|j                            t!          |j        |j        
                     t-          |j        t.                    r6|j                            t!          |j        |j         
                     ik|j                            t!          |j        |j        
                     t          |          dk    r2t1          d |D                       }|dk    rt3          d|           |j                            |j                  \  }}t9          t:                    5  |rr|j        j        j        rat?          j                    D ]L} ||dz   | z            }	|j        j        j         st          |	          r n|
                    |	           |dz  }Mn||z  }tC          |          D ]} t          |
          dk    r>|j        "                    |
          s |j        #                    |
|j                  rd} ne||dz   | z            }	|j        j        j         s+t          |	          rtI          |j        |
|j                  |
                    |	           |dz  }d d d            n# 1 swxY w Y   |
s|ry|j        j        j        rhtK          |j        j&                  }! tO          |!          p|!            }"|j                            t!          |j        |"|j                             tI          |j        |
|j                  t          |
          |z  rtI          |j        |
|j                  t          |
          D ]:\  }#}|j                            t!          |j        ||#|j                             ;^|                    |           |S )Nr   r4   T)allow_numbers-rG   =F   )keywordr&   )rO   c              3   X   K   | ]%}|j         t          u |j        j        j        !d V  &dS )r4   N)r&   r   r$   	parametercount).0ms     r0   	<genexpr>z&_parse_kw_and_flags.<locals>.<genexpr>   sG       - -a.>%.G.GPQPZPdPj.G.G.G.G.G- -r/   z6Cannot combine multiple value-taking options in token )msg)r$   tokens_so_farrO   )rO   r&   r%   )rO   valueindexr%   )(rZ   
ValueErrorr>   r   extendappend
startswithr9   matchr"   r@   lstripr   rR   rS   r$   CliTokenr#   r&   r   r   tokenr7   boolsumr   token_countr%   r   
IndexErrorconsume_multiple	itertoolsallow_leading_hyphenrange_should_attempt_json_dict_should_attempt_json_listr   r   hintr   )$rA   r1   rH   rI   unused_tokenspositional_only_tokensskip_next_iterationsdelimiter_indexrC   rb   
cli_valuesconsume_countallow_combined_flags
cli_option	cli_valuematchesattached_valuecharspositionchar	test_flagargr%   implicit	remaindermatch_indexr_   coerced_valueevalue_taking_counttokens_per_elementconsume_alljrm   empty_containerrZ   s$                                       r0   _parse_kw_and_flagsr   S   s	    -/)M .	.$ll+CDDO &,O,<,<%=",_,-FF	  	 	 	D	
 f%% D D5!## A% e4888 	$ $$VABBZ000  ''' "
  %//44SU=M=Md=S=S9S %<<$)KKQ$7$7!J		##))*555!!),,,"',$$ # # # #


#
 J')%)2	NN=\6I6O6OPZ6[6[\\\]]]] 0	 0	 0	# .E

Q #))#..U++ ?D *D

I&.A.G.G	.R.R+T8#500CM4G0#NN=Cx+X+XYYY$MHH ).hlnn(=I#NN=Cx+X+XYYY( 3 2; - 2! % & & & &0 1)00<<<#00000000%,,Y777 A&/ U++>  H ) )!((444(((((($$U+++ O0	b #,G"4"4 j	 j	K )kS\\A=M.M.M!!.111~'- d%%hu7J[\&]&]&]^^^^%U22 v(-jn(=(=(   7?&.u7J&K&K&KAG:-).AJ % !--$U-@QVQefff    &e&:DAA !!N11 (1DY^YmUm n n n    !N))(5;N_d_s*t*t*tuuuu w<<!##), - -#*- - - * *& *A--6 eYc e e    38.2L2LUZ2X2X/"K j)) 6 6" 6u~'?'P 6!*!2!2 6 6A$*1q519$5E#(>#;#P &UcdiUjUj & %&--e4440A500%);;!&}!5!5 6 6A":!33 % H H T T  4#(>#K#KJX]Xb#c#c  4 67 2 !&$*1q519$5E#(>#;#P "UcdiUjUj "&:-2^2<,1,?'" '" '" !"
 '--e4440A50096 6 6 6 6 6 6 6 6 6 6 6 6 6 6< " " u~'?'P /0CDD+C:d+;+;+Ct*F*F--$U-@Q`glgqrrr   
 3%*^:W\Wj    __'99 
.!&zSXSf   
 -6j,A,A  (y--$U-@	Y^ejeoppp   Oj	X /000s   4 
A A;1D--D<;D<3E;;ALBI,*L,+J:LJ:7L9J::L"L<LL.O
P5PPEZZZstarting_indexc                    d}t          j                    D ]s}	 |                     ||z             \  }}}n# t          $ r Y  nGw xY w|j        j        t          ur n.|                                \  }}|rt          d          ||z  }t|S )Nr   z1Cannot have 2 all-consuming positional arguments.)rh   rS   r_   r[   
field_infokindr   re   )rA   r   n_tokens_to_leaverC   r$   _future_tokens_per_elementfuture_consume_alls           r0   #_future_positional_only_token_countr   .  s    _ 
7 
7	066~7IJJNHa 	 	 	EE	#?::E8@8L8L8N8N5!#5 	RPQQQ66s   6
AAc                     	 |                      |          }d | d |         D             d | |dz   d          D             z   S # t          $ r d | D             cY S w xY w)Nc                     g | ]}|d fS Fr.   rT   ts     r0   
<listcomp>z1_preprocess_positional_tokens.<locals>.<listcomp>A  s    ===qE
===r/   c                     g | ]}|d fS )Tr.   r   s     r0   r   z1_preprocess_positional_tokens.<locals>.<listcomp>A  s    @r@r@rq!T@r@r@rr/   r4   c                     g | ]}|d fS r   r.   r   s     r0   r   z1_preprocess_positional_tokens.<locals>.<listcomp>C  s    +++qE
+++r/   )rZ   r[   )r1   rH   rq   s      r0   _preprocess_positional_tokensr   >  s    , ,,'?@@==F+;O+;$<===@r@rTZ[jmn[n[p[pTq@r@r@rrr , , ,++F++++++,s   A A AArH   c                   g }|sg S t          ||          }t          j                    D ]"}	 |                     |          \  }}}n# t          $ r Y  nw xY w|j        j        t          u r|j        r(|j        d         j	        |
                    |           r|r`|d         }|j        j        s.t          |          rt          t          |          |           t!          |||d         d                   |                                \  }	}
t%          d|	          }	|
r'|j        j        t&          u rt)          | |dz             }nd}g }t+          |          |z
  dk    rt+          |          |z
  |	k     rt-          |d |D                       t/          |d |	                   D ]h\  }\  }}|s:|j        j        s.t          |          rt          t          |          |           |
                    t          ||                     i||	d          }|
snt+          |          |z
  dk    ||j        d d<   |s n$d	 |D             S )
Nr   )rY   )rb   rA   )r$   9prior_positional_or_keyword_supplied_as_keyword_argumentsrb   r4   c                     g | ]
}|d          S r   r.   rT   xs     r0   r   z_parse_pos.<locals>.<listcomp>|  s    "M"M"MA1Q4"M"M"Mr/   )r$   rX   )rY   rZ   c                     g | ]
}|d          S r   r.   r   s     r0   r   z_parse_pos.<locals>.<listcomp>  s    666QAaD666r/   )r   rh   rS   r_   r[   r   r   r   r1   rO   r]   rR   ri   r   r   ra   r   re   maxr   r   r@   r   r>   )rA   r1   rH   r   tokens_and_force_positionalrC   r$   r   rb   r   r   r   
new_tokensrZ   force_positionals                  r0   
_parse_posr   F  s#    AC= 	"?H`"a"a_ 5 5	066q99NHa 	 	 	EE	#'<<< 8?1#5#=#IIPPQYZZZH q	)> 	>RWCXCX 	 -8%3H3H3H^qrrrr,!) SL9!<Q?    +3*>*>*@*@'K $677 	"8.3FF !DDWYZ]^Y^ _ _ !
.//2CCqHH/003DDHZZZ*%"M"M1L"M"M"M   
 5>>YZm[mZm>n4o4o F F00/' s0B0W s\jkp\q\q s,8%3H3H3H^qrrrr!!(e"D"D"DEEEE*EFXFYFY*Z'  .//2CCqHH )* 	E	 7656666s   A
AAc           	          | D ]u}|j         r
|j        j        J |j        j        D ]P}	 t          j        |         }|j                             t          ||d                      n# t          $ r Y Mw xY wvd S )Nenv)rO   rY   r    )r1   rR   env_varosenvironr]   r   KeyError)rA   r$   env_var_nameenv_var_values       r0   
_parse_envr     s    '  ? 	!)555$.6 	 	L "
< 8 &&u\_d'e'e'efff	     s   A((
A54A5funcc                     t          j        |                                          }| j        D ])}|j        t
          ur|j        |j        |j        j        <   *|S )z+Bind the mapping to the function signature.)	inspect	signaturebind_partial_root_argumentsrY   r   	argumentsr   name)rA   r   boundr$   s       r0   _bindr     s[    
 d##0022E'7 G G>&&8@EOH/45Lr/   c                 &    |D ]} ||            d S Nr.   )rA   configsconfigs      r0   _parse_configsr     s/     $ $"####$ $r/   r   c                 8   i }t          t          | j        d                     D ]G\  }}|                     |          }t	          |          }||                    |          f|||f<   Hd t          |                                d          D             S )zSort groups into "deepest common-root-keys first" order.

    This is imperfect, but probably works sufficiently well for practical use-cases.
    c                     | j         S r   )r   )r   s    r0   <lambda>z_sort_group.<locals>.<lambda>  s    qv r/   )key)group)keys_prefixc                     g | ]\  }}|S r.   r.   )rT   r   gas      r0   r   z_sort_group.<locals>.<listcomp>  s    >>>51bB>>>r/   T)reverse)r>   sortedgroups	filter_byrF   items)rA   outrC   r   group_argumentscommon_root_keyss         r0   _sort_groupr     s    
 Cf%8%?EUEUVVVWW f f5-77e7DD,_==&+_-F-FSc-F-d-d%eq!"">>F399;;===>>>>r/   r   c                   |}	 t          |||          }t          |||          }t          |           t          ||           |                                 t          |          }	 |D ]\  }}|j        D ]}	 |	|           nE# t          t          t          f$ r+}
t          |
j        r|
j        d         nd|          |
d}
~
ww xY w|D ]9}|j        j        r|j        j        r|j        r"|j        st%          |          :t'          ||           }n!# t(          $ r}
||
_        ||
_         d}
~
ww xY w||fS )a  Parse and coerce CLI tokens to match a function's signature.

    Parameters
    ----------
    func: Callable
        Function.
    argument_collection: ArgumentCollection
    tokens: list[str]
        CLI tokens to parse and coerce to match ``f``'s signature.
    configs: Iterable[Callable]
    end_of_options_delimiter: str
        Everything after this special token is forced to be supplied as a positional argument.

    Returns
    -------
    bound: inspect.BoundArguments
        The converted and bound positional and keyword arguments for ``f``.

    unused_tokens: list[str]
        Remaining tokens that couldn't be matched to ``f``'s signature.
    r   r    )exception_messager   N)r$   )r   r   r   r   _convertr   	validatorAssertionErrorr[   	TypeErrorr   argsrR   parser   requiredr%   
has_tokensr   r   r   root_input_tokensrn   )r   rA   r1   r   rH   rn   groups_with_argumentsr   r   r   r   r$   r   s                r0   create_bound_argumentsr     s   : M +Ia
 
 
 #Ia
 
 
 	&'''*G444$$&&& +,? @ @	e*? / /&!& / /IIo....// 
I6 	e 	e 	e!4OAF1IIRW\]]]cdd	e , 	> 	>H %+ 83F3O S[S` & >*H====> )400   $'
 -s=   A&D +B	 D 	C &CCAD 
D9%D44D9)?r   rh   r   r8   r5   collections.abcr   r   r   
contextlibr   	functoolsr   typingr   r	   r
   r   cyclopts._convertr   cyclopts.annotationsr   cyclopts.argumentr   r   cyclopts.exceptionsr   r   r   r   r   r   r   cyclopts.field_infor   r   cyclopts.tokenr   cyclopts.utilsr   r   version_infocyclopts.groupr   ra   r"   r+   r:   r;   r-   rF   rc   r   intr   r   r   r   r   r   r   BoundArgumentsr   r.   r/   r0   <module>r      sn        				  



 8 8 8 8 8 8 8 8 8 8             = = = = = = = = = = = = # # # # # # 1 1 1 1 1 1 : : : : : : : :                  G F F F F F F F             0 0 0 0 0 0 0 0g  %$$$$$$75'''= = = = =J = = = TCZ(3-7 DI    eCHo    , %)"'X X X+XSMX "	X
  X X X Xv=O ad il     ,(3- ,SV ,[_`efikofo`p[q , , , , %)	D7 D7 D7+D7ID7 "	D7
 
#YD7 D7 D7 D7N$6     	+	
	 	 	 	$(: $ $ $ $?U7<N3N-O(P ? ? ? ?* %)A  A  A 
A +A  IA  h	A  "A  7!49,-A  A  A  A  A  A r/   