
    Dd.P                     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     =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*    	? 	0"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__I   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>O   sD       
 
 $D$8&AA
 
 
 
 
 
r    )tupler'   py__mro__accessesrE   s   `r   	py__mro__zCompiledValue.py__mro__M   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>V   sD       
 
 $D$8&AA
 
 
 
 
 
r    )rM   r'   py__bases__rE   s   `r   rR   zCompiledValue.py__bases__T   sJ     
 
 
 
,88::
 
 
 
 
 	
r    c                 4    | j                                         S r   )r'   get_qualified_namesrE   s    r   rT   z!CompiledValue.get_qualified_names[   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_classa   s    !**,,,r    c                 4    | j                                         S r   )r'   is_functionrE   s    r   rZ   zCompiledValue.is_functiond       !--///r    c                 4    | j                                         S r   )r'   	is_modulerE   s    r   r]   zCompiledValue.is_moduleg       !++---r    c                     dS )NTr/   rE   s    r   is_compiledzCompiledValue.is_compiledj   s    tr    c                     dS )NFr/   rE   s    r   is_stubzCompiledValue.is_stubm   s    ur    c                 4    | j                                         S r   )r'   is_instancerE   s    r   rd   zCompiledValue.is_instancep   r[   r    c                 4    | j                                         S r   )r'   	py__doc__rE   s    r   rf   zCompiledValue.py__doc__s   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_namesv   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                            |          }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 r   )r   
IndexErrorKeyError	TypeErrorr'   py__simple_getitem__r?   r3   r   r:   r4   )r   indexrK   r6   s      r   r   z"CompiledValue.py__simple_getitem__   s+   #J)DD 	; 	;;+@@GG! ; ; ;ww33E::::		; 	; 	; 	; 	; 	; 	; 	;; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
  	777//66601EvNNOPPPs1   B	?B	+A9*B	8A99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__   sw    -EEGG 	O 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=       	1%..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   sP    	%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 	$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 	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-  s8        	2TZZ__%%%r    returnc                 4    | j                                         S r   )r'   
py__file__rE   s    r   r   zCompiledModule.py__file__5  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                 b    || _         |                                | _        || _        || _        d S r   )_inference_state
as_contextr5   _parent_valuestring_name)r   r4   parent_valuerz   s       r   r   zCompiledName.__init__:  s4     /*5577)r    c                 N    |                                                                  S r   )infer_compiled_valuerf   rE   s    r   rf   zCompiledName.py__doc__@  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_namesC  s5    !%!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_valueI  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__P  s^    	&+DD 	 	 	DDD	"&."9"9"9444AQAQAQRRs    c                 4    |                                  j        S r   )r   r   rE   s    r   r   zCompiledName.api_typeW  s    ((**33r    c                 F    t          |                                 g          S r   )r   r   rE   s    r   inferzCompiledName.infer[  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_value^  s     5t7I4K[\\\r    N)r$   r,   r-   r   rf   r   r  r   r   r   r  r	   r   r/   r    r   r   r   9  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__d  s    ,; /r    c                     | j         j        S r   )r
  rz   rE   s    r   r   zSignatureParamName.string_nameh  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_stringl  sg    $"22 / 	@-???A , 	<t,;;;Ar    c                 @    t          t          | j        j                  S r   )getattrr   r
  	kind_namerE   s    r   get_kindzSignatureParamName.get_kindt  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.inferw  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   c  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                   N    e Zd Zd
dZd Zd
dZe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                 Z    | j         j        |                     |fdfdd          S )Nc                 2                         | |          S )Nsafe)is_allowed_getattr)rz   r2  r'   s     r   <lambda>z)CompiledValueFilter.get.<locals>.<lambda>  s    }??4?PP r    c                 0    |                                  v S r   )dir)rz   r'   s    r   r4  z)CompiledValueFilter.get.<locals>.<lambda>  s    !2!2!4!44 r    T)check_has_attribute)r  r'   _get)r   rz   r'   s     @r   getzCompiledValueFilter.get  sG    +9yyPPPP4444 $	  
 
 	
r    c                    | j         j        r	  ||| j         j                   \  }}|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.
        r1  T)is_empty)r   allow_descriptor_getattr_get_cached_namerd   )r   rz   allowed_getattr_callbackin_dir_callbackr7  has_attributeis_descriptors          r   r8  zCompiledValueFilter._get  s      9 	'?'?*CC(
 (
 (
$}  	} 	I 	@ 	@-F	@))$)>>?? 	OOD$9$9 	I%%d++,,r    c                 Z    |rt          | j        |          S |                     |          S r   )r*  r   _create_name)r   rz   r;  s      r   r=  z$CompiledValueFilter._get_cached_name  s1     	+$T%:DAAA$$T***r    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   r2  	dir_infoss     r   r4  z,CompiledValueFilter.values.<locals>.<lambda>  s    9T? r    c                     | v S r   r/   )rz   rF  s    r   r4  z,CompiledValueFilter.values.<locals>.<lambda>  s    TY. r    type)
r   r   r  r'   get_dir_infosr8  rd   r   r   r  )r   r   namesneeds_type_completionsrz   filterrF  s         @r   r  zCompiledValueFilter.values  s    ======,0,?,M,[,[,],])	  	 	DTYY2222....  EE  	)$: 	)++D,A6JJVVXX ) )(r    c                 8    t          | j        | j        |          S r   )r   r   r  r   s     r   rC  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   r9  r8  r	   r=  r  rC  r   r/   r    r   r   r     s        ' ' ' '

 
 
- - - -, + + + ^+  ,
 
 
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  sr    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matchrZ  rq   subdocstr_defaultsr9  )r   countstartr^  r  ri  	param_strr`  changesrrw   r   patternret_strs                 r   rm   rm     s   		#c%&&k** 	 	DAqCx 
c 
z ai 	#&		" 	" 	"	!#)<)7"D "DIw!| 		 ' )*    		0111			( !!#s++I 		)SS1W-..A 
4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  =  sl    !/==dD=QQLE# 
 
,#(H44e6F6F6H6H
 
 

 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>.wrapperL  s    tOS.999r    r   r/   )r#   r}  s   ` r   _normalize_create_argsr~  J  s&    : : : : : :Nr    c                 t    d }|j         D ]-\  }}t          | ||d n|                                          }.|S )Nrv  )accessesrw  r   )r4   ry  r(  rz   rK   s        r   r:   r:   Q  sX    E#, 
 
f,#(H44e6F6F6H6H
 
 

 Lr    c                 l    t          |t                    rJ |t          }nt          } || ||          S r   )
isinstancer1   r   )r4   r'   r5   clss       r   rw  rw  \  sB     .-88888 3~>>>r    )6r.   rc  	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   rm  rm   r  r~  r:   rw  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, , , , , , , ,*p p p p pE p p pf/ / / / /] / / /0'] '] '] '] ']) '] '] ']T    +-C   @    .0F   &3 3 3 3 3(> 3 3 3    .   JK JK JK JK JK. JK JK JK\ % 9 9 9x
 
 
     !!? ? "! ? ? ?r    