
    MhS                     D   d Z ddlZ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 ddlmZ dd	lmZ dd
lmZ ddlmZmZmZ ddlmZmZmZ 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# ddl$m%Z%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e          Z+ G d dee          Z, G d d ee          Z- G d! d"e          Z. G d# d$e          Z/d%d&d'd(d&d)Z0d* Z1d+ Z2d, Z3d- Z4e3 e            d.                         Z5dS )/z$
Imitate the parser representation.
    N)partial)	Parameter)Path)Optional)debug)to_list)memoize_method)AbstractFilter)AbstractNameDefinitionValueNameMixinParamNameInterface)ValueValueSet	NO_VALUES)LazyKnownValue)	_sentinel)inference_state_function_cache)reraise_getitem_errors)BuiltinSignature)CompiledContextCompiledModuleContextc                   &    e Zd ZdZddZd Zd ZdS )CheckAttributezARaises :exc:`AttributeError` if the attribute X is not available.Nc                     || _         d S N)
check_name)selfr   s     ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jedi/inference/compiled/value.py__init__zCheckAttribute.__init__   s    $    c                 J    || _         | j        |j        dd          | _        | S )N   )funcr   __name__)r   r#   s     r   __call__zCheckAttribute.__call__   s(    	?""mABB/DOr    c                 r    || S |j                             | j                   t          | j        |          S r   )access_handlegetattr_pathsr   r   r#   )r   instanceowners      r   __get__zCheckAttribute.__get__%   s:    K 	,,T_===ty(+++r    r   )r$   
__module____qualname____doc__r   r%   r+    r    r   r   r      sL        KK% % % %  , , , , ,r    r   c                       e Zd Zd( fd	Z fdZ e            d             Z e            d             Z e            d             Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zed             Zd Zd Zed             Zed             Zd)dZed             Z fdZ fdZd( fd	Zd Zed             Z d Z!e"fdZ#d Z$ fd Z%d! Z&d" Z'd# Z(ed$             Z)d% Z*d*d'Z+ xZ,S )+CompiledValueNc                 Z    t                                          ||           || _        d S r   )superr   r'   )r   inference_stater'   parent_context	__class__s       r   r   zCompiledValue.__init__/   s+    .999*r    c                    | j                                         }|'t          | j        |                                          S 	 | j                             d           | j                                         r,ddlm} t           || j        | j
        | |          g          S t          |                     |                    S # t          $ r$ t                                          |          cY S w xY w)Nr%   r   )CompiledInstance)r'   get_return_annotationcreate_from_access_pathr4   execute_annotationr(   is_classjedi.inference.valuer8   r   r5   _execute_functionAttributeErrorr3   
py__call__)r   	argumentsreturn_annotationr8   r6   s       r   r@   zCompiledValue.py__call__3   s    .DDFF(*$!  ! ""#
	C,,Z888 !**,, CAAAAAA$$T%94;NPTV_``!      6 6y A ABBB  	1 	1 	177%%i00000	1s   C +C43C4c                 Z    t          | j        | j                                                  S r   )r:   r4   r'   py__class__r   s    r   rD   zCompiledValue.py__class__H   s$    &t';T=O=[=[=]=]^^^r    c                 p      ft           fd j                                        D                       z   S )Nc              3   B   K   | ]}t          j        |          V  d S r   r:   r4   .0accessr   s     r   	<genexpr>z*CompiledValue.py__mro__.<locals>.<genexpr>N   sD       
 
 $D$8&AA
 
 
 
 
 
r    )tupler'   py__mro__accessesrE   s   `r   	py__mro__zCompiledValue.py__mro__L   sS    w 
 
 
 
,>>@@
 
 
 
 
 
 	
r    c                 h     t           fd j                                        D                       S )Nc              3   B   K   | ]}t          j        |          V  d S r   rH   rI   s     r   rL   z,CompiledValue.py__bases__.<locals>.<genexpr>U   sD       
 
 $D$8&AA
 
 
 
 
 
r    )rM   r'   py__bases__rE   s   `r   rR   zCompiledValue.py__bases__S   sJ     
 
 
 
,88::
 
 
 
 
 	
r    c                 4    | j                                         S r   )r'   get_qualified_namesrE   s    r   rT   z!CompiledValue.get_qualified_namesZ   s    !55777r    c                 4    | j                                         S r   )r'   
py__bool__rE   s    r   rV   zCompiledValue.py__bool__]       !,,...r    c                 4    | j                                         S r   )r'   r<   rE   s    r   r<   zCompiledValue.is_class`   s    !**,,,r    c                 4    | j                                         S r   )r'   is_functionrE   s    r   rZ   zCompiledValue.is_functionc       !--///r    c                 4    | j                                         S r   )r'   	is_modulerE   s    r   r]   zCompiledValue.is_modulef       !++---r    c                     dS )NTr/   rE   s    r   is_compiledzCompiledValue.is_compiledi   s    tr    c                     dS )NFr/   rE   s    r   is_stubzCompiledValue.is_stubl   s    ur    c                 4    | j                                         S r   )r'   is_instancerE   s    r   rd   zCompiledValue.is_instanceo   r[   r    c                 4    | j                                         S r   )r'   	py__doc__rE   s    r   rf   zCompiledValue.py__doc__r   r^   r    c              #     K   	 | j                                         }|D ]}t          | |          V  d S # t          $ r |                                 \  }}|sg }n|                    d          }| j                                         r|                    dd           |D ]@}|                                	                    d          \  }}}	t          | ||	          V  AY d S w xY w)N,r   r   =)r'   get_signature_paramsSignatureParamName
ValueError_parse_function_docsplitismethoddescriptorinsertstrip	partitionUnresolvableParamName)
r   signature_paramssignature_param
params_strrettokenspname_defaults
             r   get_param_nameszCompiledValue.get_param_namesu   s<     	@#1FFHH $4 @ @(??????@ @  
	A 
	A 
	A"6688OJ /#))#..!4466 )a((( A A#$7799#6#6s#;#; a+D$@@@@@@A A A
	As   6 B-C'&C'c                 R    |                                  \  }}t          | |          gS r   )rm   r   )r   r{   return_strings      r   get_signatureszCompiledValue.get_signatures   s+    3355= }5566r    c                 V    d| j         j        d| j                                        dS N<: >)r6   r$   r'   get_reprrE   s    r   __repr__zCompiledValue.__repr__   s/     !^444d6H6Q6Q6S6S6S6STTr    c                 P    |                                  }|dS t          |          S )N) r   )rf   rm   )r   docs     r   rm   z!CompiledValue._parse_function_doc   s)    nn;6"3'''r    c                 4    | j                                         S r   )r'   get_api_typerE   s    r   api_typezCompiledValue.api_type   s    !..000r    Fc              #   8   K   |                      |          V  d S r   )_ensure_one_filter)r   rd   origin_scopes      r   get_filterszCompiledValue.get_filters   s&      %%k2222222r    c                 .    t          | j        | |          S r   )CompiledValueFilterr4   )r   rd   s     r   r   z CompiledValue._ensure_one_filter   s    "4#7{KKKr    c                    t          t          t          t                    5  	 | j                            || j        j                   }n=# t          $ r0 t                                          |          cY cd d d            S w xY w	 d d d            n# 1 swxY w Y   |!t                                          |          S t          t          | j        |          g          S N)safe)r   
IndexErrorKeyError	TypeErrorr'   py__simple_getitem__r4   allow_unsafe_executionsr?   r3   r   r:   )r   indexrK   r6   s      r   r   z"CompiledValue.py__simple_getitem__   sA   #J)DD 	; 	;;+@@!1II A   " ; ; ;ww33E::::	; 	; 	; 	; 	; 	; 	; 	;;	 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; >77//66601EvNNOPPPs4   B'AB+B7BBBBBc                       j                                         }|"t                                          ||          S t	           fd|D                       S )Nc              3   B   K   | ]}t          j        |          V  d S r   rH   rI   s     r   rL   z.CompiledValue.py__getitem__.<locals>.<genexpr>   sD       
 
 $D$8&AA
 
 
 
 
 
r    )r'   py__getitem__all_valuesr3   py__getitem__r   )r   index_value_setcontextualized_nodeall_access_pathsr6   s   `   r   r   zCompiledValue.py__getitem__   st    -EEGG# 77((:MNNN 
 
 
 
*
 
 
 
 
 	
r    c              #     K   | j                                         s't                                          |          E d {V  | j                                         }|d S |D ]&}t          t          | j        |                    V  'd S r   )r'   has_iterr3   
py__iter__py__iter__listr   r:   r4   )r   r   access_path_listrK   r6   s       r   r   zCompiledValue.py__iter__   s      !**,, 	?ww))*=>>>>>>>>>-<<>>#F& 	X 	XF !89Mv!V!VWWWWWW	X 	Xr    c                 4    | j                                         S r   )r'   
py__name__rE   s    r   r   zCompiledValue.py__name__   rW   r    c                     |                                  }|| j                                        }t          | |          S r   )r   r'   r   CompiledValueNamer   rz   s     r   rz   zCompiledValue.name   s:      <%..00D t,,,r    c              #     K   ddl m} ddlm} | j        dk    rd S |                                 d                                         D ]i}	 | j        j        j	        
                    |            || j        |          }| j                            ||          E d {V  Z# t          $ r Y fw xY w|                    |           E d {V  d S )Nr   )
docstringsbuiltin_from_namefunction   )jedi.inferencer   jedi.inference.compiledr   r   rm   rn   r4   builtins_moduler'   r(   executer?   infer_return_types)r   paramsr   r   rz   bltn_objs         r   r>   zCompiledValue._execute_function   s%     ------=======J&&F,,..q17799 		J 		JDJ $4BPPQUVVV -,T-A4HH/77&IIIIIIIIII	 "   
 0066666666666s   $B""
B/.B/c                 r    	 | j                                         S # t          $ r |t          k    r |cY S w xY wr   )r'   get_safe_valuerl   r   )r   r|   s     r   r   zCompiledValue.get_safe_value   sN    	%44666 	 	 	)##NNN	s    66c           	          	 t          t          | j        | j                            |j        |                    g          S # t
          $ r
 t          cY S w xY wr   )r   r:   r4   r'   execute_operationr   r   )r   otheroperators      r   r   zCompiledValue.execute_operation   ss    	4$"44U5H(SS       	 	 		s   A A AAc                      j                                         dk    rt           g          S  j                                         \  }} fd|D             |dk    rt          j        d D                       S |rJt          fd j        j                            |          D                                                       S t                                                      S )NNonec                 V    g | ]%}t          t          j        |          g          &S r/   )r   r:   r4   )rJ   pathr   s     r   
<listcomp>z4CompiledValue.execute_annotation.<locals>.<listcomp>   sB     
 
 
 -d.BDIIJKK
 
 
r    Unionc              3   >   K   | ]}|                                 V  d S r   )r;   )rJ   args     r   rL   z3CompiledValue.execute_annotation.<locals>.<genexpr>   s.      %T%T3c&<&<&>&>%T%T%T%T%T%Tr    c                 :    g | ]}|                               S r/   )with_generics)rJ   vrA   s     r   r   z4CompiledValue.execute_annotation.<locals>.<listcomp>  s5        	**  r    )
r'   r   r   get_annotation_name_and_args	from_setsr4   typing_modulepy__getattribute__r;   r3   )r   rz   argsrA   r6   s   `  @r   r;   z CompiledValue.execute_annotation   s   &&((F22TF###'DDFF
d
 
 
 

 
 
	 7??%%T%T)%T%T%TTTT 	$     -;NNtTT     "!##$ ww))+++r    c                 Z    t          | j        | j                                                  S r   )r:   r4   r'   negaterE   s    r   r   zCompiledValue.negate
  s$    &t';T=O=V=V=X=XYYYr    c                     t           S r   r   rE   s    r   get_metaclasseszCompiledValue.get_metaclasses      r    c                      t          |           S r   )r   rE   s    r   _as_contextzCompiledValue._as_context  s    t$$$r    c                 4    | j                                         S r   )r'   get_array_typerE   s    r   
array_typezCompiledValue.array_type  s    !00222r    c                 N      fd j                                         D             S )Nc                 :    g | ]}t          j        |          S r/   rH   )rJ   kr   s     r   r   z0CompiledValue.get_key_values.<locals>.<listcomp>  s6     
 
 
 $D$8!<<
 
 
r    )r'   get_key_pathsrE   s   `r   get_key_valueszCompiledValue.get_key_values  s=    
 
 
 
'5577
 
 
 	
r    Tc                 @    | j                                         dv rdS d S )N)r   z<class 'NoneType'>r   )r'   r   )r   add_class_infos     r   get_type_hintzCompiledValue.get_type_hint  s'    &&((,JJJ6tr    r   )FN)T)-r$   r,   r-   r   r@   r   rD   rO   rR   rT   rV   r<   rZ   r]   r`   rb   rd   rf   r   r}   r   r   r	   rm   propertyr   r   r   r   r   r   r   rz   r>   r   r   r   r;   r   r   r   r   r   r   __classcell__)r6   s   @r   r1   r1   .   s;       + + + + + +C C C C C* ^_ _ _ ^
 
 
 ^
 
 
8 8 8/ / /- - -0 0 0. . .    0 0 0. . . @ @ W@$7 7 7U U U ( ( ^( 1 1 X13 3 3 3 L L ^LQ Q Q Q Q	
 	
 	
 	
 	

X 
X 
X 
X 
X 
X/ / / - - X-7 7 7$ &/      , , , , ,,Z Z Z  % % % 3 3 X3
 
 
       r    r1   c                   R    e Zd ZdZd Zd Zd Zed             Zde	e
         fdZdS )CompiledModuleNc                      t          |           S r   )r   rE   s    r   r   zCompiledModule._as_context&  s    $T***r    c                 4    | j                                         S r   )r'   
py__path__rE   s    r   r   zCompiledModule.py__path__)  rW   r    c                 .    |                                  d uS r   )r   rE   s    r   
is_packagezCompiledModule.is_package,  s      ,,r    c                 v    |                                  }|dS t          |                    d                    S )Nr/   .)r   rM   rn   r   s     r   string_nameszCompiledModule.string_names/  s5       <2TZZ__%%%r    returnc                 4    | j                                         S r   )r'   
py__file__rE   s    r   r   zCompiledModule.py__file__7  rW   r    )r$   r,   r-   file_ior   r   r   r   r   r   r   r   r/   r    r   r   r   #  s        G+ + +/ / /- - - & & X&/HTN / / / / / /r    r   c                   ^    e Zd Zd Zd Zd Zd Zd Zed             Z	d Z
ed             Zd	S )
CompiledNamec                 p    || _         |                                | _        || _        || _        || _        d S r   )_inference_state
as_contextr5   _parent_valuestring_nameis_descriptor)r   r4   parent_valuerz   r   s        r   r   zCompiledName.__init__<  s<     /*5577)*r    c                 N    |                                                                  S r   )infer_compiled_valuerf   rE   s    r   rf   zCompiledName.py__doc__C  s     ((**44666r    c                 R    | j                                         }|d S || j        fz   S r   )r5   rT   r   )r   parent_qualified_namess     r   _get_qualified_namesz!CompiledName._get_qualified_namesF  s3    !%!4!H!H!J!J!)4%)9(;;;r    c                     | j         }|                                s|                                r| j                                         S d S r   )r5   r]   r<   	get_value)r   contexts     r   get_defining_qualified_valuez)CompiledName.get_defining_qualified_valueL  sK    % 	3'"2"2"4"4 	3&00222tr    c                 x    	 | j         j        }n# t          $ r d }Y nw xY wd| j        j        d|d| j        dS )Nr   z: (z).r   )r5   rz   r?   r6   r$   r   r   s     r   r   zCompiledName.__repr__S  s^    	&+DD 	 	 	DDD	"&."9"9"9444AQAQAQRRs    c                 F    | j         rdS |                                 j        S )Nr)   )r   r   r   rE   s    r   r   zCompiledName.api_typeZ  s)     	 :((**33r    c                 F    t          |                                 g          S r   )r   r   rE   s    r   inferzCompiledName.inferc  s    22445666r    c                 B    t          | j        | j        | j                  S r   )create_from_namer   r   r   rE   s    r   r   z!CompiledName.infer_compiled_valuef  s     5t7I4K[\\\r    N)r$   r,   r-   r   rf   r  r  r   r   r   r	  r	   r   r/   r    r   r   r   ;  s        + + +7 7 7< < <  S S S 4 4 X47 7 7 ] ] ^] ] ]r    r   c                   <    e Zd Zd Zed             Zd Zd Zd ZdS )rk   c                 ,    |j         | _         || _        d S r   )r5   _signature_param)r   compiled_valueru   s      r   r   zSignatureParamName.__init__l  s    ,; /r    c                     | j         j        S r   )r  rz   rE   s    r   r   zSignatureParamName.string_namep  s    $))r    c                     |                                  | j        z   }| j        j        r|d| j        j        z   z  }| j        j        r|d| j        j        z   z  }|S )Nr   ri   )_kind_stringr   r  has_annotationannotation_stringhas_defaultdefault_string)r   ss     r   	to_stringzSignatureParamName.to_stringt  sg    $"22 / 	@-???A , 	<t,;;;Ar    c                 @    t          t          | j        j                  S r   )getattrr   r  	kind_namerE   s    r   get_kindzSignatureParamName.get_kind|  s    y$"7"ABBBr    c                     | j         }| j        j        }t          }|j        r#t          t          ||j                  g          }|j        r,t          ||j	                  }||
                                z  }|S r   )r  r5   r4   r   r  r   r:   r|   r  
annotationexecute_with_values)r   ry   r4   valuesr  s        r   r	  zSignatureParamName.infer  sy    !-== 	U6	RRSTTF 	70!,OOJj44666Fr    N)	r$   r,   r-   r   r   r   r  r  r	  r/   r    r   rk   rk   k  sn        0 0 0 * * X*  C C C	 	 	 	 	r    rk   c                   &    e Zd Zd Zd Zd Zd ZdS )rs   c                 :    |j         | _         || _        || _        d S r   )r5   r   _default)r   r  rz   r|   s       r   r   zUnresolvableParamName.__init__  s     ,;r    c                     t           j        S r   )r   POSITIONAL_ONLYrE   s    r   r  zUnresolvableParamName.get_kind  s    ((r    c                 <    | j         }| j        r|d| j        z   z  }|S )Nri   )r   r#  )r   strings     r   r  zUnresolvableParamName.to_string  s*    != 	*cDM))Fr    c                     t           S r   r   rE   s    r   r	  zUnresolvableParamName.infer  r   r    N)r$   r,   r-   r   r  r  r	  r/   r    r   rs   rs     sP             
) ) )      r    rs   c                       e Zd Zd ZdS )r   c                 :    || _         || _        |j        | _        d S r   )r   _valuer5   )r   valuerz   s      r   r   zCompiledValueName.__init__  s"    #2r    N)r$   r,   r-   r   r/   r    r   r   r     s#        3 3 3 3 3r    r   c                       e Zd ZdZd Zd ZdS )EmptyCompiledNamez
    Accessing some names will raise an exception. To avoid not having any
    completions, just give Jedi the option to return this object. It infers to
    nothing.
    c                 ,    |j         | _        || _        d S r   )r   r5   r   )r   r4   rz   s      r   r   zEmptyCompiledName.__init__  s    -=r    c                     t           S r   r   rE   s    r   r	  zEmptyCompiledName.infer  r   r    N)r$   r,   r-   r.   r   r	  r/   r    r   r.  r.    s<         
         r    r.  c                   T    e Zd ZddZd ZddZedddd            Zd Zd Z	d	 Z
d
S )r   Fc                 0    || _         || _        || _        d S r   )r   r  rd   )r   r4   r  rd   s       r   r   zCompiledValueFilter.__init__  s      /,&r    c                 x    | j         j        | j        j         |                     |fdfdd          S )Nc                 2                         |           S r   )is_allowed_getattr)rz   r'   r   s    r   <lambda>z)CompiledValueFilter.get.<locals>.<lambda>  s    99$T9JJ r    c                 0    |                                  v S r   )dir)rz   r'   s    r   r6  z)CompiledValueFilter.get.<locals>.<lambda>  s    !2!2!4!44 r    T)check_has_attribute)r  r'   r   r   _get)r   rz   r'   r   s     @@r   getzCompiledValueFilter.get  sY    +9(@@yyJJJJJ4444 $	  
 
 	
r    c                 H    |          \  }}}|7t          | j        |                                          }|rfd|D             S |r|sg S |s|s$| j        j        s|                     d          gS | j        r |          sg S |                     |          gS )zU
        To remove quite a few access calls we introduced the callback here.
        Nc                 0    g | ]}t          |          S r/   )r   )rJ   r   rz   s     r   r   z,CompiledValueFilter._get.<locals>.<listcomp>  s$    CCCq)!T22CCCr    T)is_emptyr   )r:   r   r;   r   _get_cached_namerd   )	r   rz   allowed_getattr_callbackin_dir_callbackr9  has_attributer   property_return_annotationr   s	    `       r   r:  zCompiledValueFilter._get  s	    D\C[D
 D
@}&@ &1,%*  ! ""   DCCCCFCCCC 	} 	I 	@ 	@-E	@))$)>>?? 	OOD$9$9 	I%%d-%HHIIr    r?  c                ^    |rt          | j        |          S |                     ||          S )Nr?  )r.  r   _create_name)r   rz   r>  r   s       r   r@  z$CompiledValueFilter._get_cached_name  s7     	H$T%:DAAA$$T$GGGr    c                 0   ddl m} g }| j        j                                        \  }D ]"}||                     |fdfd          z  }#| j        s?|r= || j        d                                          D ]}||	                                z  }|S )Nr   r   c                     |          S r   r/   rz   	dir_infoss    r   r6  z,CompiledValueFilter.values.<locals>.<lambda>  s    Yt_ r    c                     | v S r   r/   rI  s    r   r6  z,CompiledValueFilter.values.<locals>.<lambda>  s    TY. r    type)
r   r   r  r'   get_dir_infosr:  rd   r   r   r   )r   r   namesneeds_type_completionsrz   filterrJ  s         @r   r   zCompiledValueFilter.values  s    ======,0,?,M,[,[,],])	  	 	DTYY,,,,....  EE  	)$: 	)++D,A6JJVVXX ) )(r    c                 :    t          | j        | j        ||          S r   )r   r   r  )r   rz   r   s      r   rF  z CompiledValueFilter._create_name  s&    !	
 
 	
r    c                 2    d| j         j        d| j        dS r   )r6   r$   r  rE   s    r   r   zCompiledValueFilter.__repr__  s#     !^444d6I6I6IJJr    N)F)r$   r,   r-   r   r;  r:  r	   r@  r   rF  r   r/   r    r   r   r     s        ' ' ' '

 
 
J J J J4 He H H H H ^H  ,
 
 
K K K K Kr    r   floatstrintdict)zfloating point number	characterinteger
dictionaryr'  c                 $   	 d}|                      d          }t          | |d                   D ])\  }}|dk    r|dz  }n|dk    r|dz  }|dk    r||z   } n*| |dz   |         }d }	 t          j        d||          \  }}|dk    rn!n/# t          t
          f$ r t          j        d	           d}d
}Y nw xY w|                    dd          }t          j	        d| ||dz                      }	|	d
}
n||	
                                z   }t          j        d          }|                    | |                              d                                          }t          j        dd|          }t                               ||          }
||
fS )z
    Takes a function and returns the params and return value as a tuple.
    This is nothing more than a docstring parser.

    TODO docstrings like utime(path, (atime, mtime)) and a(b [, b]) -> None
    TODO docstrings like 'tuple of integers'
    r   (Nr   )c                     |                      d                              d          }t          |          D ]\  }}|rd|vr||xx         dz  cc<   d                    |          S )Nr   rh   ri   z=None)grouprn   	enumeratejoin)mr   ias       r   change_optionsz+_parse_function_doc.<locals>.change_options,  so    771::##C((D!$ ' '1 'AGGGw&GGG88D>>!r    Tz ?\[([^\[\]]+)\]zno brackets found - no paramr   -r{   z-[>-]*    z(,\n|[^\n-])+z[nN]ew (.*)z\1())r   r_  resubnrl   UnboundLocalErrorr   dbgreplacesearchendcompilematchr^  rq   subdocstr_defaultsr;  )r   countstartrb  r  rm  	param_strrd  changesrrw   r   patternret_strs                 r   rm   rm     s   		#c%&&k** 	 	DAqCxx
c
zzai  	#&		" 	" 	"	!#)<)7"D "DIw!||		 ' )*    		0111			( !!#s++I 		)SS1W-..Ayaeegg*-..--U++11!44::<<&'::!!'733c>s   A%B )B98B9c                     |j                             |d           }d }|D ]*}t          | ||d n|                                          }+|S )N)r|   r5   )r'   r(   create_cached_compiled_valuer   )r4   r  rz   access_pathsr,  access_paths         r   r  r  K  sk    !/==dD=QQLE# 
 
,#(=44e6F6F6H6H
 
 

 Lr    c                      d fd	}|S )z5The cache doesn't care about keyword vs. normal args.Nc                      | ||          S r   r/   )r4   objr5   r#   s      r   wrapperz'_normalize_create_args.<locals>.wrapperZ  s    tOS.999r    r   r/   )r#   r  s   ` r   _normalize_create_argsr  X  s&    : : : : : :Nr    c                 t    d }|j         D ]-\  }}t          | ||d n|                                          }.|S )Nrz  )accessesr{  r   )r4   r}  r,  rz   rK   s        r   r:   r:   _  sW    E#, 
 
f,#(=44e6F6F6H6H
 
 

 Lr    c                 l    t          |t                    rJ |t          }nt          } || ||          S r   )
isinstancer1   r   )r4   r'   r5   clss       r   r{  r{  j  s@     .-888883~>>>r    )6r.   rg  	functoolsr   inspectr   pathlibr   typingr   jedir   jedi.inference.utilsr   
jedi.cacher	   jedi.inference.filtersr
   jedi.inference.namesr   r   r   jedi.inference.base_valuer   r   r   jedi.inference.lazy_valuer   jedi.inference.compiled.accessr   jedi.inference.cacher   jedi.inference.helpersr   jedi.inference.signaturer   jedi.inference.contextr   r   r   r1   r   r   rk   rs   r   r.  r   rq  rm   r  r  r:   r{  r/   r    r   <module>r     s    
			                               ( ( ( ( ( ( % % % % % % 1 1 1 1 1 1          @ @ @ @ @ @ @ @ @ @ 4 4 4 4 4 4 4 4 4 4 4 4 ? ? ? ? ? ? 9 9 9 9 9 9 5 5 5 5 5 5 I I I I I I I I, , , , , , , ,*r r r r rE r r rj/ / / / /] / / /0-] -] -] -] -]) -] -] -]`    +-C   @    .0F   &3 3 3 3 3(> 3 3 3    .   PK PK PK PK PK. PK PK PKh % 9 9 9x
 
 
     !!? ? "! ? ? ?r    