
    MhgC              	       8   d Z ddlZddlmZ ddlmZmZ ddlmZm	Z	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mZ dd
lmZ ddlmZmZmZ ddlmZ ddlmZm Z  d!                                Z"dddddddddZ#d!                                Z$ G d de          Z% G d de          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          Z, G d) d*e          Z- G d+ d,e          Z. G d- d.e          Z/ G d/ d0e          Z0 G d1 d2e          Z1 G d3 d4e          Z2 G d5 d6e          Z3 G d7 d8e
          Z4 G d9 d:e          Z5 G d; d<e          Z6 G d= d>e          Z7dS )?z
We need to somehow work with the typing objects. Since the typing objects are
pretty bare we need to add all the Jedi customizations to make them work as
values.

This file deals with all the typing.py cases.
    N)debug)builtin_from_namecreate_simple_object)ValueSet	NO_VALUESValueLazyValueWrapperValueWrapper)LazyKnownValues)repack_with_argument_clinic)FilterWrapper)NameWrapper	ValueName)
ClassMixin)BaseTypingValueBaseTypingClassWithGenericsBaseTypingInstance)TypeVarClass)LazyGenericManagerTupleGenericManagerz$Tuple Generic Protocol Callable Typezbuiltins.listzbuiltins.dictzbuiltins.setzbuiltins.frozensetzcollections.ChainMapzcollections.Counterzcollections.defaultdictzcollections.deque)ListDictSet	FrozenSetChainMapCounterDefaultDictDequez!Optional Union ClassVar Annotatedc                       e Zd Zd Zd ZdS )TypingModuleNamec                 D    t          |                                           S N)r   _remapselfs    ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jedi/inference/gradual/typing.pyinferzTypingModuleName.infer'   s    &&&    c              #     K   | j         }| j        j        }	 t          |         }t                              || j        | j        |          V  d S # t          $ r Y nw xY w|t          v r*t                              || j        | j                  V  d S |t          v r*t                              || j        | j                  V  d S |dk    rd S |dk    r4| j                                        \  }t          j        ||          V  d S |dk    r*t                              || j        | j                  V  d S |dk    rt!          |d          V  d S |dk    r*t"                              || j        | j                  V  d S |dk    r:| j                                        \  }t$                              ||          V  d S |dk    r:| j                                        \  }t&                              ||          V  d S |d	k    r*t(                              || j        | j                  V  d S | j                                        E d {V  d S )
NruntimeTypeVarAnyTYPE_CHECKINGTrueoverloadNewTypecast	TypedDict)string_nameparent_contextinference_state_TYPE_ALIAS_TYPES	TypeAliascreate_cached	tree_nameKeyError_PROXY_CLASS_TYPESProxyTypingClassValue_PROXY_TYPESProxyTypingValue_wrapped_namer'   r   AnyClassr   OverloadFunctionNewTypeFunctionCastFunctionTypedDictClass)r%   namer5   actualclsvcast_fns          r&   r#   zTypingModuleName._remap*   s)     -=	&t,F ))!4dnfN N N N NF  	 	 	D	 %%%'55!4dnF F F F F F F\!!"00!4dnF F F F F F FY FY%++--DC,_cBBBBBBBU]]((!4dnF F F F F F F_$$ $OV<<<<<<<Z"00!4dnF F F F F F FY#))++BA!//CCCCCCCV^^)//11HG,,_gFFFFFFF[   !..!4dnF F F F F F F )//11111111111s   A 
AAN)__name__
__module____qualname__r'   r#    r(   r&   r    r    &   s2        ' ' '32 32 32 32 32r(   r    c                       e Zd ZeZdS )TypingModuleFilterWrapperN)rJ   rK   rL   r    name_wrapper_classrM   r(   r&   rO   rO   `   s        )r(   rO   c                   &    e Zd Zd Zd Zd Zd ZdS )ProxyWithGenericsc                    | j         j        }|dk    r&|                                                                 S |dk    rJ|                                                                 t	          t          | j        d          g          z  S |dk    r| j        d         S |dv r| j        d                                         S t          t          t          t          d}||         }t	           || j        | | j         | j                  g          S )	NUnionOptionalNoneTyper   )ClassVar	Annotated)TupleGenericProtocolCallablegenerics_manager)
_tree_namevaluegather_annotation_classesexecute_annotationr   r   r5   _generics_managerrZ   r[   r\   r]   r4   )r%   r3   mappedrG   s       r&   rc   z$ProxyWithGenerics.execute_annotatione   s*   o+'!! 1133FFHHHJ&& 1133FFHH-d.BFKKLMMN NF"")!,,555)!,??AAA   	
 
 [!O!3	
 
 
    	r(   c                 X    t          j        | j                                                  S r"   )r   	from_setsrd   to_tupler$   s    r&   rb   z+ProxyWithGenerics.gather_annotation_classes   s"    !$"8"A"A"C"CDDDr(   c                 8    t          | j        | j        |          S r"   )rR   r4   r`   r%   r_   s     r&   _create_instance_with_genericsz0ProxyWithGenerics._create_instance_with_generics   s"     O
 
 	
r(   c                     |                                  }|si S |                                 }|dk    rFt          | j        d          |d                             |                    fd                    S i S )NrU   rV   r   c                     | k    S r"   rM   )xnones    r&   <lambda>z3ProxyWithGenerics.infer_type_vars.<locals>.<lambda>   s    19 r(   )get_generics
py__name__r   r5   infer_type_varsfilter)r%   	value_setannotation_genericsannotation_namero   s       @r&   rs   z!ProxyWithGenerics.infer_type_vars   s    "//11" 	I//++j(( %T%96BBD&q)99  !4!4!4!455   	r(   N)rJ   rK   rL   rc   rb   rk   rs   rM   r(   r&   rR   rR   d   sT          BE E E
 
 
    r(   rR   c                       e Zd ZeZd Zd ZdS )r>   c                 v    | j                             | j        | j        | j        t          |                    S )Nr^   )index_classr8   r5   r4   r`   r   )r%   generics_tuples     r&   with_genericszProxyTypingValue.with_generics   s>    -- O0@@	 . 
 
 	
r(   c                 >     t           fd|D                       S )Nc           
   3      K   | ]E}j                             j        j        j        t          j        |                     V  FdS ))context_of_indexindex_valuer^   N)rz   r8   r5   r4   r`   r   context).0r   contextualized_noder%   s     r&   	<genexpr>z1ProxyTypingValue.py__getitem__.<locals>.<genexpr>   s}       

 

  **$#!3%8%@ +" " "	 +  

 

 

 

 

 

r(   r   r%   index_value_setr   s   ` `r&   py__getitem__zProxyTypingValue.py__getitem__   sC     

 

 

 

 

 "1

 

 

 

 

 
	
r(   N)rJ   rK   rL   rR   rz   r|   r   rM   r(   r&   r>   r>      s7        #K
 
 

 
 
 
 
r(   r>   c                   0    e Zd Zd Zd Zed             ZdS )_TypingClassMixinc                 \    t          | j        j                            d                    gS )Nobject)r   r5   builtins_modulepy__getattribute__r$   s    r&   py__bases__z_TypingClassMixin.py__bases__   s0     0CCHMM
 
  	r(   c                     g S r"   rM   r$   s    r&   get_metaclassesz!_TypingClassMixin.get_metaclasses       	r(   c                 ,    t          | | j                  S r"   )r   r`   r$   s    r&   rE   z_TypingClassMixin.name   s    t///r(   N)rJ   rK   rL   r   r   propertyrE   rM   r(   r&   r   r      sM          
   0 0 X0 0 0r(   r   c                       e Zd Zd Zd ZdS )TypingClassWithGenericsc                    i }|                                  }|s|S |                                 }|dk    r-|d                             |                                          S |dk    rAt	          |          dk    r-|d                             |                                          S n1|dk    r+|                                 \  }|                    |          S |S )NrW   r   r]         rZ   )rq   rr   rs   rc   len)r%   ru   type_var_dictrv   rw   tuple_annotations         r&   rs   z'TypingClassWithGenerics.infer_type_vars   s    "//11" 	!  //++f$$&q)99 ,,..	   
**&''1,,*1-==0022   -
 '' $ 7 7 9 9#33I>>>r(   c                 8    t          | j        | j        |          S r"   )r   r4   r`   rj   s     r&   rk   z6TypingClassWithGenerics._create_instance_with_generics   s"    &O
 
 	
r(   N)rJ   rK   rL   rs   rk   rM   r(   r&   r   r      s2          8
 
 
 
 
r(   r   c                       e Zd ZeZdS )r<   N)rJ   rK   rL   r   rz   rM   r(   r&   r<   r<      s        )KKKr(   r<   c                   H    e Zd Zd Zed             Zd Zd Zd Zd Z	d Z
dS )	r7   c                 H    |j         | _         || _        || _        || _        d S r"   )r5   r4   _origin_tree_name_actual)r%   r4   origin_tree_namerF   s       r&   __init__zTypeAlias.__init__   s(    -=,!1r(   c                 ,    t          | | j                  S r"   )r   r   r$   s    r&   rE   zTypeAlias.name   s    t5666r(   c                     | j         j        S r"   )rE   r3   r$   s    r&   rr   zTypeAlias.py__name__   s    y$$r(   c                 2    d| j         j        d| j        dS )N<z: >)	__class__rJ   r   r$   s    r&   __repr__zTypeAlias.__repr__  s      !^444dlllCCr(   c                 J   | j                             d          \  }}ddlm}  || j        |g| j        j                                                  \  }|                    |          }t          |          dk    s
J |            t          t          |                    }|S )N.r   )Importerr   )r   splitjedi.inference.importsr   r5   r   followr   r   nextiter)r%   module_name
class_namer   moduleclassesrG   s          r&   _get_wrapped_valuezTypeAlias._get_wrapped_value  s    "&,"4"4S"9"9Z 	433333( ;-1E1U
 

&(( 	 ++J777||q   '   4==!!
r(   c                 F    t          |                                 g          S r"   )r   r   r$   s    r&   rb   z#TypeAlias.gather_annotation_classes  s    00223444r(   c                     g S r"   rM   r$   s    r&   get_signatureszTypeAlias.get_signatures  r   r(   N)rJ   rK   rL   r   r   rE   rr   r   r   rb   r   rM   r(   r&   r7   r7      s           7 7 X7% % %D D D  5 5 5    r(   r7   c                       e Zd Zd Zd ZdS )r]   c                     	 | j         d         }| j         d         }ddlm}  ||||          S # t          $ r t	          j        d           t          cY S w xY w)zG
            def x() -> Callable[[Callable[..., _T]], _T]: ...
        r   r   )infer_return_for_callablez+Callable[...] defined without two arguments)rd   !jedi.inference.gradual.annotationr   
IndexErrorr   warningr   )r%   	argumentsparam_valuesresult_valuesr   s        r&   
py__call__zCallable.py__call__  s    
	U1!4L 215M
 TSSSSS,,YmTTT  	 	 	MGHHH	s   / %AAc                 "    t          | g          S r"   r   )r%   instanceclass_values      r&   	py__get__zCallable.py__get__)  s    r(   N)rJ   rK   rL   r   r   rM   r(   r&   r]   r]     s5        U U U         r(   r]   c                   J    e Zd Zd Zd Zd	dZd Zd Zed             Z	d Z
dS )
rZ   c                 4    | j                                         S r"   )rd   is_homogenous_tupler$   s    r&   _is_homogenouszTuple._is_homogenous.  s     %99;;;r(   c                     |                                  r| j                            d          S t          |t                    r| j                            |          S t          j        d|z             t          S )Nr   z The getitem type on Tuple was %s)r   rd   get_index_and_execute
isinstanceintr   dbgr   r%   indexs     r&   py__simple_getitem__zTuple.py__simple_getitem__3  ss       	)??BBB%%% K-CCEJJJI85@AAAr(   Nc              #     K   |                                  r+t          | j                            d                    V  d S | j                                        D ]%}t          |                                          V  &d S Nr   )r   r   rd   r   rh   rc   )r%   r   rH   s      r&   
py__iter__zTuple.py__iter__=  s         	>!$"8"N"Nq"Q"QRRRRRRR+4466 > >%a&:&:&<&<======> >r(   c                     |                                  r| j                            d          S t          j        | j                                                                                  S r   )r   rd   r   r   rg   rh   rc   r   s      r&   r   zTuple.py__getitem__D  sa       	C)??BBB!"++--
 




	r(   c                 l    | j         j                            d                                          \  }|S Ntuple)r5   r   r   rc   )r%   tuple_s     r&   r   zTuple._get_wrapped_valueL  s1    &6((););)=)= 	r(   c                     | j         j        S r"   )_wrapped_valuerE   r$   s    r&   rE   z
Tuple.nameQ  s    "''r(   c                 |   ddl m}m} |                    d           }|                                 rD| j                                        d                             |                                          S i }|D ]@}	 |j	        }n# t          $ r Y w xY w |            } || || j        |                     A|S )Nr   )merge_pairwise_genericsmerge_type_var_dictsc                 V    |                                                                  dk    S r   )rr   lower)rn   s    r&   rp   z'Tuple.infer_type_vars.<locals>.<lambda>Z  s    allnn**,,7 r(   )r   r   r   rt   r   _class_valuerq   rs   merge_types_of_iterateget_annotated_class_objectAttributeError)r%   ru   r   r   r   elementmethodpy_classs           r&   rs   zTuple.infer_type_varsU  s   cccccccc$$77
 
	    	! $1133A6FF0022   M$  $?FF%    H	 "688$$!++D,=xHH   
 ! s   >B
BBr"   )rJ   rK   rL   r   r   r   r   r   r   rE   rs   rM   r(   r&   rZ   rZ   -  s        < < <
  > > > >    
 ( ( X(&! &! &! &! &!r(   rZ   c                       e Zd ZdS )r[   NrJ   rK   rL   rM   r(   r&   r[   r[   ~          Dr(   r[   c                       e Zd ZdS )r\   Nr   rM   r(   r&   r\   r\     r   r(   r\   c                       e Zd Zd ZdS )r@   c                 8    t          j        d           t          S )NzUsed Any - returned no results)r   r   r   r$   s    r&   rc   zAnyClass.execute_annotation  s    6777r(   N)rJ   rK   rL   rc   rM   r(   r&   r@   r@     s#            r(   r@   c                   6    e Zd Z ed          d             ZdS )rA   zfunc, /c                     |S r"   rM   )r%   func_value_sets     r&   r   zOverloadFunction.py__call__  s
     r(   NrJ   rK   rL   r   r   rM   r(   r&   rA   rA     s9          ++  ,+  r(   rA   c                       e Zd Zd ZdS )rB   c                      |                                 }t          |d           t          |d          \  }t          S t           fd|                                D                       S )N)NNc              3   ~   K   | ]7}t          j        |j        |j                                                  V  8d S r"   )r0   r5   r   noder'   )r   r   
second_argr%   s     r&   r   z-NewTypeFunction.py__call__.<locals>.<genexpr>  sl       H H & $#+#(  ""	 H H H H H Hr(   )unpackr   r   r   get_calling_nodes)r%   r   ordered_args_r   s   `   @r&   r   zNewTypeFunction.py__call__  s     ''))\<(((\<88: H H H H H *3)D)D)F)FH H H H H 	Hr(   N)rJ   rK   rL   r   rM   r(   r&   rB   rB     s(        H H H H Hr(   rB   c                   L     e Zd Z fdZd Zd Zed             ZdefdZ	 xZ
S )r0   c                 h    t                                          ||           || _        || _        d S r"   )superr   _type_value_set	tree_node)r%   r5   r4   r  type_value_setr   s        r&   r   zNewType.__init__  s0    .999-"r(   c                 <    | j                                         \  }|S r"   )r  py__class__)r%   cs     r&   r  zNewType.py__class__  s    !--//r(   c                 4    | j                                         S r"   )r  rc   )r%   r   s     r&   r   zNewType.py__call__  s    #66888r(   c                 &    ddl m}  || d          S )Nr   )CompiledValueNamer0   )jedi.inference.compiled.valuer
  )r%   r
  s     r&   rE   zNewType.name  s'    CCCCCC  y111r(   returnc                 &    d| j         d| j        S )Nz
<NewType: r   )r  r  r$   s    r&   r   zNewType.__repr__  s     $(NNND4H4HIIr(   )rJ   rK   rL   r   r  r   r   rE   strr   __classcell__)r   s   @r&   r0   r0     s        # # # # #
  9 9 9 2 2 X2J# J J J J J J J Jr(   r0   c                   6    e Zd Z ed          d             ZdS )rC   ztype, object, /c                 *    |                                 S r"   )rc   )r%   r  object_value_sets      r&   r   zCastFunction.py__call__  s    00222r(   Nr   rM   r(   r&   rC   rC     s:          !2333 3 433 3 3r(   rC   c                       e Zd ZdZdS )rD   zr
    This class has no responsibilities and is just here to make sure that typed
    dicts can be identified.
    N)rJ   rK   rL   __doc__rM   r(   r&   rD   rD     s           r(   rD   c                   @    e Zd ZdZd Zed             Zd Zd Zd Z	dS )r2   z6Represents the instance version of ``TypedDictClass``.c                 \    |j         | _         |j        | _        |j        | _        || _        d S r"   )r5   r4   r  _definition_class)r%   definition_classs     r&   r   zTypedDict.__init__  s0    /?.=)3!1r(   c                 6    t          | | j        j                  S r"   )r   r  rE   r$   s    r&   rE   zTypedDict.name  s    t~2333r(   c                     t          t                    r9t          j        fd| j                            d          D                       S t          S )Nc              3   p   K   | ]0}|                               D ]}|                                V  1d S r"   )getr'   )r   rt   rE   r   s      r&   r   z1TypedDict.py__simple_getitem__.<locals>.<genexpr>  sb       & &"JJu--& &  

& & & & & & &r(   Tis_instance)r   r  r   rg   r  get_filtersr   r   s    `r&   r   zTypedDict.py__simple_getitem__  sl    eS!! 	% & & & &"4@@T@RR& & &   
 r(   c                      t           j                            d  j                            d          D                       }t           fd|D                       S )Nc              3   >   K   | ]}|                                 V  d S r"   )values)r   fs     r&   r   z+TypedDict.get_key_values.<locals>.<genexpr>  s>       9
 9
 HHJJ9
 9
 9
 9
 9
 9
r(   Tr  c                 D    h | ]}t          j        |j                  S rM   )r   r5   r3   )r   rH   r%   s     r&   	<setcomp>z+TypedDict.get_key_values.<locals>.<setcomp>  s8     
 
 
 !!5q}EE
 
 
r(   )	itertoolschainfrom_iterabler  r  r   )r%   filtered_valuess   ` r&   get_key_valueszTypedDict.get_key_values  s    #/77 9
 9
+77D7II9
 9
 9
    
 
 
 
$
 
 
   	r(   c                 t    | j         j                            d          \  }|                                \  }|S )Ndict)r5   r   r   execute_with_values)r%   dresults      r&   r   zTypedDict._get_wrapped_value  s5    !1DDVLL''))r(   N)
rJ   rK   rL   r  r   r   rE   r   r*  r   rM   r(   r&   r2   r2     sq        @@2 2 2 4 4 X4        r(   r2   )8r  r&  jedir   jedi.inference.compiledr   r   jedi.inference.base_valuer   r   r   r	   r
   jedi.inference.lazy_valuer   jedi.inference.argumentsr   jedi.inference.filtersr   jedi.inference.namesr   r   jedi.inference.value.klassr   jedi.inference.gradual.baser   r   r   jedi.inference.gradual.type_varr   jedi.inference.gradual.genericsr   r   r   r;   r6   r=   r    rO   rR   r>   r   r   r<   r7   r]   rZ   r[   r\   r@   rA   rB   r0   rC   rD   r2   rM   r(   r&   <module>r;     s              K K K K K K K K# # # # # # # # # # # # # # 5 5 5 5 5 5 @ @ @ @ @ @ 0 0 0 0 0 0 7 7 7 7 7 7 7 7 1 1 1 1 1 14 4 4 4 4 4 4 4 4 4 8 8 8 8 8 8 S S S S S S S S;AACC %&$, 	 	  388::72 72 72 72 72{ 72 72 72t* * * * * * * *< < < < <3 < < <~
 
 
 
 
 
 
 
20 0 0 0 0
 0 0 0"
 "
 "
 "
 "
/1B "
 "
 "
J* * * * *,.? * * *# # # # #  # # #L         !      (N! N! N! N! N! N! N! N!b	 	 	 	 	  	 	 		 	 	 	 	! 	 	 	              H H H H Hl H H H J J J J Je J J J,3 3 3 3 3< 3 3 3    _   " " " " "  " " " " "r(   