
    ^hS                        S r SSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SS	KJr  SS
KJr  SSKJrJrJr  SSKJrJrJr  SSKJr  SSKJr  SSKJr  SSK J!r!  SSK"J#r#  SSK$J%r%J&r&   " S S5      r' " S S\5      r( " S S\(5      r) " S S\5      r* " S S\\5      r+ " S S\\5      r, " S S \\5      r- " S! S"\5      r. " S# S$\5      r/S%S&S'S(S&S).r0S* r1S+ r2S, r3S- r4\3\" 5       S. 5       5       r5g)/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                   .    \ rS rSrSrSS jrS rS rSrg)	CheckAttribute   zARaises :exc:`AttributeError` if the attribute X is not available.Nc                     Xl         g N)
check_name)selfr   s     W/home/james-whalen/.local/lib/python3.13/site-packages/jedi/inference/compiled/value.py__init__CheckAttribute.__init__   s    $    c                 T    Xl         U R                  c  UR                  SS  U l        U $ )N   )funcr   __name__)r   r%   s     r   __call__CheckAttribute.__call__   s(    	??""mmAB/DOr"   c                     Uc  U $ UR                   R                  U R                  5        [        U R                  U5      $ r   )access_handlegetattr_pathsr   r   r%   )r   instanceowners      r   __get__CheckAttribute.__get__%   s8    K 	,,T__=tyy(++r"   )r   r%   r   )	r&   
__module____qualname____firstlineno____doc__r    r'   r.   __static_attributes__ r"   r   r   r      s    K%,r"   r   c                     ^  \ rS rSrS'U 4S jjrU 4S jr\" 5       S 5       r\" 5       S 5       r\" 5       S 5       r	S r
S rS	 rS
 rS rS rS rS rS r\S 5       rS rS r\S 5       r\S 5       rS(S jr\S 5       rU 4S jrU 4S jrS'U 4S jjrS r \S 5       r!S r"\#4S jr$S r%U 4S jr&S  r'S! r(S" r)\S# 5       r*S$ r+S)S% jr,S&r-U =r.$ )*CompiledValue.   c                 0   > [         TU ]  X5        X l        g r   )superr    r*   )r   inference_stater*   parent_context	__class__s       r   r    CompiledValue.__init__/   s    9*r"   c                   > U R                   R                  5       nUb$  [        U R                  U5      R	                  5       $  U R                   R                  S5        U R                   R                  5       (       a.  SSKJn  [        U" U R                  U R                  X5      /5      $ [        U R                  U5      5      $ ! [         a    [        TU ]9  U5      s $ f = f)Nr'   r   )CompiledInstance)r*   get_return_annotationcreate_from_access_pathr;   execute_annotationr+   is_classjedi.inference.valuer@   r   r<   _execute_functionAttributeErrorr:   
py__call__)r   	argumentsreturn_annotationr@   r=   s       r   rH   CompiledValue.py__call__3   s     ..DDF(*$$! ! "#
	C,,Z8 !!**,,A$T%9%94;N;NPT`!     6 6y ABB  	17%i00	1s   C C"!C"c                 ^    [        U R                  U R                  R                  5       5      $ r   )rB   r;   r*   py__class__r   s    r   rM   CompiledValue.py__class__H   s$    &t';';T=O=O=[=[=]^^r"   c                 f   ^  T 4[        U 4S jT R                  R                  5        5       5      -   $ )Nc              3   P   >#    U  H  n[        TR                  U5      v   M     g 7fr   rB   r;   .0accessr   s     r   	<genexpr>*CompiledValue.py__mro__.<locals>.<genexpr>N   s(      
@ $D$8$8&AA@   #&)tupler*   py__mro__accessesrN   s   `r   	py__mro__CompiledValue.py__mro__L   s5    w 
,,>>@
 
 
 	
r"   c                 ^   ^  [        U 4S jT R                  R                  5        5       5      $ )Nc              3   P   >#    U  H  n[        TR                  U5      v   M     g 7fr   rR   rS   s     r   rV   ,CompiledValue.py__bases__.<locals>.<genexpr>U   s(      
: $D$8$8&AA:rX   )rY   r*   py__bases__rN   s   `r   r`   CompiledValue.py__bases__S   s,     
,,88:
 
 	
r"   c                 6    U R                   R                  5       $ r   )r*   get_qualified_namesrN   s    r   rc   !CompiledValue.get_qualified_namesZ   s    !!5577r"   c                 6    U R                   R                  5       $ r   )r*   
py__bool__rN   s    r   rf   CompiledValue.py__bool__]       !!,,..r"   c                 6    U R                   R                  5       $ r   )r*   rD   rN   s    r   rD   CompiledValue.is_class`   s    !!**,,r"   c                 6    U R                   R                  5       $ r   )r*   is_functionrN   s    r   rl   CompiledValue.is_functionc       !!--//r"   c                 6    U R                   R                  5       $ r   )r*   	is_modulerN   s    r   rp   CompiledValue.is_modulef       !!++--r"   c                     g)NTr5   rN   s    r   is_compiledCompiledValue.is_compiledi   s    r"   c                     g)NFr5   rN   s    r   is_stubCompiledValue.is_stubl   s    r"   c                 6    U R                   R                  5       $ r   )r*   is_instancerN   s    r   rz   CompiledValue.is_instanceo   rn   r"   c                 6    U R                   R                  5       $ r   )r*   	py__doc__rN   s    r   r}   CompiledValue.py__doc__r   rr   r"   c              #     #     U R                   R                  5       nU H  n[        X5      v   M     g ! [         a    U R	                  5       u  p4U(       d  / nOUR                  S5      nU R                   R                  5       (       a  UR                  SS5        U H3  nUR                  5       R                  S5      u  pxn	[        XU	5      v   M5      g f = f7f)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_namesCompiledValue.get_param_namesu   s     	@#11FFH $4(?? $4  
	A"668OJ#))#.!!4466a(#$779#6#6s#; +D@@ 
	As&   C5 CB!CCCCc                 >    U R                  5       u  p[        X5      /$ r   )r   r   )r   r   return_strings      r   get_signaturesCompiledValue.get_signatures   s!    335 566r"   c                 p    SU R                   R                  < SU R                  R                  5       < S3$ N<: >)r=   r&   r*   get_reprrN   s    r   __repr__CompiledValue.__repr__   s&    !^^44d6H6H6Q6Q6STTr"   c                 @    U R                  5       nUc  g[        U5      $ )N) r   )r}   r   )r   docs     r   r   !CompiledValue._parse_function_doc   s!    nn;"3''r"   c                 6    U R                   R                  5       $ r   )r*   get_api_typerN   s    r   api_typeCompiledValue.api_type   s    !!..00r"   c              #   2   #    U R                  U5      v   g 7fr   )_ensure_one_filter)r   rz   origin_scopes      r   get_filtersCompiledValue.get_filters   s     %%k22s   c                 .    [        U R                  X5      $ r   )CompiledValueFilterr;   )r   rz   s     r   r    CompiledValue._ensure_one_filter   s    "4#7#7KKr"   c                   > [        [        [        [        5          U R                  R                  UU R                  R                  (       + S9n S S S 5        Wc  [        TU ]  U5      $ [        [        U R                  U5      /5      $ ! [         a    [        TU ]  U5      s sS S S 5        $ f = f! , (       d  f       Nh= fN)safe)r   
IndexErrorKeyError	TypeErrorr*   py__simple_getitem__r;   allow_unsafe_executionsrG   r:   r   rB   )r   indexrU   r=   s      r   r   "CompiledValue.py__simple_getitem__   s    #J)D;++@@!11III A  E >7/6601E1EvNOPP " ;w3E:: ED; EDs(   B33BB0$B3/B00B33
Cc                    >^  T R                   R                  5       nUc  [        TT ]  X5      $ [	        U 4S jU 5       5      $ )Nc              3   P   >#    U  H  n[        TR                  U5      v   M     g 7fr   rR   rS   s     r   rV   .CompiledValue.py__getitem__.<locals>.<genexpr>   s(      
* $D$8$8&AA*rX   )r*   py__getitem__all_valuesr:   py__getitem__r   )r   index_value_setcontextualized_nodeall_access_pathsr=   s   `   r   r   CompiledValue.py__getitem__   sJ    --EEG# 7(NN 
*
 
 	
r"   c              #     >#    U R                   R                  5       (       d  [        TU ]  U5       S h  vN   U R                   R	                  5       nUc  g U H$  n[        [        U R                  U5      5      v   M&     g  NM7fr   )r*   has_iterr:   
py__iter__py__iter__listr   rB   r;   )r   r   access_path_listrU   r=   s       r   r   CompiledValue.py__iter__   su     !!**,,w)*=>>>--<<>#&F !89M9Mv!VWW ' ?s   2BBABc                 6    U R                   R                  5       $ r   )r*   
py__name__rN   s    r   r   CompiledValue.py__name__   rh   r"   c                 r    U R                  5       nUc  U R                  R                  5       n[        X5      $ r   )r   r*   r   CompiledValueNamer   r   s     r   r   CompiledValue.name   s2     <%%..0D ,,r"   c              #     #    SSK Jn  SSKJn  U R                  S:w  a  g U R                  5       S   R                  5        Hi  n U R                  R                  R                  R                  U5        U" U R                  U5      nU R                  R                  XQ5       S h  vN   Mk     UR                  U 5       S h  vN   g  N"! [         a     M  f = f N7f)Nr   )
docstringsbuiltin_from_namefunction   )jedi.inferencer   jedi.inference.compiledr   r   r   r   r;   builtins_moduler*   r+   executerG   infer_return_types)r   paramsr   r   r   bltn_objs         r   rF   CompiledValue._execute_function   s     -===J&,,.q1779DJ $$44BBPPQUV -T-A-A4H//77III : 00666 J	 " 
 	7sB   AC/C
41C%C&CCC

CCCCc                 r     U R                   R                  5       $ ! [         a    U[        :X  a  e Us $ f = fr   )r*   get_safe_valuer   r   )r   r   s     r   r   CompiledValue.get_safe_value   s;    	%%4466 	)#N	s    66c           	           [        [        U R                  U R                  R	                  UR                  U5      5      /5      $ ! [
         a	    [        s $ f = fr   )r   rB   r;   r*   execute_operationr   r   )r   otheroperators      r   r   CompiledValue.execute_operation   s]    	4$$""44U5H5H(S     		s   AA AAc           	      ,  > U R                   R                  5       S:X  a  [        U /5      $ U R                   R                  5       u  pU Vs/ s H#  n[        [	        U R
                  U5      /5      PM%     nnUS:X  a  [        R                  " S U 5       5      $ U(       a\  [        U R
                  R                  R                  U5       Vs/ s H  nUR                  U5      PM     sn5      R                  5       $ [        TU ])  5       $ s  snf s  snf )NNoneUnionc              3   @   #    U  H  oR                  5       v   M     g 7fr   )rC   )rT   args     r   rV   3CompiledValue.execute_annotation.<locals>.<genexpr>   s     %T)3&<&<&>&>)s   )r*   r   r   get_annotation_name_and_argsrB   r;   	from_setstyping_modulepy__getattribute__with_genericsrC   r:   )r   r   argspathrI   vr=   s         r   rC    CompiledValue.execute_annotation   s   &&(F2TF##''DDF
 
 -d.B.BDIJK 	 
 7?%%%T)%TTT --;;NNtTTA 	*T  "!#$ w)++
s   *DDc                 ^    [        U R                  U R                  R                  5       5      $ r   )rB   r;   r*   negaterN   s    r   r   CompiledValue.negate
  s$    &t';';T=O=O=V=V=XYYr"   c                     [         $ r   r   rN   s    r   get_metaclassesCompiledValue.get_metaclasses      r"   c                     [        U 5      $ r   )r   rN   s    r   _as_contextCompiledValue._as_context  s    t$$r"   c                 6    U R                   R                  5       $ r   )r*   get_array_typerN   s    r   
array_typeCompiledValue.array_type  s    !!0022r"   c                     U R                   R                  5        Vs/ s H  n[        U R                  U5      PM     sn$ s  snf r   )r*   get_key_pathsrB   r;   )r   ks     r   get_key_valuesCompiledValue.get_key_values  sE     ''557
7 $D$8$8!<7
 	
 
s    A c                 B    U R                   R                  5       S;   a  gg )N)r   z<class 'NoneType'>r   )r*   r   )r   add_class_infos     r   get_type_hintCompiledValue.get_type_hint  s     &&(,JJr"   )r*   r   )FN)T)/r&   r0   r1   r2   r    rH   r   rM   r[   r`   rc   rf   rD   rl   rp   rt   rw   rz   r}   r   r   r   r   r	   r   propertyr   r   r   r   r   r   r   r   rF   r   r   r   rC   r   r   r  r  r
  r  r4   __classcell__)r=   s   @r   r7   r7   .   s\   +C* _ _ 
 
 
 
8/-0.0. @ @$7U ( ( 1 13 L LQ	

X/ - -7$ &/ ,,Z% 3 3
 r"   r7   c                   N    \ rS rSrSrS rS rS r\S 5       r	S\
\   4S jrS	rg)
CompiledModulei#  Nc                     [        U 5      $ r   )r   rN   s    r   r  CompiledModule._as_context&  s    $T**r"   c                 6    U R                   R                  5       $ r   )r*   
py__path__rN   s    r   r  CompiledModule.py__path__)  rh   r"   c                 &    U R                  5       S L$ r   )r  rN   s    r   
is_packageCompiledModule.is_package,  s     ,,r"   c                 ^    U R                  5       nUc  g[        UR                  S5      5      $ )Nr5   .)r   rY   r   r   s     r   string_namesCompiledModule.string_names/  s+      <TZZ_%%r"   returnc                 6    U R                   R                  5       $ r   )r*   
py__file__rN   s    r   r"  CompiledModule.py__file__7  rh   r"   r5   )r&   r0   r1   r2   file_ior  r  r  r  r  r   r   r"  r4   r5   r"   r   r  r  #  s:    G+/- & &/HTN /r"   r  c                   X    \ rS rSrS rS rS rS rS r\	S 5       r
S r\S	 5       rS
rg)CompiledNamei;  c                 ^    Xl         UR                  5       U l        X l        X0l        X@l        g r   )_inference_state
as_contextr<   _parent_valuestring_nameis_descriptor)r   r;   parent_valuer   r,  s        r   r    CompiledName.__init__<  s+     /*557)*r"   c                 >    U R                  5       R                  5       $ r   )infer_compiled_valuer}   rN   s    r   r}   CompiledName.py__doc__C  s    ((*4466r"   c                 \    U R                   R                  5       nUc  g XR                  4-   $ r   )r<   rc   r+  )r   parent_qualified_namess     r   _get_qualified_names!CompiledName._get_qualified_namesF  s2    !%!4!4!H!H!J!)%)9)9(;;;r"   c                     U R                   nUR                  5       (       d  UR                  5       (       a  U R                   R                  5       $ g r   )r<   rp   rD   	get_value)r   contexts     r   get_defining_qualified_value)CompiledName.get_defining_qualified_valueL  sB    %%'"2"2"4"4&&0022r"   c                      U R                   R                  nSU R                  R                  < SU< SU R
                  < S3$ ! [         a    S n N;f = f)Nr   z: (z).r   )r<   r   rG   r=   r&   r+  r   s     r   r   CompiledName.__repr__S  sN    	&&++D #'.."9"94AQAQRR  	D	s   A AAc                 Z    U R                   (       a  gU R                  5       R                  $ )Nr,   )r,  r0  r   rN   s    r   r   CompiledName.api_typeZ  s%     ((*333r"   c                 6    [        U R                  5       /5      $ r   )r   r0  rN   s    r   inferCompiledName.inferc  s    224566r"   c                 X    [        U R                  U R                  U R                  5      $ r   )create_from_namer(  r*  r+  rN   s    r   r0  !CompiledName.infer_compiled_valuef  s#     5 5t7I7I4K[K[\\r"   )r(  r*  r,  r<   r+  N)r&   r0   r1   r2   r    r}   r4  r9  r   r  r   r@  r	   r0  r4   r5   r"   r   r&  r&  ;  sK    +7<S 4 47 ] ]r"   r&  c                   <    \ rS rSrS r\S 5       rS rS rS r	Sr
g)	r   ik  c                 2    UR                   U l         X l        g r   )r<   _signature_param)r   compiled_valuer   s      r   r    SignatureParamName.__init__l  s    ,;; /r"   c                 .    U R                   R                  $ r   )rG  r   rN   s    r   r+  SignatureParamName.string_namep  s    $$)))r"   c                    U R                  5       U R                  -   nU R                  R                  (       a  USU R                  R                  -   -  nU R                  R
                  (       a  USU R                  R                  -   -  nU$ )Nr   r   )_kind_stringr+  rG  has_annotationannotation_stringhas_defaultdefault_string)r   ss     r   	to_stringSignatureParamName.to_stringt  st    $"2"22  //--????A  ,,t,,;;;;Ar"   c                 J    [        [        U R                  R                  5      $ r   )getattrr   rG  	kind_namerN   s    r   get_kindSignatureParamName.get_kind|  s    y$"7"7"A"ABBr"   c                 &   U R                   nU R                  R                  n[        nUR                  (       a  [        [        X!R                  5      /5      nUR                  (       a'  [        X!R                  5      nX4R                  5       -  nU$ r   )rG  r<   r;   r   rP  r   rB   r   rN  
annotationexecute_with_values)r   r   r;   valuesr[  s        r   r@  SignatureParamName.infer  sn    !!--====6		RSTF0,,OJ4466Fr"   )rG  r<   N)r&   r0   r1   r2   r    r  r+  rS  rX  r@  r4   r5   r"   r   r   r   k  s+    0 * *C	r"   r   c                   ,    \ rS rSrS rS rS rS rSrg)r   i  c                 >    UR                   U l         X l        X0l        g r   )r<   r+  _default)r   rH  r   r   s       r   r    UnresolvableParamName.__init__  s    ,;;r"   c                 "    [         R                  $ r   )r   POSITIONAL_ONLYrN   s    r   rX  UnresolvableParamName.get_kind  s    (((r"   c                 d    U R                   nU R                  (       a  USU R                  -   -  nU$ )Nr   )r+  ra  )r   strings     r   rS  UnresolvableParamName.to_string  s,    !!==cDMM))Fr"   c                     [         $ r   r   rN   s    r   r@  UnresolvableParamName.infer  r   r"   )ra  r<   r+  N)	r&   r0   r1   r2   r    rX  rS  r@  r4   r5   r"   r   r   r     s     
)r"   r   c                       \ rS rSrS rSrg)r   i  c                 >    X l         Xl        UR                  U l        g r   )r+  _valuer<   )r   valuer   s      r   r    CompiledValueName.__init__  s    #22r"   )rm  r<   r+  N)r&   r0   r1   r2   r    r4   r5   r"   r   r   r     s    3r"   r   c                   $    \ rS rSrSrS rS rSrg)EmptyCompiledNamei  z
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                 2    UR                   U l        X l        g r   )r   r<   r+  )r   r;   r   s      r   r    EmptyCompiledName.__init__  s    -==r"   c                     [         $ r   r   rN   s    r   r@  EmptyCompiledName.infer  r   r"   )r<   r+  N)r&   r0   r1   r2   r3   r    r@  r4   r5   r"   r   rq  rq    s    
 r"   rq  c                   \    \ rS rSrSS jrS rSS jr\SSS.S jj5       rS r	S	 r
S
 rSrg)r   i  Fc                 (    Xl         X l        X0l        g r   r(  rH  rz   )r   r;   rH  rz   s       r   r    CompiledValueFilter.__init__  s     /,&r"   c                    ^^ U R                   R                  mU R                  R                  (       + mU R	                  UUU4S jU4S jSS9$ )Nc                 $   > TR                  U TS9$ r   )is_allowed_getattr)r   r*   r   s    r   <lambda>)CompiledValueFilter.get.<locals>.<lambda>  s    99$T9Jr"   c                 *   > U TR                  5       ;   $ r   )dir)r   r*   s    r   r}  r~    s    !2!2!44r"   T)check_has_attribute)rH  r*   r(  r   _get)r   r   r*   r   s     @@r   getCompiledValueFilter.get  sJ    ++99((@@@yyJ4 $	  
 	
r"   c                    U" U5      u  pVnUbG  [        U R                  U5      R                  5       nU(       a  U V	s/ s H  n	[        X5      PM     sn	$ U(       a	  U(       d  / $ U(       d  U(       d,  U R                  R                  (       d  U R                  USS9/$ U R                  (       a  U" U5      (       d  / $ U R                  XS9/$ s  sn	f )zE
To remove quite a few access calls we introduced the callback here.
T)is_emptyr,  )rB   r(  rC   r   r   _get_cached_namerz   )
r   r   allowed_getattr_callbackin_dir_callbackr  has_attributer,  property_return_annotationr]  r   s
             r   r  CompiledValueFilter._get  s     D\D
@&@ &1,%%* ! "  <BCFq)!2FCC}I--EE))$)>??OD$9$9I%%d%HII Ds   Cr  c                Z    U(       a  [        U R                  U5      $ U R                  XS9$ )Nr  )rq  r(  _create_name)r   r   r  r,  s       r   r  $CompiledValueFilter._get_cached_name  s,    $T%:%:DAA$$T$GGr"   c                 V  ^ SSK Jn  / nU R                  R                  R	                  5       u  nmT H   nX R                  UU4S jU4S j5      -  nM"     U R                  (       dA  U(       a:  U" U R                  S5      R                  5        H  nX%R                  5       -  nM     U$ )Nr   r   c                    > TU    $ r   r5   r   	dir_infoss    r   r}  ,CompiledValueFilter.values.<locals>.<lambda>  s	    Yt_r"   c                    > U T;   $ r   r5   r  s    r   r}  r    s
    TY.r"   type)
r   r   rH  r*   get_dir_infosr  rz   r(  r   r]  )r   r   namesneeds_type_completionsr   filterr  s         @r   r]  CompiledValueFilter.values  s    =,0,?,?,M,M,[,[,])	 DYY,. E  $:+D,A,A6JVVX( Yr"   c                 F    [        U R                  U R                  UU5      $ r   )r&  r(  rH  )r   r   r,  s      r   r   CompiledValueFilter._create_name  s'    !!	
 	
r"   c                 T    SU R                   R                  < SU R                  < S3$ r   )r=   r&   rH  rN   s    r   r   CompiledValueFilter.__repr__  s    !^^44d6I6IJJr"   rx  N)F)r&   r0   r1   r2   r    r  r  r	   r  r]  r  r   r4   r5   r"   r   r   r     s@    '

J4 He H H,
Kr"   r   floatstrintdict)zfloating point number	characterinteger
dictionaryrg  c                     SnU R                  S5      n[        XS 5       H(  u  p4US:X  a  US-  nOUS:X  a  US-  nUS:X  d  M$  X#-   n  O   XS-   W nS n [        R                  " SXv5      u  phUS:X  a  OM"  UR                  S
S5      n[        R                  " SXUS-    5      n	U	c  S	n
Xj4$ XYR                  5       -   n[        R                  " S5      nUR                  X5      R                  S5      R                  5       n[        R                  " SSU5      n[         R#                  X5      n
Xj4$ ! [        [
        4 a    [        R                  " S5        SnS	n Nf = f)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                     U R                  S5      R                  S5      n[        U5       H"  u  p#U(       d  M  SU;  d  M  X==   S-  ss'   M$     SR                  U5      $ )Nr   r   r   z=None)groupr   	enumeratejoin)mr   ias       r   change_options+_parse_function_doc.<locals>.change_options,  sQ    771:##C(D!$1AGw&G ( 88D>!r"   z ?\[([^\[\]]+)\]zno brackets found - no paramr   -r   z-[>-]*    z(,\n|[^\n-])+z[nN]ew (.*)z\1())r   r  resubnr   UnboundLocalErrorr   dbgreplacesearchendcompilematchr  r   subdocstr_defaultsr  )r   countstartr  rR  r  	param_strr  changesrr   r   patternret_strs                 r   r   r     s~   		#c&k*DACx
c
zi + 	#&		" !#)<)7"DI!|	 
 !!#s+I 			)SS1W-.Ay > eeg**-.--+11!4::<&&':!!'3>I )*  			01	s   A D7 D7 7*E$#E$c                     UR                   R                  US S9nS nU H!  n[        U UUc  S OUR                  5       S9nM#     U$ )N)r   r<   )r*   r+   create_cached_compiled_valuer)  )r;   rH  r   access_pathsrn  access_paths         r   rC  rC  K  sU    !//==dD=QLE#,#(=4e6F6F6H
 $ Lr"   c                    ^  SU 4S jjnU$ )z5The cache doesn't care about keyword vs. normal args.c                    > T" XU5      $ r   r5   )r;   objr<   r%   s      r   wrapper'_normalize_create_args.<locals>.wrapperZ  s    O.99r"   r   r5   )r%   r  s   ` r   _normalize_create_argsr  X  s    :Nr"   c                 p    S nUR                    H#  u  p4[        U UUc  S OUR                  5       S9nM%     U$ )Nr  )accessesr  r)  )r;   r  rn  r   rU   s        r   rB   rB   _  sB    E#,,,#(=4e6F6F6H
 - Lr"   c                 b    [        U[        5      (       a   eUc  [        nO[        nU" XU5      $ r   )
isinstancer7   r  )r;   r*   r<   clss       r   r  r  j  s4     .-8888~>>r"   )6r3   r  	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   r7   r  r&  r   r   r   rq  r   r  r   rC  r  rB   r  r5   r"   r   <module>r     s   
      ( % 1  @ @ 4 4 ? 9 5 I, ,*rE rj/] /0-]) -]`+-C @.0F &3(> 3. PK. PKh %9x
 !? " ?r"   