
    MhI                     v   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	Z	d dl
Z
d dlZd dlmZ d dlmZmZ d dlmZ eeeeeefZ eej                  Zej        ej        ej        ej        ej         ej!        ej"        ej#        ej$        ej%        ej&        eej'        ej(        ej)        fZ* eej                  Z ee+j,                  Z-ej.        d         /                    e0          Z1 ee1d                   Z2 e0            Z3ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        dZ<ej=        ej>        d	Z?e?@                    e<           ej        ej!        ej#        ee-e2eAeBfZCe3fd
ZD edd          ZEd ZFd ZGd ZH G d d          ZIdeIfdZJd ZK G d d          ZLd ZMdS )    N)
namedtuple)Path)OptionalTuple)getattr_static__dict____subclasshook__)z==z!=iszis not<z<=>z>=)+-c                     	 t          | |          \  }}t          |t                    rt          | |          S n# t          $ r |t
          u r |cY S w xY w|S N)r   
isinstanceALLOWED_DESCRIPTOR_ACCESSgetattrAttributeError	_sentinel)objnamedefaultattris_get_descriptors        ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jedi/inference/compiled/access.pysafe_getattrr   N   s    &"0d";"; d566 	& 3%%%	&    i Ks   ; AASignatureParamz]name has_default default default_string has_annotation annotation annotation_string kind_namec                       fd}|S )Nc                 ^     |           }t          |          dk    r|d d         dz   }|S )N2   z..)len)selfrfuncs     r   wrapperzshorten_repr.<locals>.wrapperi   s5    DJJq66B;;#2#A     )r$   r%   s   ` r   shorten_reprr(   h   s#        
 Nr&   c                 6    | j                             |          S r   )compiled_subprocessget_or_create_access_handle)inference_stater   s     r   create_accessr-   q   s    .JJ3OOOr&   c                    t           j        |c}t           _        	 t          |           n# t          $ r3 t	          j        d|d|dt          d           Y |t           _        d S t          $ r@ t	          j        dt          j	                    z  t          d           Y |t           _        d S w xY w	 |t           _        n# |t           _        w xY wt           j
        |         }t          | |          S )NzModule z not importable in path .   )
stacklevelzCannot import:
%s)syspath
__import__ImportErrorwarningswarnUserWarning	Exception	traceback
format_excmodulescreate_access_path)r,   dotted_namesys_pathtempmodules        r   load_modulerB   u   s   XxND#(;   6Akk888L	
 	
 	
 	

       	 9#7#9#99;ST	
 	
 	
 	
  	 " 4 [%Fov666s2   + C -B0C '9B0 C /B00C Cc                       e Zd Zd ZdS )
AccessPathc                     || _         d S r   )accessesr"   rF   s     r   __init__zAccessPath.__init__   s     r&   N)__name__
__module____qualname__rH   r'   r&   r   rD   rD      s#        ! ! ! ! !r&   rD   returnc                 d    t          | |          }t          |                                          S r   )r-   rD   get_access_path_tuples)r,   r   accesss      r   r=   r=      s+    ?C00Ff3355666r&   c                    t          j        |           rdS t          j        |           rdS t          j        |           s<t          j        |           s(t          j        |           st          j        |           rdS dS )NclassrA   functioninstance)inspectisclassismodule	isbuiltinismethodismethoddescriptor
isfunctionr   s    r   get_api_typer\      s    s w		#		 x		3		 7#3C#8#8 )#..292DS2I2Iz:r&   c                   n   e Zd Zd Zd Zd ZdefdZd Zde	e
         fdZd Zd	 Zd
 Zd ZdddZd Zd Zd Zd Zed             Zd Zd Zd Zd Zd Zd Zd Zd Zd.dee e e	e         f         fdZ!e"fdZ#d Z$d Z%d  Z&d! Z'd" Z(d# Z)d$ Z*d% Z+d& Z,d' Z-d( Z.d) Z/de	e         fd*Z0d+ Z1d, Z2d-S )/DirectObjectAccessc                 "    || _         || _        d S r   )_inference_state_obj)r"   r,   r   s      r   rH   zDirectObjectAccess.__init__   s     /			r&   c                 J    | j         j        d|                                 dS )N())	__class__rI   get_reprr"   s    r   __repr__zDirectObjectAccess.__repr__   s$    >222DMMOOOODDr&   c                 ,    t          | j        |          S r   r-   r`   r"   r   s     r   _create_accessz!DirectObjectAccess._create_access   s    T2C888r&   rL   c                 ,    t          | j        |          S r   )r=   r`   rk   s     r   _create_access_pathz&DirectObjectAccess._create_access_path   s    !$"7===r&   c                 *    t          | j                  S r   )boolra   rg   s    r   
py__bool__zDirectObjectAccess.py__bool__   s    DIr&   c                 X    	 t          | j        j                  S # t          $ r Y d S w xY wr   )r   ra   __file__r   rg   s    r   
py__file__zDirectObjectAccess.py__file__   s<    		*+++ 	 	 	44	s    
))c                 8    t          j        | j                  pdS )N )rT   getdocra   rg   s    r   	py__doc__zDirectObjectAccess.py__doc__   s    ~di((.B.r&   c                     t          | j                  rt          j        | j                  r| j        }n	 | j        j        }n# t
          $ r Y d S w xY w	 |j        S # t
          $ r Y d S w xY wr   )_is_class_instancera   rT   rY   re   r   rI   )r"   clss     r   
py__name__zDirectObjectAccess.py__name__   s    !$),, 		*4955		)CCi)!    tt
	< 	 	 	44	s#   A 
AAA 
A+*A+c                 ^     t           fd j        j        dd          D                       S )Nc              3   B   K   | ]}                     |          V  d S r   rn   ).0r{   r"   s     r   	<genexpr>z7DirectObjectAccess.py__mro__accesses.<locals>.<genexpr>   s1      TTsT--c22TTTTTTr&      )tuplera   __mro__rg   s   `r   py__mro__accessesz$DirectObjectAccess.py__mro__accesses   s7    TTTTdi>OPQPRPR>STTTTTTr&   c                     t           j        t                    r% fd j                                        D             S t           j        t          t
          f          r fd j        D             S                                  r3t           j         j        j	                  }|
                                S 	  j        j        }t           j        |                                          }||gS n# t          $ r Y nw xY wd S )Nc                 :    g | ]}                     |          S r'   r   r   vr"   s     r   
<listcomp>z>DirectObjectAccess.py__getitem__all_values.<locals>.<listcomp>   s'    LLLAD,,Q//LLLr&   c                 :    g | ]}                     |          S r'   r   r   s     r   r   z>DirectObjectAccess.py__getitem__all_values.<locals>.<listcomp>   s'    CCCAD,,Q//CCCr&   )r   ra   dictvalueslistr   is_instancer^   r`   re   py__getitem__all_values__getitem__get_return_annotationr   )r"   r{   getitem
annotations   `   r   r   z*DirectObjectAccess.py__getitem__all_values   s   di&& 	MLLLL9I9I9K9KLLLLdi$// 	DCCCCCCCC 	1$T%:DI<OPPC..000	$i+G ,D,A7KKaaccJ%"|# &	  	 	 	D	 ts   =C6 6
DDT)safec                    |rt          | j                  t          vrd S |                     | j        |                   S r   )typera   ALLOWED_GETITEM_TYPESrn   )r"   indexr   s      r   py__simple_getitem__z'DirectObjectAccess.py__simple_getitem__   s=     	DOO+@@@4''	%(8999r&   c                 n   	 | j         j        }t          | j        |                                          }||gS n# t
          $ r Y d S w xY wt          | j                   t          vrg S g }t          | j                   D ]5\  }}|dk    r n)|	                    | 
                    |                     6|S )N   )ra   __iter__r^   r`   r   r   r   r   	enumerateappendrn   )r"   iter_methodplstiparts         r   py__iter__listz!DirectObjectAccess.py__iter__list   s    	),K #4#8+FF\\^^A}s
 	  	 	 	44	 	??"777I ++ 	7 	7GAt2vvJJt//556666
s   ; 
A	A	c                 @    |                      | j        j                  S r   )rn   ra   re   rg   s    r   py__class__zDirectObjectAccess.py__class__  s    ''	(;<<<r&   c                 4      fd j         j        D             S )Nc                 :    g | ]}                     |          S r'   r   )r   baser"   s     r   r   z2DirectObjectAccess.py__bases__.<locals>.<listcomp>
  s'    OOO4((..OOOr&   )ra   	__bases__rg   s   `r   py__bases__zDirectObjectAccess.py__bases__	  s"    OOOO49;NOOOOr&   c                     t          | j        dd           }t          |t                    rt	          d |D                       sd S |S )N__path__c              3   @   K   | ]}t          |t                    V  d S r   )r   str)r   r   s     r   r   z0DirectObjectAccess.py__path__.<locals>.<genexpr>  s,      ==!:a--======r&   )r   ra   r   r   all)r"   pathss     r   
py__path__zDirectObjectAccess.py__path__  sR    	:t44 %&& 	==u=====	4r&   c                    t          j        | j                  rt          | j                  S t	          | j        dd          dk    rt          | j                  S t          | j                  }|t
          k    rt
                              | j                  S t	          |dd          dk    rt          | j                  S t                              | j                  S )NrJ   rv   r   builtins)rT   rV   ra   reprr   r   rh   object)r"   type_s     r   rf   zDirectObjectAccess.get_repr  s    DI&& 	#	??"	<<<<
JJ	??"TYD====+++|R888JFF	??"ty)))r&   c                 4    t          j        | j                  S r   )rT   rU   ra   rg   s    r   is_classzDirectObjectAccess.is_class&  s    ty)))r&   c                 f    t          j        | j                  pt          j        | j                  S r   )rT   rZ   ra   rX   rg   s    r   is_functionzDirectObjectAccess.is_function)  s'    !$),,K0@0K0KKr&   c                 4    t          j        | j                  S r   )rT   rV   ra   rg   s    r   	is_modulezDirectObjectAccess.is_module,  s    	***r&   c                 *    t          | j                  S r   )rz   ra   rg   s    r   r   zDirectObjectAccess.is_instance/  s    !$),,,r&   c                 4    t          j        | j                  S r   )rT   rY   ra   rg   s    r   rY   z%DirectObjectAccess.ismethoddescriptor2  s    )$)444r&   c                     d }|                                  rdS  || j                  }|! |t          | j                            }|dS t          |                    d                    S )Nc           	      B    t          | dt          | dd                     S )NrK   rI   )r   r[   s    r   try_to_get_namez?DirectObjectAccess.get_qualified_names.<locals>.try_to_get_name6  s     3Z0N0NOOOr&   r'   r/   )r   ra   r   r   split)r"   r   r   s      r   get_qualified_namesz&DirectObjectAccess.get_qualified_names5  s|    	P 	P 	P >> 	2ty))<"?4	??33D|rTZZ__%%%r&   c                 *    t          | j                  S r   )dirra   rg   s    r   r   zDirectObjectAccess.dirB  s    49~~r&   c                 R    	 t          | j                   dS # t          $ r Y dS w xY w)NTF)iterra   	TypeErrorrg   s    r   has_iterzDirectObjectAccess.has_iterE  s;    	OOO4 	 	 	55	s    
&&c                 <   	 t          | j        |          \  }}|rst          |          t          vr]t	          |t
                    rFt          |j        d          r1t          | j	        |j                  }dd|
                                fS dS n# t          $ r |syt          j        d          5  t          j        d           	 t          | j        |          dd fcd d d            cY S # t          $ r Y nw xY w	 d d d            n# 1 swxY w Y   Y dS w xY wdS )	N__annotations__T)TTNrecordalwaysF)FFN)TFN)r   ra   r   r   r   propertyhasattrfgetr^   r`   r   r   r6   catch_warningssimplefilterr9   )r"   r   r   r   r   as         r   is_allowed_getattrz%DirectObjectAccess.is_allowed_getattrL  s   	(&4TY&E&E#D#& ! (T$ZZ7P%P%PdH-- Ety*;<< E.t/DdiPP#T1+B+B+D+DDD ('3  	& 	& 	&  ,D999  )(333&ty$77D          %                    &%%!	&4 ! sY   B !D1D
C-D-
C:7D
9C::D
>D
D	DD	DDc                    	 t          j        d          5  t          j        d           t          | j        |          }d d d            n# 1 swxY w Y   n?# t
          $ r2}|t          u rt          |t                    r t          |}Y d }~nd }~ww xY w| 	                    |          }t          j        |          r|gS 	 |j        }|6t          |t                    r!	 t          |           n!# t          $ r Y nw xY wn# t          $ r Y nw xY wt          j        |          }|*t          j        t#          |                    }|t$          }| 	                    |          |gS )NTr   r   )r6   r   r   r   ra   r9   r   r   r   rl   rT   rV   rJ   r   r4   r5   	getmoduler   r   )r"   r   r   
return_objerO   rA   s          r   getattr_pathsz DirectObjectAccess.getattr_pathsl  s   	! (555 6 6%h///$TY55
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6  
	! 
	! 
	!)##a00   %$ JJJJJJ
	! $$Z00J'' 	8O	*F !j&=&=!v&&&& #   D  	 	 	D	 ":..>&tJ'7'788F~!##F++V44s^   A *AA AA AA 
B#(BBD $C4 4
D D
DDc                     t          | j                  t          t          t          t
          t          t          fv s| j        | j        S t          dt          | j                  z            )Nz Object is type %s and not simple)	r   ra   rp   bytesfloatintr   slice
ValueErrorrg   s    r   get_safe_valuez!DirectObjectAccess.get_safe_value  sM    	??tUE3UCCCtyGX9;d49ooMNNNr&   c                 *    t          | j                  S r   )r\   ra   rg   s    r   r\   zDirectObjectAccess.get_api_type  s    DI&&&r&   c                 >    t          | j        t                    rdS d S )Nr   )r   ra   r   rg   s    r   get_array_typez!DirectObjectAccess.get_array_type  s     di&& 	6tr&   c                 :      fd} fd |            D             S )Nc               3   ~   K   t          j                                                  D ]\  } }| dk    r d S |V  d S )Nr    )r   ra   keys)r   kr"   s     r   iter_partial_keysz;DirectObjectAccess.get_key_paths.<locals>.iter_partial_keys  sU      #DINN$4$455  A r66EE r&   c                 :    g | ]}                     |          S r'   r   )r   r   r"   s     r   r   z4DirectObjectAccess.get_key_paths.<locals>.<listcomp>  s'    III((++IIIr&   r'   )r"   r   s   ` r   get_key_pathsz DirectObjectAccess.get_key_paths  sC    	 	 	 	 	 JIII5F5F5H5HIIIIr&   c                 \      fd                                  D             }d |D             S )Nc                 :    g | ]}t          j        |          S r'   rj   )r   or"   s     r   r   z=DirectObjectAccess.get_access_path_tuples.<locals>.<listcomp>  s&    ^^^M$"7;;^^^r&   c                 :    g | ]}|                                 |fS r'   )r|   )r   rO   s     r   r   z=DirectObjectAccess.get_access_path_tuples.<locals>.<listcomp>  s)    EEE&""$$f-EEEr&   )_get_objects_pathrG   s   ` r   rN   z)DirectObjectAccess.get_access_path_tuples  s<    ^^^^TE[E[E]E]^^^EEHEEEEr&   c                 p      fd}t          t          t           |                                          S )Nc               3   F  K   j         } | V  	 | j        } | V  n# t          $ r Y nw xY w	 | j        }|t          V  d S 	 t
          j        |         V  d S # t          $ r t          V  Y d S w xY w# t          $ r$ t          j	        |           st          V  Y d S Y d S w xY wr   )
ra   __objclass__r   rJ   r   r2   r<   KeyErrorrT   rV   )r   imp_plzr"   s     r   getz1DirectObjectAccess._get_objects_path.<locals>.get  s	     )CIII& 				 "   
'. ?"NNNNN'!k'222222# ' ' '&' " # # #',, #"NNNNNN# # ##s/    
))A2 A A/.A/2'B B )r   reversed)r"   r   s   ` r   r   z$DirectObjectAccess._get_objects_path  s@    	' 	' 	' 	' 	'8 HT##%%[[))***r&   c                 |    |j         }t          |         }|                      || j        |j                            S r   )rO   
_OPERATORSrn   ra   )r"   other_access_handleoperatorother_accessops        r   execute_operationz$DirectObjectAccess.execute_operation  s9    *1!''49l6G(H(HIIIr&   c                 z    d}d}t           j        dd          dk    rt          j        dt	           j                            }|V|                    d          }d	dl}t          j        d
k    r |j	         j                  }nt           j        dd          }|t           fd|D                       fS )zF
        Returns Tuple[Optional[str], Tuple[AccessPath, ...]]
        Nr'   rJ   rv   r   typingztyping.(\w+)\[r   r   )      __args__c              3   B   K   | ]}                     |          V  d S r   r   )r   argr"   s     r   r   zBDirectObjectAccess.get_annotation_name_and_args.<locals>.<genexpr>  s1      IIS433C88IIIIIIr&   )r   ra   rematchr   groupr  r2   version_infoget_argsr   )r"   r   argsmr  s   `    r   get_annotation_name_and_argsz/DirectObjectAccess.get_annotation_name_and_args  s     	<<<<HH*DOO<<A}wwqzz#v--*6?4955DD'	:tLLLDUIIIIDIIIIIIIr&   c                 T    t          j        | j                  o| j        t          k    S r   )rT   rU   ra   r   rg   s    r   needs_type_completionsz)DirectObjectAccess.needs_type_completions  s     ty))?di4.??r&   c                 *    t          j        |          S r   )rT   formatannotation)r"   r   s     r   _annotation_to_strz%DirectObjectAccess._annotation_to_str  s    '
333r&   c                 r      fd                                  j                                        D             S )Nc                 P   g | ]}t          |j        |j        |j        u                    |j                  t          |j                  |j        |j        u                    |j                                      |j                  t          |j	                             S ))r   has_defaultr   default_stringhas_annotationr   annotation_string	kind_name)
r   r   r   emptyrn   r   r   r  r   kind)r   r   r"   s     r   r   z;DirectObjectAccess.get_signature_params.<locals>.<listcomp>  s     
 
 
  VIQW400;;#AI |17:33ALAA"&"9"9!,"G"Gaf++	 	 	
 
 
r&   )_get_signature
parametersr   rg   s   `r   get_signature_paramsz'DirectObjectAccess.get_signature_params  sK    
 
 
 
 **,,7>>@@
 
 
 	
r&   c                 r    | j         }	 t          j        |          S # t          t          f$ r t
          w xY wr   )ra   rT   	signatureRuntimeErrorr   r   rk   s     r   r  z!DirectObjectAccess._get_signature   sG    i	$S)))i( 	 	 	 		s    6c                    	 | j         j                            d          }n# t          $ r Y d S w xY w|d S 	 t	          j        | j                                       d          }n# t          $ r Y nw xY w|                     |          S )NrL   )ra   r   r   r   r  get_type_hintsr9   rn   )r"   r   s     r   r   z(DirectObjectAccess.get_return_annotation
  s    		)--h77AA 	 	 	44	 94	%di0044X>>AA 	 	 	D	 ''***s   " 
00,A% %
A21A2c                 8    |                      | j                   S r   )rn   ra   rg   s    r   negatezDirectObjectAccess.negate  s    ''
333r&   c                      t           fd                                 D                       }                                 |fS )zw
        Used to return a couple of infos that are needed when accessing the sub
        objects of an objects
        c              3   F   K   | ]}|                     |          fV  d S r   )r   )r   r   r"   s     r   r   z3DirectObjectAccess.get_dir_infos.<locals>.<genexpr>"  sJ       
 
 4**4001
 
 
 
 
 
r&   )r   r   r  )r"   tupless   ` r   get_dir_infosz DirectObjectAccess.get_dir_infos  s[    
  
 
 
 



 
 
 
 
 **,,f44r&   N)T)3rI   rJ   rK   rH   rh   rl   rD   rn   rq   r   r   rt   rx   r|   r   r   r   r   r   r   r   r(   rf   r   r   r   r   rY   r   r   r   r   rp   r   r   r   r   r\   r   r   rN   r   r  r  r  r  r!  r  r   r(  r,  r'   r&   r   r^   r^      s         E E E9 9 9>* > > > >  HTN    / / /  "U U U  ( 37 : : : : :  ,= = =P P P   * * \* * * *L L L+ + +- - -5 5 5& & &    ! !U4xPZG[;[5\ ! ! ! !@ +4 +5 +5 +5 +5ZO O O
' ' '  

J 
J 
JF F F+ + +>J J J
J J J$@ @ @4 4 4
 
 
  +x
'; + + + + 4 4 4	5 	5 	5 	5 	5r&   r^   c                     	 | j         }|t          k    o*t          |t                    ot          |t                     S # t
          $ r Y dS w xY w)zLike inspect.* methods.F)re   r   r   
issubclassNOT_CLASS_TYPESr   )r   r{   s     r   rz   rz   )  s`    ^m d{]z#t44]Z_=]=]9]]    uus   ? 
AA)NrT   typesr:   r2   r   r   collectionsr   r6   r	  r   r  pathlibr   r   r   &jedi.inference.compiled.getattr_staticr   r   r   r   r   	bytearrayr   r   r   replaceMethodDescriptorTypeBuiltinFunctionTypeCodeType	FrameTypeFunctionTypeGeneratorTypeGetSetDescriptorType
LambdaTypeMemberDescriptorType
MethodType
ModuleTypeTracebackTypeMappingProxyTypeSimpleNamespaceDynamicClassAttributer/  setr   WrapperDescriptorTyper   __get__r   object_class_dictClassMethodDescriptorTyper   eqneis_is_notltlegtgeCOMPARISON_OPERATORSaddsubr   updatestaticmethodclassmethodr   r   r   r(   r-   rB   rD   r=   r\   r^   rz   r'   r&   r   <module>rX     s$         



     " " " " " "  				         " " " " " " " " A A A A A AdE5)TB tCK((  
	N	O											& tCK(( S\** M*-55f==  D!23E!FGG FHH	 %
%
&i	
%	
%	 	  
	 
   & ' ' ' 
			  %.    ( c   P P P7 7 78! ! ! ! ! ! ! !
7
 7 7 7 7
	 	 	5 5 5 5 5 5 5 5D	^ 	^ 	^ 	^ 	^r&   