Format: application/x-python-code
⬇ Download File (15.7 KB)
   1  o
   2  
   3  �hgC�	@sdZddlZddlmZddlmZmZddlmZm	Z	m
   4  Z
   5  mZmZddl
   6  mZddlmZddlmZdd	lmZmZdd
   7  lmZddlmZmZmZddlmZdd
   8  lmZm Z d�!�Z"ddddddddd�Z#d�!�Z$Gdd�de�Z%Gdd�de�Z&Gdd�de�Z'Gdd �d e�Z(Gd!d"�d"e�Z)Gd#d$�d$e'e)�Z*Gd%d&�d&e(e)�Z+Gd'd(�d(e�Z,Gd)d*�d*e�Z-Gd+d,�d,e�Z.Gd-d.�d.e�Z/Gd/d0�d0e�Z0Gd1d2�d2e�Z1Gd3d4�d4e�Z2Gd5d6�d6e�Z3Gd7d8�d8e
   9  �Z4Gd9d:�d:e�Z5Gd;d<�d<e�Z6Gd=d>�d>e�Z7dS)?z�
  10  We need to somehow work with the typing objects. Since the typing objects are
  11  pretty bare we need to add all the Jedi customizations to make them work as
  12  values.
  13  
  14  This file deals with all the typing.py cases.
  15  �N)�debug)�builtin_from_name�create_simple_object)�ValueSet�	NO_VALUES�Value�LazyValueWrapper�ValueWrapper)�LazyKnownValues)�repack_with_argument_clinic)�
  16  FilterWrapper)�NameWrapper�	ValueName)�
  17  ClassMixin)�BaseTypingValue�BaseTypingClassWithGenerics�BaseTypingInstance)�TypeVarClass)�LazyGenericManager�TupleGenericManagerz$Tuple Generic Protocol Callable Typez
  18  builtins.listz
  19  builtins.dictzbuiltins.setzbuiltins.frozensetzcollections.ChainMapzcollections.Counterzcollections.defaultdictzcollections.deque)�List�Dict�Set�	FrozenSet�ChainMap�Counter�DefaultDict�Dequez!Optional Union ClassVar Annotatedc@�eZdZdd�Zdd�ZdS)�TypingModuleNamecCst|���S�N)r�_remap��self�r$�Sc:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/inference/gradual/typing.py�infer'szTypingModuleName.inferccs��|j}|jj}zt|}Wn	tyYnwt�||j|j|�VdS|tvr5t	�||j|j�VdS|t
  20  vrEt�||j|j�VdS|dkrKdS|dkr^|j�
  21  �\}t�||�VdS|dkrnt�||j|j�VdS|dkrzt|d�VdS|dkr�t�||j|j�VdS|dkr�|j�
  22  �\}t�||�VdS|dkr�|j�
  23  �\}t�||�VdS|d	kr�t�||j|j�VdS|j�
  24  �EdHdS)
  25  NZruntime�TypeVar�Any�
  26  TYPE_CHECKING�True�overload�NewType�cast�	TypedDict)�string_name�parent_context�inference_state�_TYPE_ALIAS_TYPES�KeyError�	TypeAlias�
  27  create_cachedZ	tree_name�_PROXY_CLASS_TYPES�ProxyTypingClassValue�_PROXY_TYPES�ProxyTypingValueZ
  28  _wrapped_namer&r�AnyClassr�OverloadFunction�NewTypeFunction�CastFunction�TypedDictClass)r#�namer1�actual�cls�vZcast_fnr$r$r%r!*s\���
  29  
  30  �
  31  
  32  �
  33  
  34  �
  35  
  36  �
  37  
  38  �zTypingModuleName._remapN)�__name__�
  39  __module__�__qualname__r&r!r$r$r$r%r&src@�eZdZeZdS)�TypingModuleFilterWrapperN)rCrDrErZname_wrapper_classr$r$r$r%rG`�rGc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
  40  �ProxyWithGenericscCs�|jj}|dkr|����S|dkr!|����tt|jd�g�BS|dkr*|jdS|dvr5|jd��Stt	t
  41  td�}||}t||j||j|jd�g�S)	N�Union�Optional�None�Typer)�ClassVar�	Annotated)�Tuple�Generic�Protocol�Callable��generics_manager)
  42  �
  43  _tree_name�value�gather_annotation_classes�execute_annotationrrr1�_generics_managerrPrQrRrSr0)r#r/ZmappedrAr$r$r%rYes.
  44  �
  45  �
  46  �z$ProxyWithGenerics.execute_annotationcCst�|j���Sr )r�	from_setsrZ�to_tupler"r$r$r%rX��z+ProxyWithGenerics.gather_annotation_classescC�t|j|j|�Sr )rIr0rV�r#rUr$r$r%�_create_instance_with_generics��
  47  �z0ProxyWithGenerics._create_instance_with_genericscsL|��}|siS|��}|dkr$t|jd��|d�|��fdd���SiS)NrKrLrcs|�kSr r$��x��noner$r%�<lambda>�sz3ProxyWithGenerics.infer_type_vars.<locals>.<lambda>)�get_generics�
  48  py__name__rr1�infer_type_vars�filter)r#�	value_set�annotation_generics�annotation_namer$rdr%ri�s�z!ProxyWithGenerics.infer_type_varsN)rCrDrErYrXr`rir$r$r$r%rIds
  49  !rIc@s eZdZeZdd�Zdd�ZdS)r9cCs|jj|j|j|jt|�d�S)NrT)�index_classr5r1r0rVr)r#Zgenerics_tupler$r$r%�
  50  with_generics�s�zProxyTypingValue.with_genericscst��fdd�|D��S)Nc	3s4�|]}�jj�j�j�jt�j|d�d�VqdS))Zcontext_of_index�index_valuerTN)rnr5r1r0rVr�context)�.0rp��contextualized_noder#r$r%�	<genexpr>�s�	���
  51  �z1ProxyTypingValue.py__getitem__.<locals>.<genexpr>�r�r#Zindex_value_setrtr$rsr%�
  52  py__getitem__�s	�zProxyTypingValue.py__getitem__N)rCrDrErIrnrorxr$r$r$r%r9�sr9c@s(eZdZdd�Zdd�Zedd��ZdS)�_TypingClassMixincCst|jj�d��gS)N�object)r
  53  r1�builtins_module�py__getattribute__r"r$r$r%�py__bases__�s�z_TypingClassMixin.py__bases__cC�gSr r$r"r$r$r%�get_metaclasses��z!_TypingClassMixin.get_metaclassescC�t||j�Sr )rrVr"r$r$r%r?��z_TypingClassMixin.nameN)rCrDrEr}r�propertyr?r$r$r$r%ry�s
  54  ryc@r)�TypingClassWithGenericscCs�i}|��}|s
  55  |S|��}|dkr|d�|���S|dkr0t|�dkr.|d�|���S|S|dkr>|��\}|�|�S|S)NrMrrS��rP)rgrhrirY�len)r#rk�
  56  type_var_dictrlrmZtuple_annotationr$r$r%ri�s&���
  57  
  58  z'TypingClassWithGenerics.infer_type_varscCr^r )r�r0rVr_r$r$r%r`�raz6TypingClassWithGenerics._create_instance_with_genericsN)rCrDrErir`r$r$r$r%r��sr�c@rF)r7N)rCrDrEr�rnr$r$r$r%r7�rHr7c@sHeZdZdd�Zedd��Zdd�Zdd�Zd	d
  59  �Zdd�Z	d
  60  d�Z
  61  dS)r4cCs|j|_||_||_||_dSr )r1r0�_origin_tree_name�_actual)r#r0Zorigin_tree_namer@r$r$r%�__init__�s
  62  zTypeAlias.__init__cCr�r )rr�r"r$r$r%r?�r�zTypeAlias.namecC�|jjSr )r?r/r"r$r$r%rh�szTypeAlias.py__name__cCsd|jj|jfS)Nz<%s: %s>)�	__class__rCr�r"r$r$r%�__repr__szTypeAlias.__repr__cCsd|j�d�\}}ddlm}||j|g|jj���\}|�|�}t|�dks*J|��t	t
  63  |��}|S)N�.r)�Importerr�)r��splitZjedi.inference.importsr�r1r{�followr|r��next�iter)r#�module_name�
  64  class_namer��module�classesrAr$r$r%�_get_wrapped_values��
  65  zTypeAlias._get_wrapped_valuecCst|��g�Sr )rr�r"r$r$r%rXsz#TypeAlias.gather_annotation_classescCr~r r$r"r$r$r%�get_signaturesr�zTypeAlias.get_signaturesN)rCrDrEr�r�r?rhr�r�rXr�r$r$r$r%r4�s
  66  r4c@r)rScCsRz|jd}|jd}Wntyt�d�tYSwddlm}||||�S)zG
  67              def x() -> Callable[[Callable[..., _T]], _T]: ...
  68          rr�z+Callable[...] defined without two arguments)�infer_return_for_callable)rZ�
  69  IndexErrorr�warningr�!jedi.inference.gradual.annotationr�)r#�	argumentsZparam_valuesZ
  70  result_valuesr�r$r$r%�
  71  py__call__s
  72  
  73  �zCallable.py__call__cCs
  74  t|g�Sr rv)r#�instanceZclass_valuer$r$r%�	py__get__)�
  75  zCallable.py__get__N)rCrDrEr�r�r$r$r$r%rSsrSc@sJeZdZdd�Zdd�Zddd�Zdd	�Zd
  76  d�Zedd
  77  ��Z	dd�Z
  78  dS)rPcC�
  79  |j��Sr )rZZis_homogenous_tupler"r$r$r%�_is_homogenous.s
  80  zTuple._is_homogenouscCs<|��r
  81  |j�d�St|t�r|j�|�St�d|�tS)Nrz The getitem type on Tuple was %s)r�rZ�get_index_and_execute�
  82  isinstance�intrZdbgr�r#�indexr$r$r%�py__simple_getitem__3s
  83  zTuple.py__simple_getitem__NccsB�|��rt|j�d��VdS|j��D]	}t|���VqdS�Nr)r�r
  84  rZr�r\rY)r#rtrBr$r$r%�
  85  py__iter__=s��zTuple.py__iter__cCs(|��r
  86  |j�d�St�|j�����Sr�)r�rZr�rr[r\rYrwr$r$r%rxDs��zTuple.py__getitem__cCs|jj�d���\}|S�N�tuple)r1r{r|rY)r#�tuple_r$r$r%r�Ls
  87  �zTuple._get_wrapped_valuecCr�r )Z_wrapped_valuer?r"r$r$r%r?Q�z
  88  Tuple.namec	Cs�ddlm}m}|�dd��}|��r|j��d�|���Si}|D]}z|j	}Wn	t
  89  y3Yq#w|�}||||j|��q#|S)Nr)�merge_pairwise_generics�merge_type_var_dictscSs|����dkSr�)rh�lowerrbr$r$r%rfZsz'Tuple.infer_type_vars.<locals>.<lambda>)r�r�r�rjr�Z_class_valuergriZmerge_types_of_iterateZget_annotated_class_object�AttributeError)r#rkr�r�r��element�methodZpy_classr$r$r%riUs*��
  90  
  91  �
  92  �zTuple.infer_type_varsr )rCrDrEr�r�r�rxr�r�r?rir$r$r$r%rP-s
  93  
  94  
  95  rPc@�eZdZdS)rQN�rCrDrEr$r$r$r%rQ~�rQc@r�)rRNr�r$r$r$r%rR�r�rRc@�eZdZdd�ZdS)r:cCst�d�tS)NzUsed Any - returned no results)rr�rr"r$r$r%rY�s
  96  zAnyClass.execute_annotationN)rCrDrErYr$r$r$r%r:��r:c@�eZdZed�dd��ZdS)r;zfunc, /cCs|Sr r$)r#Zfunc_value_setr$r$r%r��szOverloadFunction.py__call__N�rCrDrErr�r$r$r$r%r;��r;c@r�)r<csH|��}t|d�t|d�\}��durtSt��fdd�|��D��S)N)NNc3s(�|]}t�j|j|j����VqdSr )r,r1rq�noder&)rrrt�Z
  97  second_argr#r$r%ru�s���
  98  �z-NewTypeFunction.py__call__.<locals>.<genexpr>)�unpackr�rrZget_calling_nodes)r#r�Zordered_args�_r$r�r%r��s
  99  �zNewTypeFunction.py__call__N)rCrDrEr�r$r$r$r%r<�r�r<csFeZdZ�fdd�Zdd�Zdd�Zedd��Zd	efd
 100  d�Z	�Z
 101  S)r,cst��||�||_||_dSr )�superr��_type_value_set�	tree_node)r#r1r0r��type_value_set�r�r$r%r��s
 102  zNewType.__init__cCs|j��\}|Sr )r��py__class__)r#�cr$r$r%r��szNewType.py__class__cCr�r )r�rY)r#r�r$r$r%r��r�zNewType.py__call__cCsddlm}||d�S)Nr)�CompiledValueNamer,)Zjedi.inference.compiled.valuer�)r#r�r$r$r%r?�s
 103  zNewType.name�returncCsd|j|jfS)Nz<NewType: %s>%s)r�r�r"r$r$r%r��r]zNewType.__repr__)rCrDrEr�r�r�r�r?�strr��
 104  __classcell__r$r$r�r%r,�s
 105  r,c@r�)r=ztype, object, /cCs|��Sr )rY)r#r�Zobject_value_setr$r$r%r��r�zCastFunction.py__call__Nr�r$r$r$r%r=�r�r=c@seZdZdZdS)r>zr
 106      This class has no responsibilities and is just here to make sure that typed
 107      dicts can be identified.
 108      N)rCrDrE�__doc__r$r$r$r%r>�rHr>c@s<eZdZdZdd�Zedd��Zdd�Zdd	�Zd
 109  d�Z	dS)
 110  r.z6Represents the instance version of ``TypedDictClass``.cCs"|j|_|j|_|j|_||_dSr )r1r0r��_definition_class)r#Zdefinition_classr$r$r%r��s
 111  zTypedDict.__init__cCst||jj�Sr )rr�r?r"r$r$r%r?�szTypedDict.namecs0t�t�rt��fdd�|jjdd�D��StS)Nc3s(�|]}|���D]}|��Vq	qdSr )�getr&)rrrjr?�r�r$r%ru�s����z1TypedDict.py__simple_getitem__.<locals>.<genexpr>T�Zis_instance)r�r�rr[r��get_filtersrr�r$r�r%r��s
 112  
 113  �zTypedDict.py__simple_getitem__cs6tj�dd��jjdd�D��}t�fdd�|D��S)Ncss�|]}|��VqdSr )�values)rr�fr$r$r%ru�s
 114  ��
 115  �z+TypedDict.get_key_values.<locals>.<genexpr>Tr�csh|]	}t�j|j��qSr$)rr1r/)rrrBr"r$r%�	<setcomp>�s��z+TypedDict.get_key_values.<locals>.<setcomp>)�	itertools�chain�
 116  from_iterabler�r�r)r#Zfiltered_valuesr$r"r%�get_key_values�s��zTypedDict.get_key_valuescCs|jj�d�\}|��\}|S)N�dict)r1r{r|Zexecute_with_values)r#�d�resultr$r$r%r��s
 117  zTypedDict._get_wrapped_valueN)
 118  rCrDrEr�r�r�r?r�r�r�r$r$r$r%r.�s
 119  	
 120  r.)8r�r�ZjedirZjedi.inference.compiledrrZjedi.inference.base_valuerrrrr	Zjedi.inference.lazy_valuer
 121  Zjedi.inference.argumentsrZjedi.inference.filtersrZjedi.inference.namesr
 122  rZjedi.inference.value.klassrZjedi.inference.gradual.baserrrZjedi.inference.gradual.type_varrZjedi.inference.gradual.genericsrrr�r6r2r8rrGrIr9ryr�r7r4rSrPrQrRr:r;r<r,r=r>r.r$r$r$r%�<module>sV�
 123  :?%&Q