
    MhH                         d 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 d Z G d	 d
          Z G d de          Z G d de          ZdS )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              #      K   |D ]X}t          |          rCddlm}  || |                                          }||                     |          D ]}|V  T|V  Yd S )Nr   )_get_forward_reference_node)r	   !jedi.inference.gradual.annotationr   get_safe_value
infer_node)context	value_setvaluer   nodecs         _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jedi/inference/gradual/generics.py_resolve_forward_referencesr      s        U 	UUUUUU..w8L8L8N8NOOD ++D11  AGGGGKKKK     c                       e Zd Zd Zd ZdS )_AbstractGenericManagerc                     	 | |                                          S # t          $ r  t          j        d||            t          cY S w xY w)Nz$No param #%s found for annotation %s)execute_annotation
IndexErrorr   warningr   selfindexs     r   get_index_and_executez-_AbstractGenericManager.get_index_and_execute   sY    	;11333 	 	 	M@%NNN	s    'AAc                 j    dd                     d |                                 D                       z  S )Nz[%s], c              3   B   K   | ]}|                     d           V  dS )F)add_class_infoN)get_type_hint).0ts     r   	<genexpr>z8_AbstractGenericManager.get_type_hint.<locals>.<genexpr>#   s0      !a!aA!///"G"G!a!a!a!a!a!ar   joinr   r   s    r   r%   z%_AbstractGenericManager.get_type_hint"   s5    		!a!aQUQ^Q^Q`Q`!a!a!aaaaar   N)__name__
__module____qualname__r    r%    r   r   r   r      s7          b b b b br   r   c                   x    e Zd Zd Zed             Zd Zeed                         Zed             Zd Z	d Z
dS )	LazyGenericManagerc                 "    || _         || _        d S N)_context_of_index_index_value)r   context_of_indexindex_values      r   __init__zLazyGenericManager.__init__'   s    !1'r   c                 F     |                                  |                     S r3   _tupler   s     r   __getitem__zLazyGenericManager.__getitem__+   s    #t{{}}U#%%%r   c                 D    t          |                                           S r3   lenr;   r+   s    r   __len__zLazyGenericManager.__len__/   s    4;;==!!!r   c              #       K    fd}t           j        t                    r- j                            d           D ]} ||          V  d S  fdV  d S )Nc                       fdS )Nc                  l    t          t          j                                                             S r3   )r   r   r4   infer
lazy_valuer   s   r   <lambda>zULazyGenericManager._tuple.<locals>.lambda_scoping_in_for_loop_sucks.<locals>.<lambda>6   s3    8$?&  ""% %   r   r/   rE   s   `r    lambda_scoping_in_for_loop_suckszCLazyGenericManager._tuple.<locals>.lambda_scoping_in_for_loop_sucks5   s"         r   )contextualized_nodec                  n    t          t           j        t           j        g                              S r3   )r   r   r4   r5   r+   s   r   rG   z+LazyGenericManager._tuple.<locals>.<lambda>?   s5    (#>&$+,--$ $   r   )
isinstancer5   r   
py__iter__)r   rH   rF   s   `  r   r;   zLazyGenericManager._tuple2   s      	 	 	 	 	 d')=>> 	"/::t:TT C C
66zBBBBBBC C        r   c              #   P   K   |                                  D ]} |            V  d S r3   r:   )r   	callable_s     r   r   zLazyGenericManager.to_tupleD   s<       	 	I)++	 	r   c                     t          | j        t                    r:| j                                        }t	          |          dk    r|d         dk    rdS dS )N      z...TF)rK   r5   r   get_tree_entriesr?   )r   entriess     r   is_homogenous_tuplez&LazyGenericManager.is_homogenous_tupleI   sU    d')=>> 	'88::G7||q  WQZ5%8%8tur   c                 j    dd                     d |                                 D                       z  S )Nz<LazyG>[%s]r"   c              3   4   K   | ]}t          |          V  d S r3   reprr&   xs     r   r(   z.LazyGenericManager.__repr__.<locals>.<genexpr>Q   s(      )K)Ka$q'')K)K)K)K)K)Kr   r)   r+   s    r   __repr__zLazyGenericManager.__repr__P   s0    		)K)K4==??)K)K)K K KLLr   N)r,   r-   r.   r8   r   r<   r@   r   r;   rT   r[   r/   r   r   r1   r1   &   s        ( ( ( & & ^&" " "   X ^    X  M M M M Mr   r1   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TupleGenericManagerc                     || _         d S r3   r:   )r   tups     r   r8   zTupleGenericManager.__init__U   s    r   c                     | j         |         S r3   r:   r   s     r   r<   zTupleGenericManager.__getitem__X   s    {5!!r   c                 *    t          | j                  S r3   r>   r+   s    r   r@   zTupleGenericManager.__len__[   s    4;r   c                     | j         S r3   r:   r+   s    r   r   zTupleGenericManager.to_tuple^   s
    {r   c                     dS )NFr/   r+   s    r   rT   z'TupleGenericManager.is_homogenous_tuplea   s    ur   c                 j    dd                     d |                                 D                       z  S )Nz
<TupG>[%s]r"   c              3   4   K   | ]}t          |          V  d S r3   rW   rY   s     r   r(   z/TupleGenericManager.__repr__.<locals>.<genexpr>e   s(      (J(JQa(J(J(J(J(J(Jr   r)   r+   s    r   r[   zTupleGenericManager.__repr__d   s0    tyy(J(J$--//(J(J(JJJKKr   N)	r,   r-   r.   r8   r<   r@   r   rT   r[   r/   r   r   r]   r]   T   ss          " " "         L L L L Lr   r]   N)__doc__jedir   
jedi.cacher   jedi.inference.utilsr   jedi.inference.base_valuer   r   jedi.inference.value.iterabler   jedi.inference.helpersr	   r   r   r1   r]   r/   r   r   <module>rm      s5   
       % % % % % % ) ) ) ) ) ) 9 9 9 9 9 9 9 9 > > > > > > , , , , , ,	 	 		b 	b 	b 	b 	b 	b 	b 	b+M +M +M +M +M0 +M +M +M\L L L L L1 L L L L Lr   