
    f                         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)memoize_method)debug)parser_utilsc                       e Zd Zd Zy)_SignatureMixinc                       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/*)get_param_namesget_kindr   POSITIONAL_ONLYVAR_POSITIONALKEYWORD_ONLY	to_string)is_positional
is_kw_onlynkindselfs       S/var/www/cvtools/html/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 -> )namestring_namejoinannotation_string)r   r   s
annotations   `   r   r   z_SignatureMixin.to_string	   sU    	* II!!C'$))MO*DDsJ++
*$$A    N)__name__
__module____qualname__r    r$   r   r   r      s    r$   r   c                   N    e Zd Zd	dZed        Zed        Zd	dZd Zd Z	d Z
y)
AbstractSignaturec                      || _         || _        y N)valueis_bound)r   r-   r.   s      r   __init__zAbstractSignature.__init__'   s    
 r$   c                 .    | j                   j                  S r,   )r-   r   r   s    r   r   zAbstractSignature.name+   s    zzr$   c                      y)N r(   r1   s    r   r!   z#AbstractSignature.annotation_string/   s    r$   c                 \    | j                   j                         }| j                  r|dd  S |S )N   )_function_valuer   r.   )r   r   param_namess      r   r   z!AbstractSignature.get_param_names3   s/    **::<==qr?"r$   c                     t         r,   )NotImplementedErrorr   r-   s     r   bindzAbstractSignature.bind9   s    !!r$   c                      y)NTr(   )r   	argumentss     r   matches_signaturez#AbstractSignature.matches_signature<   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   )r-   r6   	__class__r%   r1   s    r   __repr__zAbstractSignature.__repr__?   sS    ::---!%!8!8$**EE .!%!8!8$**dFZFZ[[r$   NF)r%   r&   r'   r/   propertyr   r!   r   r;   r>   rC   r(   r$   r   r*   r*   &   sD    !    "\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,   )superr/   r6   )r   r-   function_valuer.   rB   s       r   r/   zTreeSignature.__init__F   s    )-6r$   c                 2    t        || j                  d      S )NT)r.   )rG   r6   r:   s     r   r;   zTreeSignature.bindJ   s    UD$8$84HHr$   c                 x    | j                   j                         ry | j                  j                  j                  S r,   )r-   is_classr6   	tree_noder#   r1   s    r   _annotationzTreeSignature._annotationM   s/     :: ##--888r$   c                 D    | j                   }|y|j                  d      S )Nr3   F)include_prefix)rO   get_code)r   as     r   r!   zTreeSignature.annotation_stringU   s&    9zzz//r$   c                 |    | j                   j                         }|rddlm}  ||      }| j                  r|dd  S |S )Nr   )process_paramsr5   )r6   r   jedi.inference.star_argsrU   r.   )r   r   paramsrU   s       r   r   zTreeSignature.get_param_names\   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>m   s#      G- *;;= Gs   zOverloading match: %s@%s (%s)BLUE)colorz Overloading no match: %s@%s (%s))jedi.inference.paramrY   r6   allr   enable_noticerN   r   get_signaturedbg	start_pos)r   r=   rY   executed_param_namesissuesmatchesrN   	signatures           r   r>   zTreeSignature.matches_signaturef   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$   NFrD   )r%   r&   r'   r/   r;   rE   rO   r!   r   r   r>   __classcell__rB   s   @r   rG   rG   E   sO    7I 9 9 0 0  r$   rG   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,   )rI   r/   _return_string!_BuiltinSignature__function_value)r   r-   return_stringrJ   r.   rB   s        r   r/   zBuiltinSignature.__init__|   s"    )+ .r$   c                     | j                   S r,   )rp   r1   s    r   r!   z"BuiltinSignature.annotation_string   s    """r$   c                 J    | j                   | j                  S | j                   S r,   )rq   r-   r1   s    r   r6   z BuiltinSignature._function_value   s$      (::$$$r$   c                 H    t        || j                  | j                  d      S )NT)rJ   r.   )rn   rp   r-   r:   s     r   r;   zBuiltinSignature.bind   s$    4&&::
 	
r$   rj   )	r%   r&   r'   r/   rE   r!   r6   r;   rk   rl   s   @r   rn   rn   {   s5    /
 # # % %

r$   rn   c                       e Zd Zd Zd Zy)SignatureWrapperc                     || _         y r,   )_wrapped_signature)r   wrapped_signatures     r   r/   zSignatureWrapper.__init__   s
    "3r$   c                 .    t        | j                  |      S r,   )getattrry   )r   r   s     r   __getattr__zSignatureWrapper.__getattr__   s    t..55r$   N)r%   r&   r'   r/   r}   r(   r$   r   rw   rw      s    46r$   rw   N)inspectr   
jedi.cacher   jedir   r   r   r*   rG   rn   rw   r(   r$   r   <module>r      sP     %   <\ \>3% 3l
( 
06 6r$   