
    ^hH                         S 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  S r " S	 S
5      r " S S\5      r " S S\5      rg)za
This module is about generics, like the `int` in `List[int]`. It's not about
the Generic class.
    )debug)memoize_method)to_tuple)ValueSet	NO_VALUES)SequenceLiteralValue)	is_stringc              #      #    U HV  n[        U5      (       a?  SSKJn  U" XR                  5       5      nUb  U R	                  U5       H  nUv   M	     MP  MR  Uv   MX     g 7f)Nr   )_get_forward_reference_node)r	   !jedi.inference.gradual.annotationr   get_safe_value
infer_node)context	value_setvaluer   nodecs         Y/home/james-whalen/.local/lib/python3.13/site-packages/jedi/inference/gradual/generics.py_resolve_forward_referencesr      s\     UU.w8L8L8NOD ++D1AG 2   K s   AA c                        \ rS rSrS rS rSrg)_AbstractGenericManager   c                      X   R                  5       $ ! [         a     [        R                  " SX5        [        s $ f = f)Nz$No param #%s found for annotation %s)execute_annotation
IndexErrorr   warningr   selfindexs     r   get_index_and_execute-_AbstractGenericManager.get_index_and_execute   s<    	;1133 	MM@%N	s    '>>c                 T    SSR                  S U R                  5        5       5      -  $ )Nz[%s], c              3   >   #    U  H  oR                  S S9v   M     g7f)F)add_class_infoN)get_type_hint).0ts     r   	<genexpr>8_AbstractGenericManager.get_type_hint.<locals>.<genexpr>#   s     !aQ`A///"GQ`s   joinr   r   s    r   r&   %_AbstractGenericManager.get_type_hint"   s&    		!aQUQ^Q^Q`!aaaa     N)__name__
__module____qualname____firstlineno__r    r&   __static_attributes__r0   r/   r   r   r      s    br/   r   c                   f    \ rS rSrS r\S 5       rS r\\S 5       5       r	\S 5       rS r
S rS	rg
)LazyGenericManager&   c                     Xl         X l        g N_context_of_index_index_value)r   context_of_indexindex_values      r   __init__LazyGenericManager.__init__'   s    !1'r/   c                 2    U R                  5       U   " 5       $ r:   _tupler   s     r   __getitem__LazyGenericManager.__getitem__+   s    {{}U#%%r/   c                 4    [        U R                  5       5      $ r:   lenrD   r-   s    r   __len__LazyGenericManager.__len__/   s    4;;=!!r/   c              #      ^ #    U 4S jn[        T R                  [        5      (       a+  T R                  R                  S S9 H  nU" U5      v   M     g U 4S jv   g 7f)Nc                    >^  U U4S j$ )Nc                  ^   > [        [        TR                  T R                  5       5      5      $ r:   )r   r   r<   infer
lazy_valuer   s   r   <lambda>ULazyGenericManager._tuple.<locals>.lambda_scoping_in_for_loop_sucks.<locals>.<lambda>6   s'    8$?&&  "% r/   r0   rP   s   `r    lambda_scoping_in_for_loop_sucksCLazyGenericManager._tuple.<locals>.lambda_scoping_in_for_loop_sucks5   s     r/   )contextualized_nodec                  j   > [        [        T R                  [        T R                  /5      5      5      $ r:   )r   r   r<   r=   r-   s   r   rR   +LazyGenericManager._tuple.<locals>.<lambda>?   s,    (#>&&$++,-$ r/   )
isinstancer=   r   
py__iter__)r   rT   rQ   s   `  r   rD   LazyGenericManager._tuple2   sU     	 d'')=>>"//::t:T
6zBB U s   AAc              #   L   #    U R                  5        H  nU" 5       v   M     g 7fr:   rC   )r   	callable_s     r   r   LazyGenericManager.to_tupleD   s     I+ 's   "$c                     [        U R                  [        5      (       a3  U R                  R                  5       n[	        U5      S:X  a
  US   S:X  a  gg)N      z...TF)rY   r=   r   get_tree_entriesrI   )r   entriess     r   is_homogenous_tuple&LazyGenericManager.is_homogenous_tupleI   sG    d'')=>>''88:G7|q WQZ5%8r/   c                 T    SSR                  S U R                  5        5       5      -  $ )Nz<LazyG>[%s]r#   c              3   8   #    U  H  n[        U5      v   M     g 7fr:   reprr'   xs     r   r)   .LazyGenericManager.__repr__.<locals>.<genexpr>Q   s     )K?a$q''?   r+   r-   s    r   __repr__LazyGenericManager.__repr__P   s"    		)K4==?)K KLLr/   r;   N)r1   r2   r3   r4   r@   r   rE   rJ   r   rD   rd   rn   r5   r0   r/   r   r7   r7   &   s[    ( & &"      Mr/   r7   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TupleGenericManagerT   c                     Xl         g r:   rC   )r   tups     r   r@   TupleGenericManager.__init__U   s    r/   c                      U R                   U   $ r:   rC   r   s     r   rE   TupleGenericManager.__getitem__X   s    {{5!!r/   c                 ,    [        U R                  5      $ r:   rH   r-   s    r   rJ   TupleGenericManager.__len__[   s    4;;r/   c                     U R                   $ r:   rC   r-   s    r   r   TupleGenericManager.to_tuple^   s    {{r/   c                     g)NFr0   r-   s    r   rd   'TupleGenericManager.is_homogenous_tuplea   s    r/   c                 T    SSR                  S U R                  5        5       5      -  $ )Nz
<TupG>[%s]r#   c              3   8   #    U  H  n[        U5      v   M     g 7fr:   rh   rj   s     r   r)   /TupleGenericManager.__repr__.<locals>.<genexpr>e   s     (J/Qa/rm   r+   r-   s    r   rn   TupleGenericManager.__repr__d   s"    tyy(J$--/(JJKKr/   rC   N)r1   r2   r3   r4   r@   rE   rJ   r   rd   rn   r5   r0   r/   r   rq   rq   T   s!    " Lr/   rq   N)__doc__jedir   
jedi.cacher   jedi.inference.utilsr   jedi.inference.base_valuer   r   jedi.inference.value.iterabler   jedi.inference.helpersr	   r   r   r7   rq   r0   r/   r   <module>r      sN   
  % ) 9 > ,		b 	b+M0 +M\L1 Lr/   