
    -h/                     T   S SK r S SKJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJrJrJrJr  S SKJrJrJr  S S	KJrJrJr  S S
KJr  S SKJr  SS jr " S S\5      rS rS r S r! " S S5      r" " S S\"5      r#S r$ " S S\#5      r% " S S\#5      r& " S S\"5      r'S S jr(S r)g)!    N)zip_longest)tree)debug)PushBackIterator)analysis)LazyKnownValueLazyKnownValuesLazyTreeValueget_merged_lazy_value)	ParamNameTreeNameDefinitionAnonymousParamName)	NO_VALUESValueSetContextualizedNode)iterable)%inference_state_as_method_param_cachec                     US:  a  gU  H;  n UR                   nU" 5        H   n[        UR                  5       US-   5        M"     M=     g! [         a     MM  f = f)z"Helper method for static analysis.
   N   )
py__iter__try_iter_contentinferAttributeError)typesdepthtypf
lazy_values        kC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\jedi/inference/arguments.pyr   r      s`    rz 		@A  c
 !1!1!3UQY? "   		s   A


AAc                       \ rS rSrSrg)
ParamIssue"    N)__name__
__module____qualname____firstlineno____static_attributes__r$       r    r"   r"   "   s    r*   r"   c                    ^  U 4S jnU$ )a2  
Transforms a function or method with arguments to the signature that is
given as an argument clinic notation.

Argument clinic is part of CPython and used for all the functions that are
implemented in C (Python 3.7):

    str.split.__text_signature__
    # Results in: '($self, /, sep=None, maxsplit=-1)'
c                    >^  UU 4S jnU$ )Nc                    >  [        [        U R                  UT5      5      nT" U /UQ76 $ ! [         a	    [        s $ f = fN)tupleiterate_argument_clinicinference_stater"   r   )value	argumentsargsclinic_stringfuncs      r    wrapper?repack_with_argument_clinic.<locals>.decorator.<locals>.wrapper2   sR    	*4))!  E)D))  !  !s    , ??r$   )r6   r7   r5   s   ` r    	decorator.repack_with_argument_clinic.<locals>.decorator1   s    
	* r*   r$   )r5   r9   s   ` r    repack_with_argument_clinicr;   &   s     r*   c              #     #    [        [        U5      5      n[        UR                  5       5      n[	        U5       GH"  u  nu  pgpU	S:X  a[  / n
U H-  u  pUb  UR                  X45          OU
R                  U5        M/     [        [        R                  " X
5      /5      v   U
  Mk  U	S:X  a
  [        5       e[        US5      u  pUb  [        R                  " S5        [        eUc/  U(       d(  [        R                  " SU[        U5      U5        [        eUc  [         OUR#                  5       nU(       d$  U(       d  [        R                  " SU5        [        eUv   GM%     g7f)z;Uses a list with argument clinic information (see PEP 436).r   N   )NNzAKeyword arguments in argument clinic are currently not supported.z4TypeError: %s expected at least %s arguments, got %sz$argument_clinic "%s" not resolvable.)list_parse_argument_clinicr   unpack	enumerate	push_backappendr   r   	FakeTupleNotImplementedErrornextr   warningr"   lenr   r   )r1   r3   r5   clinic_argsiteratorinameoptionalallow_kwargsstarslazy_valueskeyargument	value_sets                 r    r0   r0   B   s4    -m<=K	 0 0 23H4=k4J00DLA:K!)?&&7""8, "* H..LMNNaZ%''X|4?MM]^HMMPK 0!5!)!1Ix~~7G	 MM@$G? 5Ks   E!E#c              #     #    SnSnU (       a  [         R                  " SU 5      nU [        UR                  S5      5      S  n UR                  S5      (       d  SnMU  U=(       d    [	        UR                  S5      5      nUR                  S5      nUR                  S5      nXES  nXBX4v   U(       a  SnU (       a  M  g g 7f)NFz%(?:(?:(\[),? ?|, ?|)(\**\w+)|, ?/)\]*r   r=   Tr   *)rematchrH   groupboolcount)stringrN   rM   rW   wordrO   s         r    r?   r?   i   s     LH

 A6JEKKN+,-{{1~~L3tEKKN3{{1~

3F||33L! &s   B9B?=B?c                   $    \ rS rSrSS jrS rSrg)_AbstractArgumentsMixin   Nc                     [         er.   rE   )selffuncdefs     r    r@   _AbstractArgumentsMixin.unpack       !!r*   c                     / $ r.   r$   rb   s    r    get_calling_nodes)_AbstractArgumentsMixin.get_calling_nodes   s    	r*   r$   r.   )r%   r&   r'   r(   r@   rh   r)   r$   r*   r    r^   r^      s    "r*   r^   c                        \ rS rSrSrSrSrSrg)AbstractArguments   Nr$   )r%   r&   r'   r(   contextargument_nodetrailerr)   r$   r*   r    rk   rk      s    GMGr*   rk   c              #   *  #    U c  g U R                   S:w  a*  U R                   S:X  a  U R                  S   S;   d  SU 4v   g [        U R                  5      nU H  nUS:X  a  M  US;   a,  [        US 5      nUc   e[	        UR
                  5      U4v   M=  UR                   S:X  ac  UR                  S   S;   aP  [	        UR                  5      S:X  d   e[	        UR                  S   R
                  5      UR                  S   4v   M  SU4v   M     g 7f)NarglistrR   r   )rU   z**,r=   r   )typechildreniterrF   rH   r2   )rq   rJ   childcs       r    unpack_arglistrx      s     ||y LLJ&7+;+;A+>++MjG$$%HC<k!Xt$A= =ekk"A%%ZZ:%q![0u~~&!+++ennQ'--.q0AAAU(N s   DDc                   d    \ rS rSrSS jr\\" 5       S 5       5       rSS jrS r	S r
S rS	 rS
rg)TreeArguments   Nc                 4    X0l         X l        Xl        X@l        g)zC
:param argument_node: May be an argument_node or a list of nodes.
N)rn   rm   _inference_statero   )rb   r1   rm   rn   ro   s        r    __init__TreeArguments.__init__   s     + /r*   c                     U " U0 UD6$ r.   r$   )clsr4   kwargss      r    create_cachedTreeArguments.create_cached   s     D#F##r*   c           
   #     #    / n[        U R                  5       GH  u  p4US:X  a  U R                  R                  U5      nU Vs/ s H  n[	        U R                  XdU5      PM     nn[        [        U6 5       H'  nS [        U V	s/ s H	  oc  M  U	PM     sn	5      4v   M)     M  US:X  aE  U R                  R                  U5      nU H"  n
[        U R                  XU5       S h  vN   M$     M  UR                  S:X  a  UR                  n[        U5      S:X  a:  UR                  US   R                  [        U R                  US   5      45        GM<  UR                  S   nUR                  S:X  a  UR                  S   n[        R                   " U R"                  U R                  UUR                  S   S9nS [%        U5      4v   GM  S [        U R                  U5      4v   GM     U S h  vN   g s  snf s  sn	f  GN N7f)Nr   r=   rR      r   comp_for)defining_contextsync_comp_for_node
entry_node)rx   rn   rm   
infer_node_iterate_star_argsr>   r   r   _star_star_dictrs   rt   rH   rC   r2   r
   r   GeneratorComprehensionr}   r   )rb   rc   
named_args
star_countelarraysa	iteratorsvaluesvdctrw   sync_comp_forcomps                 r    r@   TreeArguments.unpack   s    
,T-?-?@NJQ004&,.&, 0aWM&,  .";	#:;F 5$*<FqF<!   < q004!C.t||SgNNN " 77j(A1v{"))1Q4::}T\\STUVSW7X*Z[ )+A(--;,9,B,B1,EM'>> 11-1\\/<'){{1~	  #N4$888dllB ???? AF A. =
 O. 	sD   AH!G8& HG=G=AH&H'DH2H3HHc              #      #    [        U R                  5       HJ  u  pS nUR                  S:X  a-  [        UR                  5      S:X  a  UR                  S S S2   u  p#X#U4v   ML     g 7f)NrR   r   r=   )rx   rn   rs   rH   rt   )rb   r   rR   defaults       r    _as_tree_tuple_objects$TreeArguments._as_tree_tuple_objects   sd     $243E3E$F JG}}
*x(()Q.(0(9(9#A#(>%HZ// %Gs   A%A'c              #      #    U R                  5        HF  u  pnU(       a  [        U[        R                  5      (       d  M.  [	        U R
                  U5      v   MH     g 7fr.   )r   
isinstancer   Namer   rm   )rb   rL   r   r   s       r    iter_calling_names_with_star*TreeArguments.iter_calling_names_with_star   sE     )-)D)D)F%D:Zdii%@%@$T\\488 *Gs   AAc                 T    SU R                   R                  < SU R                  < S3$ N<z: >)	__class__r%   rn   rg   s    r    __repr__TreeArguments.__repr__   s    !^^44d6H6HIIr*   c                 j   / nU nX!;  a  [        U[        5      (       d  OUR                  U5        [        [	        UR                  5       5      5       Hy  nUR                  5       n[        U5      S:w  a    OY[        US   [        5      (       a  / s  $ [        US   [        5      (       d    O#US   R                  5       nUR                  n  O   X!;  a  M  UR                  b!  [        UR                  UR                  5      /$ UR                  b!  [        UR                  UR                  5      /$ / $ )Nr   r   )r   rz   rC   reversedr>   r   gotorH   r   r   get_executed_param_namer3   rn   r   rm   ro   )rb   old_arguments_listr3   calling_namenamesexecuted_param_names         r    rh   TreeArguments.get_calling_nodes   s   	1i77%%i0 (i.T.T.V)W X$))+u:?eAh(:;; I!%(I66&+Ah&F&F&H#/99	 !Y 1& "".&y'8'8):Q:QRSS(&y'8'8):K:KLMM	r*   )r}   rn   rm   ro   r.   )r%   r&   r'   r(   r~   classmethodr   r   r@   r   r   r   rh   r)   r$   r*   r    rz   rz      sA     *,$ - $%N09Jr*   rz   c                   *    \ rS rSrS rSS jrS rSrg)ValuesArgumentsi  c                     Xl         g r.   _values_list)rb   values_lists     r    r~   ValuesArguments.__init__  s    'r*   Nc              #   P   #    U R                    H  nS [        U5      4v   M     g 7fr.   )r   r	   )rb   rc   r   s      r    r@   ValuesArguments.unpack  s%     ''F/// (s   $&c                 T    SU R                   R                  < SU R                  < S3$ r   )r   r%   r   rg   s    r    r   ValuesArguments.__repr__  s    !^^44d6G6GHHr*   r   r.   )r%   r&   r'   r(   r~   r@   r   r)   r$   r*   r    r   r     s    (0Ir*   r   c                   `    \ rS rSrS r\S 5       r\S 5       r\S 5       rSS jr	S r
S	 rS
rg)TreeArgumentsWrapperi  c                     Xl         g r.   _wrapped_arguments)rb   r3   s     r    r~   TreeArgumentsWrapper.__init__  s    "+r*   c                 .    U R                   R                  $ r.   )r   rm   rg   s    r    rm   TreeArgumentsWrapper.context      &&...r*   c                 .    U R                   R                  $ r.   )r   rn   rg   s    r    rn   "TreeArgumentsWrapper.argument_node!  s    &&444r*   c                 .    U R                   R                  $ r.   )r   ro   rg   s    r    ro   TreeArgumentsWrapper.trailer%  r   r*   Nc                     [         er.   ra   )rb   r6   s     r    r@   TreeArgumentsWrapper.unpack)  re   r*   c                 6    U R                   R                  5       $ r.   )r   rh   rg   s    r    rh   &TreeArgumentsWrapper.get_calling_nodes,  s    &&88::r*   c                 T    SU R                   R                  < SU R                  < S3$ r   )r   r%   r   rg   s    r    r   TreeArgumentsWrapper.__repr__/  s    !^^44d6M6MNNr*   r   r.   )r%   r&   r'   r(   r~   propertyrm   rn   ro   r@   rh   r   r)   r$   r*   r    r   r     sS    , / / 5 5 / /";Or*   r   c              #     #    UR                  S5      (       d7  Ub4  SUR                  R                  < SU< 3n[        R                  " U SX$S9   UR
                  nU" 5        S h  vN   g  N! [         a     g f = f7f)N__iter__TypeError: z,() argument after * must be a sequence, not ztype-error-starmessage)py__getattribute__rL   r2   r   addr   r   )rm   array
input_noderc   miter_s         r    r   r   3  su     ##J// <<%%u.ALL"3ZK   7  s6   AA?A/ 
A?'A-(A?/
A<9A?;A<<A?c                 V   SSK Jn  [        X5      (       a  UR                  R                  S:X  a  0 $ [        U[
        R                  5      (       a   UR                  S:X  a  UR                  5       $ Ub4  SUR                  R                  < SU< 3n[        R                  " U SX%S9  0 $ )Nr   )CompiledInstancedictr   z* argument after ** must be a mapping, not ztype-error-star-starr   )jedi.inference.value.instancer   r   rL   string_namer   Sequence
array_typeexact_key_itemsr2   r   r   )rm   r   r   rc   r   r   s         r    r   r   B  s    >%**uzz/E/E/O 		E8,,	-	-%2B2Bf2L$$&&<<%%u.ALL"8*P	r*   )r   r.   )*rV   	itertoolsr   parso.pythonr   jedir   jedi.inference.utilsr   jedi.inferencer   jedi.inference.lazy_valuer   r	   r
   r   jedi.inference.namesr   r   r   jedi.inference.base_valuer   r   r   jedi.inference.valuer   jedi.inference.cacher   r   	Exceptionr"   r;   r0   r?   r^   rk   rx   rz   r   r   r   r   r$   r*   r    <module>r      s    	 !   1 #) ) R R M M ) F@"	 	8$N , / 2d% dN	I' 	IO2 O4r*   