
    fI                     ^   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j4                        Zej8                  ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  eejN                  ejP                  ejR                  fZ* eej4                        Z ee+jX                        Z-ej\                  d   j_                  e0      Z1 ee1d         Z2 e0       Z3ejh                  ejj                  ejl                  ejn                  ejp                  ejr                  ejt                  ejv                  dZ<ejz                  ej|                  d	Z?e?j                  e<       ej>                  ejB                  ejF                  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 ZMy)    N)
namedtuple)Path)OptionalTuple)getattr_static__dict____subclasshook__)z==z!=iszis not<z<=>z>=)+-c                     	 t        | |      \  }}t        |t              rt        | |      S |S # t        $ r |t
        u r |cY S w xY wN)r   
isinstanceALLOWED_DESCRIPTOR_ACCESSgetattrAttributeError	_sentinel)objnamedefaultattris_get_descriptors        Y/var/www/cvtools/html/venv/lib/python3.12/site-packages/jedi/inference/compiled/access.pysafe_getattrr   N   s[    &"0d"; d56 3%%K  is   / AASignatureParamz]name has_default default default_string has_annotation annotation annotation_string kind_namec                       fd}|S )Nc                 D     |       }t        |      dkD  r|d d dz   }|S )N2   z..)len)selfrfuncs     r   wrapperzshorten_repr.<locals>.wrapperi   s+    Jq6B;#2A     )r$   r%   s   ` r   shorten_reprr(   h   s    
 Nr&   c                 8    | j                   j                  |      S r   )compiled_subprocessget_or_create_access_handle)inference_stater   s     r   create_accessr-   q   s    ..JJ3OOr&   c                    t         j                  |c}t         _        	 t        |       	 |t         _        t         j                  |   }t        | |      S # t        $ r1 t	        j
                  d|d|dt        d       Y |t         _        y t        $ r? t	        j
                  dt        j                         z  t        d       Y |t         _        y w xY w# |t         _        w xY w)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    XXxND#(;"  [[%Fov66+  6A8L	

     	 9#7#7#99;ST	
  s/   A ,C C 9CC CC C$c                       e Zd Zd Zy)
AccessPathc                     || _         y r   )accesses)r"   rF   s     r   __init__zAccessPath.__init__   s	     r&   N)__name__
__module____qualname__rG   r'   r&   r   rD   rD      s    !r&   rD   returnc                 L    t        | |      }t        |j                               S r   )r-   rD   get_access_path_tuples)r,   r   accesss      r   r=   r=      s"    ?C0Ff33566r&   c                    t        j                  |       ryt        j                  |       ryt        j                  |       s?t        j                  |       s*t        j
                  |       st        j                  |       ryy)NclassrA   functioninstance)inspectisclassismodule	isbuiltinismethodismethoddescriptor
isfunctionr   s    r   get_api_typer[      s^    s			#				3	7#3#3C#8))#.'2D2DS2I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, Z2y-)/DirectObjectAccessc                      || _         || _        y r   )_inference_state_obj)r"   r,   r   s      r   rG   zDirectObjectAccess.__init__   s     /	r&   c                 V    | j                   j                  d| j                         dS )N())	__class__rH   get_reprr"   s    r   __repr__zDirectObjectAccess.__repr__   s    >>22DMMODDr&   c                 .    t        | j                  |      S r   )r-   r_   r"   r   s     r   _create_accessz!DirectObjectAccess._create_access   s    T22C88r&   rK   c                 .    t        | j                  |      S r   )r=   r_   ri   s     r   _create_access_pathz&DirectObjectAccess._create_access_path   s    !$"7"7==r&   c                 ,    t        | j                        S r   )boolr`   rf   s    r   
py__bool__zDirectObjectAccess.py__bool__   s    DIIr&   c                 `    	 t        | j                  j                        S # t        $ r Y y w xY wr   )r   r`   __file__r   rf   s    r   
py__file__zDirectObjectAccess.py__file__   s.    			**++ 		s   ! 	--c                 H    t        j                  | j                        xs dS )N )rS   getdocr`   rf   s    r   	py__doc__zDirectObjectAccess.py__doc__   s    ~~dii(.B.r&   c                    t        | j                        rt        j                  | j                        r| j                  }n	 | j                  j                  }	 |j                  S # t
        $ r Y y w xY w# t
        $ r Y y w xY wr   )_is_class_instancer`   rS   rX   rd   r   rH   )r"   clss     r   
py__name__zDirectObjectAccess.py__name__   su    !$)),**4995))Cii))	<< "    		s$   A& A5 &	A21A25	B Bc                 Z     t         fd j                  j                  dd  D              S )Nc              3   @   K   | ]  }j                  |        y wr   rl   ).0ry   r"   s     r   	<genexpr>z7DirectObjectAccess.py__mro__accesses.<locals>.<genexpr>   s     TsT--c2T      )tupler`   __mro__rf   s   `r   py__mro__accessesz$DirectObjectAccess.py__mro__accesses   s'    Tdii>O>OPQPR>STTTr&   c                 ~   t        | j                  t              r7| j                  j                         D cg c]  }| j	                  |       c}S t        | j                  t
        t        f      r)| j                  D cg c]  }| j	                  |       c}S | j                         r:t        | j                  | j                  j                        }|j                         S 	 | j                  j                  }t        | j                  |      j                         }||gS y c c}w c c}w # t        $ r Y y w xY wr   )r   r`   dictvaluesrl   listr   is_instancer]   r_   rd   py__getitem__all_values__getitem__get_return_annotationr   )r"   vry   getitem
annotations        r   r   z*DirectObjectAccess.py__getitem__all_values   s   dii&9=9I9I9KLAD,,Q/LLdii$/9=CAD,,Q/CC$T%:%:DII<O<OPC..00	$ii++G ,D,A,A7KaacJ%"|#! MC  	
 	s   D& D+&D0 0	D<;D<T)safec                z    |rt        | j                        t        vry | j                  | j                  |         S r   )typer`   ALLOWED_GETITEM_TYPESrl   )r"   indexr   s      r   py__simple_getitem__z'DirectObjectAccess.py__simple_getitem__   s2    DO+@@''		%(899r&   c                 l   	 | j                   j                  }t        | j                  |      j	                         }||gS t        | j                         t        vrg S g }t        | j                         D ]-  \  }}|dkD  r |S |j                  | j                  |             / |S # t
        $ r Y y w xY w)N   )r`   __iter__r]   r_   r   r   r   r   	enumerateappendrl   )r"   iter_methodplstiparts         r   py__iter__listz!DirectObjectAccess.py__iter__list   s    	)),,K #4#8#8+F\\^A}s
		?"77I + 	7GAt2v
 JJt//56		7
 
#  		s   B' '	B32B3c                 L    | j                  | j                  j                        S r   )rl   r`   rd   rf   s    r   py__class__zDirectObjectAccess.py__class__  s    ''		(;(;<<r&   c                 r    | j                   j                  D cg c]  }| j                  |       c}S c c}w r   )r`   	__bases__rl   )r"   bases     r   py__bases__zDirectObjectAccess.py__bases__	  s+    ;?99;N;NO4((.OOOs   4c                 z    t        | j                  dd       }t        |t              rt	        d |D              sy |S )N__path__c              3   <   K   | ]  }t        |t                y wr   )r   str)r~   r   s     r   r   z0DirectObjectAccess.py__path__.<locals>.<genexpr>  s     =!:a-=s   )r   r`   r   r   all)r"   pathss     r   
py__path__zDirectObjectAccess.py__path__  s6    		:t4 %&=u==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                  | j                        S t	        |dd      dk(  rt        | j                        S t        j                  | j                        S )NrI   rt   r   builtins)rS   rU   r`   reprr   r   rg   object)r"   type_s     r   re   zDirectObjectAccess.get_repr  s    DII&		?"		<<
J		?"TYYD===++|R8JF		?"tyy))r&   c                 @    t        j                  | j                        S r   )rS   rT   r`   rf   s    r   is_classzDirectObjectAccess.is_class&  s    tyy))r&   c                     t        j                  | j                        xs t        j                  | j                        S r   )rS   rY   r`   rW   rf   s    r   is_functionzDirectObjectAccess.is_function)  s+    !!$)),K0@0@0KKr&   c                 @    t        j                  | j                        S r   )rS   rU   r`   rf   s    r   	is_modulezDirectObjectAccess.is_module,  s    		**r&   c                 ,    t        | j                        S r   )rx   r`   rf   s    r   r   zDirectObjectAccess.is_instance/  s    !$)),,r&   c                 @    t        j                  | j                        S r   )rS   rX   r`   rf   s    r   rX   z%DirectObjectAccess.ismethoddescriptor2  s    ))$))44r&   c                     d }| j                         ry || j                        }| |t        | j                              }|yt        |j	                  d            S )Nc           	      2    t        | dt        | dd             S )NrJ   rH   )r   rZ   s    r   try_to_get_namez?DirectObjectAccess.get_qualified_names.<locals>.try_to_get_name6  s    3Z0NOOr&   r'   r/   )r   r`   r   r   split)r"   r   r   s      r   get_qualified_namesz&DirectObjectAccess.get_qualified_names5  sW    	P >>tyy)<"4		?3D|TZZ_%%r&   c                 ,    t        | j                        S r   )dirr`   rf   s    r   r   zDirectObjectAccess.dirB  s    499~r&   c                 N    	 t        | j                         y# t        $ r Y yw xY w)NTF)iterr`   	TypeErrorrf   s    r   has_iterzDirectObjectAccess.has_iterE  s'    	O 		s    	$$c                 $   	 t        | j                  |      \  }}|rkt        |      t        vrZt	        |t
              rIt        |j                  d      r3t        | j                  |j                        }dd|j                         fS yy# t        $ r} |sxt        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        Y y# 1 sw Y   Y yxY wY yw xY w)	N__annotations__T)TTNrecordalwaysF)FFN)TFN)r   r`   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	   	(&4TYY&E#D#& !T$Z7P%PdH-tyy*;<.t/D/DdiiP#T1+B+B+DDD ( 5  	& ,,D9 ))(3&tyy$7D  %    & &%!	&sS   B	 	!D*C?C%
D%	C1.C?0C11C?5D?D		D	DDc                    	 t        j                  d      5  t        j                  d       t        | j                  |      }d d d        | j                        }t        j                  |      r|gS 	 |j                  }|t        |t              r	 t        |       t        j                   |      }|&t        j                   t#        |            }|t$        }| j                  |      |gS # 1 sw Y   xY w# t
        $ r+}|t        u rt        |t              r t        |}Y d }~d }~ww xY w# t        $ r Y w xY w# t        $ r Y w xY w)NTr   r   )r6   r   r   r   r`   r9   r   r   r   rj   rS   rU   rI   r   r4   r5   	getmoduler   r   )r"   r   r   
return_objerN   rA   s          r   getattr_pathsz DirectObjectAccess.getattr_pathsl  sG   	! ((5 6%%h/$TYY5
6 $$Z0J'8O	**F !j&=v& "":.>&&tJ'78F~!##F+V44O6 6  
	!)#a0  %$ J
	!8 #   		sR   C< ,C0C< 6E D3 0C95C< <	D0!D++D03	D?>D?	EE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   r`   rn   bytesfloatintr   slice
ValueErrorrf   s    r   get_safe_valuez!DirectObjectAccess.get_safe_value  sK    		?tUE3UCCtyyGX99;d499oMNNr&   c                 ,    t        | j                        S r   )r[   r`   rf   s    r   r[   zDirectObjectAccess.get_api_type  s    DII&&r&   c                 :    t        | j                  t              ryy )Nr   )r   r`   r   rf   s    r   get_array_typez!DirectObjectAccess.get_array_type  s    dii&r&   c                 `      fd} |       D cg c]  } j                  |       c}S c c}w )Nc               3   z   K   t        j                  j                               D ]  \  } }| dkD  r y |  y w)Nr    )r   r`   keys)r   kr"   s     r   iter_partial_keysz;DirectObjectAccess.get_key_paths.<locals>.iter_partial_keys  s;     #DIINN$45 A r6s   8;r}   )r"   r   r   s   `  r   get_key_pathsz DirectObjectAccess.get_key_paths  s-    	 6G5HI((+IIIs   +c                     | j                         D cg c]  }t        | j                  |       }}|D cg c]  }|j                         |f c}S c c}w c c}w r   )_get_objects_pathr-   r_   rz   )r"   orF   rN   s       r   rM   z)DirectObjectAccess.get_access_path_tuples  sS    EIE[E[E]^M$"7"7;^^<DE&""$f-EE _Es
   AAc                 R      fd}t        t        t         |                         S )Nc               3   T  K   j                   } |  	 | j                  } |  	 | j                  }|	t         y 	 t
        j                  |    y # t        $ r Y :w xY w# t        $ r t         Y y w xY w# t        $ r" t        j                  |       s
t         Y y Y y w xY wwr   )
r`   __objclass__r   rI   r   r2   r<   KeyErrorrS   rU   )r   imp_plzr"   s     r   getz1DirectObjectAccess._get_objects_path.<locals>.get  s     ))CI&& 	'.. ?"N'!kk'22% " & $ '&' " #'',"N -#sl   B(A B(A: B(A# B(	A B(A  B(#A74B(6A77B(:&B% B($B%%B()r   reversed)r"   r   s   ` r   r   z$DirectObjectAccess._get_objects_path  s     	'8 HT#%[)**r&   c                     |j                   }t        |   }| j                   || j                  |j                              S r   )rN   
_OPERATORSrl   r`   )r"   other_access_handleoperatorother_accessops        r   execute_operationz$DirectObjectAccess.execute_operation  s9    *11!''499l6G6G(HIIr&   c                 ~    d}d}t         j                  dd      dk(  rt        j                  dt	         j                              }|]|j                  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'   rI   rt   r   typingztyping.(\w+)\[r   r   )      __args__c              3   @   K   | ]  }j                  |        y wr   r}   )r~   argr"   s     r   r   zBDirectObjectAccess.get_annotation_name_and_args.<locals>.<genexpr>  s     IS433C8Ir   )r   r`   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*DO<A}wwqz##v-*6??4995D'		:tLDUIDIIIIr&   c                 j    t        j                  | j                        xr | j                  t        k7  S r   )rS   rT   r`   r   rf   s    r   needs_type_completionsz)DirectObjectAccess.needs_type_completions  s#    tyy)?dii4.??r&   c                 ,    t        j                  |      S r   )rS   formatannotation)r"   r   s     r   _annotation_to_strz%DirectObjectAccess._annotation_to_str  s    ''
33r&   c                    | j                         j                  j                         D cg c]  }t        |j                  |j
                  |j                  u| j                  |j
                        t        |j
                        |j                  |j                  u| j                  |j                        | j                  |j                        t        |j                               c}S c c}w )N)r   has_defaultr   default_stringhas_annotationr   annotation_string	kind_name)_get_signature
parametersr   r   r   r   emptyrl   r   r   r  r   kind)r"   r   s     r   get_signature_paramsz'DirectObjectAccess.get_signature_params  s     **,77>>@
  VVIIQWW400;#AII ||177:33ALLA"&"9"9!,,"Gaff+	
 	
 
s   CC/c                 x    | j                   }	 t        j                  |      S # t        t        f$ r t
        w xY wr   )r`   rS   	signatureRuntimeErrorr   r   ri   s     r   r  z!DirectObjectAccess._get_signature   s=    ii	$$S))i( 	 		s   # 9c                    	 | j                   j                  j                  d      }|y 	 t	        j
                  | j                         j                  d      }| j                  |      S # t        $ r Y y w xY w# t        $ r Y +w xY w)NrK   )r`   r   r   r   r   get_type_hintsr9   rl   )r"   r   s     r   r   z(DirectObjectAccess.get_return_annotation
  s    			))--h7A 9	%%dii044X>A ''**  		  		s"   %A* .A9 *	A65A69	BBc                 :    | j                  | j                         S r   )rl   r`   rf   s    r   negatezDirectObjectAccess.negate  s    ''
33r&   c                 l     t         fd j                         D              } j                         |fS )zw
        Used to return a couple of infos that are needed when accessing the sub
        objects of an objects
        c              3   D   K   | ]  }|j                  |      f  y wr   )r   )r~   r   r"   s     r   r   z3DirectObjectAccess.get_dir_infos.<locals>.<genexpr>"  s)      
 4**401
s    )r   r   r	  )r"   tupless   ` r   get_dir_infosz DirectObjectAccess.get_dir_infos  s8    
  


 
 **,f44r&   N)T)3rH   rI   rJ   rG   rg   rj   rD   rl   ro   r   r   rr   rv   rz   r   r   r   r   r   r   r   r(   re   r   r   r   r   rX   r   r   r   r   rn   r   r   r   r   r[   r   r   rM   r   r   r  r	  r  r  r  r   r  r"  r'   r&   r   r]   r]      s+   E9>* >HTN /"U( 37 :,=P * * *L+-5&!U4xPZG[;[5\ !@ +4 +5ZO
'

JF+>J
J$@4
+x
'; + 4	5r&   r]   c                     	 | j                   }|t        k7  xr# t        |t              xr t        |t               S # t
        $ r Y yw xY w)zLike inspect.* methods.F)rd   r   r   
issubclassNOT_CLASS_TYPESr   )r   ry   s     r   rx   rx   )  sL    ^mm d{]z#t4]Z_=]9]]  s   < 	AA)NrS   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]   rx   r'   r&   r   <module>rN     s      
  "  	    " AdE5)TB CKK(  
	NN	OO											& CKK( S\\* MM*-55f=  !23E!FG H	 %%
%%
&&ii	
%%	
%%	  
	
   & ' 
			  %. ( cP78! !
7
 7
	5 5D	^r&   