
    Mh                         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dS )    )	Parameter)memoize_method)debug)parser_utilsc                       e Zd Zd ZdS )_SignatureMixinc                       fd} j         j        dz   d                     |                      z   dz   } j        }|r|d|z   z  }|S )Nc               3   V  K   d} d}                     d          D ]}|                                }| |t          j        k    z  } | r|t          j        k    rdV  d} |t          j        k    rd}n|t          j        k    r|sdV  d}|                                V  | rdV  d S d S )NFT)resolve_stars/*)get_param_namesget_kindr   POSITIONAL_ONLYVAR_POSITIONALKEYWORD_ONLY	to_string)is_positional
is_kw_onlynkindselfs       X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jedi/inference/signature.pyparam_stringsz0_SignatureMixin.to_string.<locals>.param_strings
   s      !MJ)))== $ $zz||)B!BB  *TY-F%F%FIII$)M9333!%JJY333J3III!%Jkkmm#### 					     (, )z -> )namestring_namejoinannotation_string)r   r   s
annotations   `   r   r   z_SignatureMixin.to_string	   sm    	 	 	 	 	* I!C'$))MMOO*D*DDsJ+
 	%*$$Ar   N)__name__
__module____qualname__r    r   r   r   r      s#            r   r   c                   \    e Zd Zd
dZed             Zed             Zd
dZd Zd Z	d Z
d	S )AbstractSignatureFc                 "    || _         || _        d S 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    zr   c                     dS )N r(   r1   s    r   r"   z#AbstractSignature.annotation_string/   s    rr   c                 Z    | j                                         }| j        r
|dd          S |S )N   )_function_valuer   r.   )r   r   param_namess      r   r   z!AbstractSignature.get_param_names3   s4    *::<<= 	#qrr?"r   c                     t           r,   )NotImplementedErrorr   r-   s     r   bindzAbstractSignature.bind9   s    !!r   c                     dS )NTr(   )r   	argumentss     r   matches_signaturez#AbstractSignature.matches_signature<   s    tr   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__?   s]    :----!%!8!8!8$***EE .!%!8!8!8$***dFZFZFZ[[r   NF)r%   r&   r'   r/   propertyr   r"   r   r;   r>   rC   r(   r   r   r*   r*   &   s        ! ! ! !   X   X   " " "  \ \ \ \ \r   r*   c                   p     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 )TreeSignatureNFc                 ^    t                                          ||           |p|| _        d S r,   )superr/   r6   )r   r-   function_valuer.   rB   s       r   r/   zTreeSignature.__init__F   s0    )))-6r   c                 0    t          || j        d          S )NT)r.   )rG   r6   r:   s     r   r;   zTreeSignature.bindJ   s    UD$84HHHHr   c                 Z    | j                                         rd S | j        j        j        S r,   )r-   is_classr6   	tree_noder$   r1   s    r   _annotationzTreeSignature._annotationM   s.     :   	4#-88r   c                 D    | j         }|dS |                    d          S )Nr3   F)include_prefix)rO   get_code)r   as     r   r"   zTreeSignature.annotation_stringU   s(    92zzz///r   c                     | 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7 	,??????#^F++F= 	!"":r   c                 b   ddl m}  || j        |          \  }}|rdS t          d |D                       }t          j        rk| j        j        }t          j        |          }|r%t	          j	        d||j
        d         |d           n$t	          j	        d||j
        d         |d           |S )	Nr   )#get_executed_param_names_and_issuesFc              3   >   K   | ]}|                                 V  d S r,   )r>   ).0executed_param_names     r   	<genexpr>z2TreeSignature.matches_signature.<locals>.<genexpr>m   sJ       G G- *;;== G G G G G Gr   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LLLLL//0DiPP 	%f 	5 G G1EG G G G G 	V,6I$29==I V	9#Y%8%;YfV V V V V 	<#Y%8%;YfV V V Vr   NFrD   )r%   r&   r'   r/   r;   rE   rO   r"   r   r   r>   __classcell__rB   s   @r   rG   rG   E   s        7 7 7 7 7 7I I I 9 9 X9 0 0 X0    ^      r   rG   c                   R     e Zd Zd fd	Zed             Zed             Zd Z xZS )BuiltinSignatureNFc                 h    t                                          ||           || _        || _        d S r,   )rI   r/   _return_string!_BuiltinSignature__function_value)r   r-   return_stringrJ   r.   rB   s        r   r/   zBuiltinSignature.__init__|   s3    )))+ .r   c                     | j         S r,   )rp   r1   s    r   r"   z"BuiltinSignature.annotation_string   s    ""r   c                 ,    | j         | j        S | j         S r,   )rq   r-   r1   s    r   r6   z BuiltinSignature._function_value   s     (:$$r   c                 <    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   {   s        / / / / / /
 # # X# % % X%

 
 
 
 
 
 
r   rn   c                       e Zd Zd Zd ZdS )SignatureWrapperc                     || _         d S 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55r   N)r%   r&   r'   r/   r}   r(   r   r   rw   rw      s2        4 4 46 6 6 6 6r   rw   N)inspectr   
jedi.cacher   jedir   r   r   r*   rG   rn   rw   r(   r   r   <module>r      s2         % % % % % %                   <\ \ \ \ \ \ \ \>3 3 3 3 3% 3 3 3l
 
 
 
 
( 
 
 
06 6 6 6 6 6 6 6 6 6r   