
    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dS )    )	Parameter)Any)memoize_method)debug)parser_utilsc                   4    e Zd ZU eed<   eed<   eed<   d ZdS )_SignatureMixinget_param_namesnameannotation_stringc                       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/*)r
   get_kindr   POSITIONAL_ONLYVAR_POSITIONALKEYWORD_ONLY	to_string)is_positional
is_kw_onlynkindselfs       _/home/ubuntu/.hermes/hermes-agent/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 -> )r   string_namejoinr   )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   __annotations__r    r   r   r	   r	   	   sF         
III    r   r	   c                   h    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d
S )AbstractSignature_function_valueFc                 "    || _         || _        d S 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    zr   c                     dS )N r*   r4   s    r   r   z#AbstractSignature.annotation_string6   s    rr   c                 Z    | j                                         }| j        r
|dd          S |S )N   )r-   r
   r1   )r   r   param_namess      r   r
   z!AbstractSignature.get_param_names:   s4    *::<<= 	#qrr?"r   c                     t           r/   )NotImplementedErrorr   r0   s     r   bindzAbstractSignature.bind@   s    !!r   c                     dS )NTr*   )r   	argumentss     r   matches_signaturez#AbstractSignature.matches_signatureC   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    )r0   r-   	__class__r&   r4   s    r   __repr__zAbstractSignature.__repr__F   s]    :----!%!8!8!8$***EE .!%!8!8!8$***dFZFZFZ[[r   NF)r&   r'   r(   r   r)   r2   propertyr   r   r
   r=   r@   rE   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/   )superr2   r-   )r   r0   function_valuer1   rD   s       r   r2   zTreeSignature.__init__M   s0    )))-6r   c                 0    t          || j        d          S )NT)r1   )rI   r-   r<   s     r   r=   zTreeSignature.bindQ   s    UD$84HHHHr   c                 Z    | j                                         rd S | j        j        j        S r/   )r0   is_classr-   	tree_noder%   r4   s    r   _annotationzTreeSignature._annotationT   s.     :   	4#-88r   c                 D    | j         }|dS |                    d          S )Nr6   F)include_prefix)rQ   get_code)r   as     r   r   zTreeSignature.annotation_string\   s(    92zzz///r   c                     | 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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>t   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.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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   NFrF   )r&   r'   r(   r2   r=   rG   rQ   r   r   r
   r@   __classcell__rD   s   @r   rI   rI   L   s        7 7 7 7 7 7I I I 9 9 X9 0 0 X0    ^      r   rI   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/   )rK   r2   _return_string!_BuiltinSignature__function_value)r   r0   return_stringrL   r1   rD   s        r   r2   zBuiltinSignature.__init__   s3    )))+ .r   c                     | j         S r/   )rr   r4   s    r   r   z"BuiltinSignature.annotation_string   s    ""r   c                 ,    | j         | j        S | j         S r/   )rs   r0   r4   s    r   r-   z BuiltinSignature._function_value   s     (:$$r   c                 <    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      s        / / / / / /
 # # X# % % X%

 
 
 
 
 
 
r   rp   c                       e Zd Zd Zd ZdS )SignatureWrapperc                     || _         d S 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55r   N)r&   r'   r(   r2   r   r*   r   r   ry   ry      s2        4 4 46 6 6 6 6r   ry   N)inspectr   typingr   
jedi.cacher   jedir   r   r	   r,   rI   rp   ry   r*   r   r   <module>r      sF               % % % % % %                   D\ \ \ \ \ \ \ \B3 3 3 3 3% 3 3 3l
 
 
 
 
( 
 
 
06 6 6 6 6 6 6 6 6 6r   