
    ^hgC              	          S r SSKrSSKJr  SSKJrJr  SSKJrJ	r	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Jr  SS
KJr  SSKJrJrJr  SSKJr  SSKJrJ r   SRC                  5       r"SSSSSSSSS.r#SRC                  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*\5      r- " S+ S,\5      r. " S- S.\5      r/ " S/ S0\5      r0 " S1 S2\5      r1 " S3 S4\5      r2 " S5 S6\5      r3 " S7 S8\
5      r4 " S9 S:\5      r5 " S; S<\5      r6 " S= S>\5      r7g)?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                        \ rS rSrS rS rSrg)TypingModuleName&   c                 4    [        U R                  5       5      $ N)r   _remapselfs    W/home/james-whalen/.local/lib/python3.13/site-packages/jedi/inference/gradual/typing.pyinferTypingModuleName.infer'   s    &&    c              #     #    U R                   nU R                  R                  n [        U   n[        R                  X R                  U R                  U5      v   g ! [         a     Of = fU[        ;   a-  [        R                  X R                  U R                  5      v   g U[        ;   a-  [        R                  X R                  U R                  5      v   g US:X  a  g US:X  a5  U R                  R                  5       u  n[        R
                  " X$5      v   g US:X  a-  [        R                  X R                  U R                  5      v   g US:X  a  [!        US5      v   g US:X  a-  ["        R                  X R                  U R                  5      v   g US:X  a4  U R                  R                  5       u  n[$        R                  X%5      v   g US:X  a4  U R                  R                  5       u  n[&        R                  X&5      v   g US	:X  a-  [(        R                  X R                  U R                  5      v   g U R                  R                  5        S h  vN    g 7f)
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&   namer7   actualclsvcast_fns          r'   r$   TypingModuleName._remap*   s    --==	&t,F ))!4!4dnnfN N  		 %%'55!4!4dnnF F\!"00!4!4dnnF FY Y%%++-DC,,_BBU]((!4!4dnnF F_$ $OV<<Z"00!4!4dnnF FY##))+BA!//CCV^))//1HG,,_FF[  !..!4!4dnnF F ))//111s4   #I#	A .I#
A*'I#)A**G2I#II# N)__name__
__module____qualname____firstlineno__r(   r$   __static_attributes__rM   r*   r'   r    r    &   s    '32r*   r    c                       \ rS rSr\rSrg)TypingModuleFilterWrapper`   rM   N)rN   rO   rP   rQ   r    name_wrapper_classrR   rM   r*   r'   rT   rT   `   s    )r*   rT   c                   ,    \ rS rSrS rS rS rS rSrg)ProxyWithGenericsd   c           	         U R                   R                  nUS:X  a  U R                  5       R                  5       $ US:X  a?  U R                  5       R                  5       [	        [        U R                  S5      /5      -  $ US:X  a  U R                  S   $ US;   a  U R                  S   R                  5       $ [        [        [        [        S.nX!   n[	        U" U R                  U U R                   U R                  S9/5      $ )	NUnionOptionalNoneTyper   )ClassVar	Annotated)TupleGenericProtocolCallablegenerics_manager)
_tree_namevaluegather_annotation_classesexecute_annotationr   r   r7   _generics_managerra   rb   rc   rd   r6   )r&   r5   mappedrI   s       r'   rj   $ProxyWithGenerics.execute_annotatione   s   oo++'! 113FFHHJ& 113FFH-d.B.BFKLMN NF"))!,,55))!,??AA   	
 !OO!33	
   	r*   c                 ^    [         R                  " U R                  R                  5       5      $ r#   )r   	from_setsrk   to_tupler%   s    r'   ri   +ProxyWithGenerics.gather_annotation_classes   s"    !!$"8"8"A"A"CDDr*   c                 D    [        U R                  U R                  U5      $ r#   )rX   r6   rg   r&   rf   s     r'   _create_instance_with_generics0ProxyWithGenerics._create_instance_with_generics   s"     OO
 	
r*   c                    ^ U R                  5       nU(       d  0 $ U R                  5       nUS:X  a=  [        U R                  S5      mUS   R	                  UR                  U4S j5      5      $ 0 $ )Nr\   r]   r   c                    > U T:g  $ r#   rM   )xnones    r'   <lambda>3ProxyWithGenerics.infer_type_vars.<locals>.<lambda>   s	    19r*   )get_generics
py__name__r   r7   infer_type_varsfilter)r&   	value_setannotation_genericsannotation_namery   s       @r'   r~   !ProxyWithGenerics.infer_type_vars   sp    "//1"I//+j( %T%9%96BD&q)99  !45  	r*   rM   N)	rN   rO   rP   rQ   rj   ri   rt   r~   rR   rM   r*   r'   rX   rX   d   s    BE
r*   rX   c                   $    \ rS rSr\rS rS rSrg)r@      c                     U R                   R                  U R                  U R                  U R                  [        U5      S9$ )Nre   )index_classr:   r7   r6   rg   r   )r&   generics_tuples     r'   with_genericsProxyTypingValue.with_generics   sA    --  OO0@	 . 
 	
r*   c                 2   ^ ^ [        UU 4S jU 5       5      $ )Nc              3      >#    U  HQ  nTR                   R                  TR                  TR                  TR                  [        TR                  US 9S9v   MS     g7f))context_of_indexindex_valuere   N)r   r:   r7   r6   rg   r   context).0r   contextualized_noder&   s     r'   	<genexpr>1ProxyTypingValue.py__getitem__.<locals>.<genexpr>   s_      

 "1+ **$$##!3%8%@%@ +"	 +  "1s   AAr   r&   index_value_setr   s   ` `r'   py__getitem__ProxyTypingValue.py__getitem__   s     

 "1

 

 
	
r*   rM   N)	rN   rO   rP   rQ   rX   r   r   r   rR   rM   r*   r'   r@   r@      s    #K

r*   r@   c                   0    \ rS rSrS rS r\S 5       rSrg)_TypingClassMixin   c                 `    [        U R                  R                  R                  S5      5      /$ )Nobject)r   r7   builtins_modulepy__getattribute__r%   s    r'   py__bases___TypingClassMixin.py__bases__   s.      00CCHM
  	r*   c                     / $ r#   rM   r%   s    r'   get_metaclasses!_TypingClassMixin.get_metaclasses       	r*   c                 ,    [        X R                  5      $ r#   )r   rg   r%   s    r'   rG   _TypingClassMixin.name   s    //r*   rM   N)	rN   rO   rP   rQ   r   r   propertyrG   rR   rM   r*   r'   r   r      s     
 0 0r*   r   c                        \ rS rSrS rS rSrg)TypingClassWithGenerics   c                 r   0 nU R                  5       nU(       d  U$ U R                  5       nUS:X  a"  US   R                  UR                  5       5      $ US:X  a4  [	        U5      S:X  a"  US   R                  UR                  5       5      $  U$ US:X  a#  U R                  5       u  nUR                  U5      $ U$ )Nr^   r   rd         ra   )r|   r}   r~   rj   len)r&   r   type_var_dictr   r   tuple_annotations         r'   r~   'TypingClassWithGenerics.infer_type_vars   s    "//1"  //+f$&q)99 ,,.	  
*&'1,*1-==002  - 	 ' $ 7 7 9#33I>>r*   c                 D    [        U R                  U R                  U5      $ r#   )r   r6   rg   rs   s     r'   rt   6TypingClassWithGenerics._create_instance_with_generics   s"    &OO
 	
r*   rM   N)rN   rO   rP   rQ   r~   rt   rR   rM   r*   r'   r   r      s    8
r*   r   c                       \ rS rSr\rSrg)r>      rM   N)rN   rO   rP   rQ   r   r   rR   rM   r*   r'   r>   r>      s    )Kr*   r>   c                   H    \ rS rSrS r\S 5       rS rS rS r	S r
S rS	rg
)r9      c                 J    UR                   U l         Xl        X l        X0l        g r#   )r7   r6   _origin_tree_name_actual)r&   r6   origin_tree_namerH   s       r'   __init__TypeAlias.__init__   s!    -==,!1r*   c                 ,    [        X R                  5      $ r#   )r   r   r%   s    r'   rG   TypeAlias.name   s    5566r*   c                 .    U R                   R                  $ r#   )rG   r5   r%   s    r'   r}   TypeAlias.py__name__   s    yy$$$r*   c                 T    SU R                   R                  < SU R                  < S3$ )N<z: >)	__class__rN   r   r%   s    r'   __repr__TypeAlias.__repr__  s    !^^44dllCCr*   c                 4   U R                   R                  S5      u  pSSKJn  U" U R                  U/U R                  R
                  5      R                  5       u  nUR                  U5      n[        U5      S:X  d   U5       e[        [        U5      5      nU$ )N.r   )Importerr   )r   splitjedi.inference.importsr   r7   r   followr   r   nextiter)r&   module_name
class_namer   moduleclassesrI   s          r'   _get_wrapped_valueTypeAlias._get_wrapped_value  s    "&,,"4"4S"9 	4  ;-1E1E1U1U

&( 	 ++J77|q )') 4=!
r*   c                 6    [        U R                  5       /5      $ r#   )r   r   r%   s    r'   ri   #TypeAlias.gather_annotation_classes  s    002344r*   c                     / $ r#   rM   r%   s    r'   get_signaturesTypeAlias.get_signatures  r   r*   )r   r   r7   r6   N)rN   rO   rP   rQ   r   r   rG   r}   r   r   ri   r   rR   rM   r*   r'   r9   r9      s5     7 7%D5r*   r9   c                        \ rS rSrS rS rSrg)rd   i  c                      U R                   S   nU R                   S   nSSKJn  U" XU5      $ ! [         a    [        R
                  " S5        [        s $ f = f)z3
def x() -> Callable[[Callable[..., _T]], _T]: ...
r   r   )infer_return_for_callablez+Callable[...] defined without two arguments)rk   !jedi.inference.gradual.annotationr   
IndexErrorr   warningr   )r&   	argumentsparam_valuesresult_valuesr   s        r'   
py__call__Callable.py__call__  s_    
	U11!4L 2215M
 T,YmTT  	MMGH	s   / &AAc                     [        U /5      $ r#   r   )r&   instanceclass_values      r'   	py__get__Callable.py__get__)  s    r*   rM   N)rN   rO   rP   rQ   r   r   rR   rM   r*   r'   rd   rd     s    U r*   rd   c                   L    \ rS rSrS rS rSS jrS rS r\	S 5       r
S	 rS
rg)ra   i-  c                 6    U R                   R                  5       $ r#   )rk   is_homogenous_tupler%   s    r'   _is_homogenousTuple._is_homogenous.  s     %%99;;r*   c                     U R                  5       (       a  U R                  R                  S5      $ [        U[        5      (       a  U R                  R                  U5      $ [
        R                  " SU-  5        [        $ )Nr   z The getitem type on Tuple was %s)r   rk   get_index_and_execute
isinstanceintr   dbgr   r&   indexs     r'   py__simple_getitem__Tuple.py__simple_getitem__3  sd      ))??BB%%%--CCEJJII85@Ar*   Nc              #      #    U R                  5       (       a'  [        U R                  R                  S5      5      v   g U R                  R	                  5        H  n[        UR                  5       5      v   M      g 7fNr   )r   r   rk   r   rp   rj   )r&   r   rJ   s      r'   
py__iter__Tuple.py__iter__=  s]       !$"8"8"N"Nq"QRR++446%a&:&:&<== 7s   A:A<c                     U R                  5       (       a  U R                  R                  S5      $ [        R                  " U R                  R                  5       5      R                  5       $ r   )r   rk   r   r   ro   rp   rj   r   s      r'   r   Tuple.py__getitem__D  sV      ))??BB!!""++-



	r*   c                 p    U R                   R                  R                  S5      R                  5       u  nU$ Ntuple)r7   r   r   rj   )r&   tuple_s     r'   r   Tuple._get_wrapped_valueL  s1    &&66(););)= 	r*   c                 .    U R                   R                  $ r#   )_wrapped_valuerG   r%   s    r'   rG   
Tuple.nameQ  s    ""'''r*   c                 l   SSK JnJn  UR                  S 5      nU R	                  5       (       a:  U R
                  R                  5       S   R                  UR                  5       5      $ 0 nU H1  n UR                  nU" 5       nU" UU" U R
                  U5      5        M3     U$ ! [         a     MD  f = f)Nr   )merge_pairwise_genericsmerge_type_var_dictsc                 D    U R                  5       R                  5       S:H  $ r  )r}   lower)rx   s    r'   rz   'Tuple.infer_type_vars.<locals>.<lambda>Z  s    alln**,7r*   )r   r	  r
  r   r   _class_valuer|   r~   merge_types_of_iterateget_annotated_class_objectAttributeError)r&   r   r	  r
  r   elementmethodpy_classs           r'   r~   Tuple.infer_type_varsU  s    c$$7
	    $$113A6FF002  M$$??F "8$!+D,=,=xH % !  &  	s   2B%%
B32B3rM   r#   )rN   rO   rP   rQ   r   r   r   r   r   r   rG   r~   rR   rM   r*   r'   ra   ra   -  s4    <
>
 ( (&!r*   ra   c                       \ rS rSrSrg)rb   i~  rM   NrN   rO   rP   rQ   rR   rM   r*   r'   rb   rb   ~      r*   rb   c                       \ rS rSrSrg)rc   i  rM   Nr  rM   r*   r'   rc   rc     r  r*   rc   c                       \ rS rSrS rSrg)rB   i  c                 :    [         R                  " S5        [        $ )NzUsed Any - returned no results)r   r   r   r%   s    r'   rj   AnyClass.execute_annotation  s    67r*   rM   N)rN   rO   rP   rQ   rj   rR   rM   r*   r'   rB   rB     s    r*   rB   c                   0    \ rS rSr\" S5      S 5       rSrg)rC   i  zfunc, /c                     U$ r#   rM   )r&   func_value_sets     r'   r   OverloadFunction.py__call__  s
     r*   rM   NrN   rO   rP   rQ   r   r   rR   rM   r*   r'   rC   rC     s     + ,r*   rC   c                       \ rS rSrS rSrg)rD   i  c                    ^ ^ UR                  5       n[        US5        [        US5      u  nmTc  [        $ [        UU 4S jUR	                  5        5       5      $ )N)NNc              3      >#    U  H?  n[        TR                  UR                  UR                  TR	                  5       5      v   MA     g 7fr#   )r2   r7   r   noder(   )r   r   
second_argr&   s     r'   r   -NewTypeFunction.py__call__.<locals>.<genexpr>  sQ      H *G% $$#++#((  "	 
 *Gs   AA
)unpackr   r   r   get_calling_nodes)r&   r   ordered_args_r&  s   `   @r'   r   NewTypeFunction.py__call__  s`     '')\<(\<8: H *3)D)D)FH H 	Hr*   rM   N)rN   rO   rP   rQ   r   rR   rM   r*   r'   rD   rD     s    Hr*   rD   c                   R   ^  \ rS rSrU 4S jrS rS r\S 5       rS\	4S jr
SrU =r$ )	r2   i  c                 <   > [         TU ]  X5        X@l        X0l        g r#   )superr   _type_value_set	tree_node)r&   r7   r6   r1  type_value_setr   s        r'   r   NewType.__init__  s    9-"r*   c                 >    U R                   R                  5       u  nU$ r#   )r0  py__class__)r&   cs     r'   r5  NewType.py__class__  s    !!--/r*   c                 6    U R                   R                  5       $ r#   )r0  rj   )r&   r   s     r'   r   NewType.py__call__  s    ##6688r*   c                      SSK Jn  U" U S5      $ )Nr   )CompiledValueNamer2   )jedi.inference.compiled.valuer;  )r&   r;  s     r'   rG   NewType.name  s    C y11r*   returnc                 >    SU R                   < SU R                  < 3$ )Nz
<NewType: r   )r1  r0  r%   s    r'   r   NewType.__repr__  s    $(NND4H4HIIr*   )r0  r1  )rN   rO   rP   rQ   r   r5  r   r   rG   strr   rR   __classcell__)r   s   @r'   r2   r2     s:    #
9 2 2J# J Jr*   r2   c                   0    \ rS rSr\" S5      S 5       rSrg)rE   i  ztype, object, /c                 "    UR                  5       $ r#   )rj   )r&   r2  object_value_sets      r'   r   CastFunction.py__call__  s    0022r*   rM   Nr!  rM   r*   r'   rE   rE     s     !233 43r*   rE   c                       \ rS rSrSrSrg)rF   i  zf
This class has no responsibilities and is just here to make sure that typed
dicts can be identified.
rM   N)rN   rO   rP   rQ   __doc__rR   rM   r*   r'   rF   rF     s    r*   rF   c                   @    \ rS rSrSrS r\S 5       rS rS r	S r
Srg	)
r4   i  z6Represents the instance version of ``TypedDictClass``.c                 v    UR                   U l         UR                  U l        UR                  U l        Xl        g r#   )r7   r6   r1  _definition_class)r&   definition_classs     r'   r   TypedDict.__init__  s1    /??.==)33!1r*   c                 @    [        X R                  R                  5      $ r#   )r   r1  rG   r%   s    r'   rG   TypedDict.name  s    ~~2233r*   c                    ^ [        T[        5      (       a7  [        R                  " U4S jU R                  R                  SS9 5       5      $ [        $ )Nc              3   v   >#    U  H.  nUR                  T5        H  nUR                  5       v   M     M0     g 7fr#   )getr(   )r   r   rG   r   s      r'   r   1TypedDict.py__simple_getitem__.<locals>.<genexpr>  s6      &RF"JJu-D 

- Rs   69Tis_instance)r   rA  r   ro   rK  get_filtersr   r   s    `r'   r   TypedDict.py__simple_getitem__  sL    eS!!%% &"44@@T@R&  
 r*   c           	          [         R                  R                  S U R                  R	                  SS9 5       5      n[        U Vs1 s H#  n[        U R                  UR                  5      iM%     sn5      $ s  snf )Nc              3   B   #    U  H  nUR                  5       v   M     g 7fr#   )values)r   fs     r'   r   +TypedDict.get_key_values.<locals>.<genexpr>  s      9
I HHJJIs   TrT  )		itertoolschainfrom_iterablerK  rV  r   r   r7   r5   )r&   filtered_valuesrJ   s      r'   get_key_valuesTypedDict.get_key_values  sw    #//77 9
++77D7I9
  $
$ !!5!5q}}E$
  	 
s   *A8c                 x    U R                   R                  R                  S5      u  nUR                  5       u  nU$ )Ndict)r7   r   r   execute_with_values)r&   dresults      r'   r   TypedDict._get_wrapped_value  s5    !!11DDVL'')r*   )rK  r7   r6   r1  N)rN   rO   rP   rQ   rH  r   r   rG   r   ra  r   rR   rM   r*   r'   r4   r4     s-    @2 4 4r*   r4   )8rH  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=   r8   r?   r    rT   rX   r@   r   r   r>   r9   rd   ra   rb   rc   rB   rC   rD   r2   rE   rF   r4   rM   r*   r'   <module>rt     s{     K# # 5 @ 0 7 14 4 8 S;AAC %&$, 	  388:72{ 72t* *<3 <~
 
20
 0"
/1B "
J*,.? *#  #L !  (N! N!b	  		! 	  Hl H Je J,3< 3_ "  "r*   