
    ^jo                         d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ  G d d      Z	 G d d	e	      Z
 G d
 de
      Z G d de
      Z G d de	      Zy)    )	Parameter)Any)memoize_method)debug)parser_utilsc                   2    e Zd ZU eed<   eed<   eed<   d Zy)_SignatureMixinget_param_namesnameannotation_stringc                       fd} j                   j                  dz   dj                   |             z   dz   } j                  }|r|d|z   z  }|S )Nc               3   Z  K   d} d}j                  d      D ]  }|j                         }| |t        j                  k(  z  } | r|t        j                  k7  rd d} |t        j                  k(  rd}n|t        j
                  k(  r|sd d}|j                           | rd y y w)NFT)resolve_stars/*)r
   get_kindr   POSITIONAL_ONLYVAR_POSITIONALKEYWORD_ONLY	to_string)is_positional
is_kw_onlynkindselfs       Q/opt/ringagent/.cad-venv/lib/python3.12/site-packages/jedi/inference/signature.pyparam_stringsz0_SignatureMixin.to_string.<locals>.param_strings   s     !MJ)))= $zz|)B)B!BB TY-F-F%FI$)M9333!%JY333JI!%Jkkm#$ 	 s   B(B+(, )z -> )r   string_namejoinr   )r   r   s
annotations   `   r   r   z_SignatureMixin.to_string   sU    	* II!!C'$))MO*DDsJ++
*$$A    N)__name__
__module____qualname__r   __annotations__r    r%   r   r	   r	   	   s    
Ir%   r	   c                   Z    e Zd ZU eed<   d
dZed        Zed        Zd
dZ	d Z
d Zd Zy	)AbstractSignature_function_valuec                      || _         || _        y N)valueis_bound)r   r0   r1   s      r   __init__zAbstractSignature.__init__.   s    
 r%   c                 .    | j                   j                  S r/   )r0   r   r   s    r   r   zAbstractSignature.name2   s    zzr%   c                      y)N r*   r4   s    r   r   z#AbstractSignature.annotation_string6   s    r%   c                 \    | j                   j                         }| j                  r|dd  S |S )N   )r-   r
   r1   )r   r   param_namess      r   r
   z!AbstractSignature.get_param_names:   s/    **::<==qr?"r%   c                     t         r/   )NotImplementedErrorr   r0   s     r   bindzAbstractSignature.bind@   s    !!r%   c                      y)NTr*   )r   	argumentss     r   matches_signaturez#AbstractSignature.matches_signatureC   s    r%   c                     | j                   | j                  u r'd| j                  j                  d| j                   dS d| j                  j                  d| j                   d| j                  dS )N<z: >r   )r0   r-   	__class__r&   r4   s    r   __repr__zAbstractSignature.__repr__F   sS    ::---!%!8!8$**EE .!%!8!8$**dFZFZ[[r%   NF)r&   r'   r(   r   r)   r2   propertyr   r   r
   r=   r@   rE   r*   r%   r   r,   r,   +   sJ    !    "\r%   r,   c                   ^     e Zd Zd fd	Zd Zed        Zed        Zedd       Z	d Z
 xZS )	TreeSignaturec                 <    t         |   ||       |xs || _        y r/   )superr2   r-   )r   r0   function_valuer1   rD   s       r   r2   zTreeSignature.__init__M   s    )-6r%   c                 2    t        || j                  d      S )NT)r1   )rI   r-   r<   s     r   r=   zTreeSignature.bindQ   s    UD$8$84HHr%   c                 x    | j                   j                         ry | j                  j                  j                  S r/   )r0   is_classr-   	tree_noder$   r4   s    r   _annotationzTreeSignature._annotationT   s/     :: ##--888r%   c                 D    | j                   }|y|j                  d      S )Nr6   F)include_prefix)rQ   get_code)r   as     r   r   zTreeSignature.annotation_string\   s&    9zzz//r%   c                 |    | j                   j                         }|rddlm}  ||      }| j                  r|dd  S |S )Nr   )process_paramsr8   )r-   r
   jedi.inference.star_argsrW   r1   )r   r   paramsrW   s       r   r
   zTreeSignature.get_param_namesc   s>    %%557?#F+F==!":r%   c                    ddl m}  || j                  |      \  }}|ryt        d |D              }t        j
                  r}| j                  j                  }t        j                  |      }|r)t	        j                  d||j                  d   |d       |S t	        j                  d||j                  d   |d       |S )	Nr   )#get_executed_param_names_and_issuesFc              3   <   K   | ]  }|j                           y wr/   )r@   ).0executed_param_names     r   	<genexpr>z2TreeSignature.matches_signature.<locals>.<genexpr>t   s#      G- *;;= Gs   zOverloading match: %s@%s (%s)BLUE)colorz Overloading no match: %s@%s (%s))jedi.inference.paramr[   r-   allr   enable_noticerP   r   get_signaturedbg	start_pos)r   r?   r[   executed_param_namesissuesmatchesrP   	signatures           r   r@   zTreeSignature.matches_signaturem   s    L/0D0DiP 	%f G1EG G,,66I$229=I		9#Y%8%8%;YfV
  		<#Y%8%8%;YfVr%   NFrF   )r&   r'   r(   r2   r=   rG   rQ   r   r   r
   r@   __classcell__rD   s   @r   rI   rI   L   sO    7I 9 9 0 0  r%   rI   c                   F     e Zd Zd fd	Zed        Zed        Zd Z xZS )BuiltinSignaturec                 B    t         |   ||       || _        || _        y r/   )rK   r2   _return_string!_BuiltinSignature__function_value)r   r0   return_stringrL   r1   rD   s        r   r2   zBuiltinSignature.__init__   s"    )+ .r%   c                     | j                   S r/   )rr   r4   s    r   r   z"BuiltinSignature.annotation_string   s    """r%   c                 J    | j                   | j                  S | j                   S r/   )rs   r0   r4   s    r   r-   z BuiltinSignature._function_value   s$      (::$$$r%   c                 H    t        || j                  | j                  d      S )NT)rL   r1   )rp   rr   r0   r<   s     r   r=   zBuiltinSignature.bind   s$    4&&::
 	
r%   rl   )	r&   r'   r(   r2   rG   r   r-   r=   rm   rn   s   @r   rp   rp      s5    /
 # # % %

r%   rp   c                       e Zd Zd Zd Zy)SignatureWrapperc                     || _         y r/   )_wrapped_signature)r   wrapped_signatures     r   r2   zSignatureWrapper.__init__   s
    "3r%   c                 .    t        | j                  |      S r/   )getattrr{   )r   r   s     r   __getattr__zSignatureWrapper.__getattr__   s    t..55r%   N)r&   r'   r(   r2   r   r*   r%   r   ry   ry      s    46r%   ry   N)inspectr   typingr   
jedi.cacher   jedir   r   r	   r,   rI   rp   ry   r*   r%   r   <module>r      sU      %   D\ \B3% 3l
( 
06 6r%   