Format: application/x-python-code
⬇ Download File (10.2 KB)
   1  o
   2  
   3  �h�/�@s:ddlZddlmZddlmZddlmZddlmZddl	m
   4  Z
   5  ddlmZm
   6  Z
   7  mZmZddlmZmZmZdd	lmZmZmZdd
   8  lmZddlmZd&dd
   9  �ZGdd�de�Zdd�Zdd�Z dd�Z!Gdd�d�Z"Gdd�de"�Z#dd�Z$Gdd�de#�Z%Gdd�de#�Z&Gd d!�d!e"�Z'd'd"d#�Z(d$d%�Z)dS)(�N)�zip_longest)�tree)�debug)�PushBackIterator)�analysis)�LazyKnownValue�LazyKnownValues�
  10  LazyTreeValue�get_merged_lazy_value)�	ParamName�TreeNameDefinition�AnonymousParamName)�	NO_VALUES�ValueSet�ContextualizedNode)�iterable)�%inference_state_as_method_param_cachec	CsV|dkrdS|D] }z|j}Wn	tyYqw|�D]}t|��|d�qqdS)z"Helper method for static analysis.�
  11  N�)�
  12  py__iter__�AttributeError�try_iter_content�infer)�types�depth�typ�fZ
  13  lazy_value�r�Nc:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/inference/arguments.pyrs
  14  �
  15  ��rc@seZdZdS)�
  16  ParamIssueN)�__name__�
  17  __module__�__qualname__rrrrr"srcs�fdd�}|S)aN
  18      Transforms a function or method with arguments to the signature that is
  19      given as an argument clinic notation.
  20  
  21      Argument clinic is part of CPython and used for all the functions that are
  22      implemented in C (Python 3.7):
  23  
  24          str.split.__text_signature__
  25          # Results in: '($self, /, sep=None, maxsplit=-1)'
  26      cs��fdd�}|S)Ncs>ztt|j|���}WntytYSw�|g|�R�S�N)�tuple�iterate_argument_clinic�inference_staterr)�value�	arguments�args)�
  27  clinic_string�funcrr�wrapper2s
  28  ��z?repack_with_argument_clinic.<locals>.decorator.<locals>.wrapperr)r+r,�r*)r+r�	decorator1sz.repack_with_argument_clinic.<locals>.decoratorr)r*r.rr-r�repack_with_argument_clinic&sr/ccs�tt|��}t|���}t|�D]x\}\}}}}	|	dkrEg}
  29  |D]\}}|dur2|�||f�n|
  30  �|�q!tt�	||
  31  �g�V|
  32  q|	dkrLt
  33  ��t|d�\}}|dur^t�
  34  d�t�|durp|spt�
  35  d|t|�|�t�|durvtn|��}
  36  |
  37  s�|s�t�
  38  d|�t�|
  39  VqdS)z;Uses a list with argument clinic information (see PEP 436).rN�)NNzAKeyword arguments in argument clinic are currently not supported.z4TypeError: %s expected at least %s arguments, got %sz$argument_clinic "%s" not resolvable.)�list�_parse_argument_clinicr�unpack�	enumerateZ	push_back�appendrrZ	FakeTuple�NotImplementedError�nextr�warningr�lenrr)r&r(r*Zclinic_args�iterator�i�name�optional�allow_kwargs�starsZlazy_values�key�argumentZ	value_setrrrr%Bs>�
  40  
  41  ��r%ccs��d}d}|rHt�d|�}|t|�d��d�}|�d�s d}q|p(t|�d��}|�d�}|�d�}||d�}||||fV|rDd}|sdSdS)NFz%(?:(?:(\[),? ?|, ?|)(\**\w+)|, ?/)\]*rr0Tr�*)�re�matchr9�group�bool�count)�stringr>r=rD�wordr?rrrr2is"�
  42  
  43  
  44  �r2c@seZdZddd�Zdd�ZdS)�_AbstractArgumentsMixinNcC�t�r#�r6)�self�funcdefrrrr3��z_AbstractArgumentsMixin.unpackcCsgSr#r�rMrrr�get_calling_nodes�rOz)_AbstractArgumentsMixin.get_calling_nodesr#)r r!r"r3rQrrrrrJs
  45  rJc@seZdZdZdZdZdS)�AbstractArgumentsN)r r!r"�context�
  46  argument_node�trailerrrrrrR�srRccs��|durdS|jdkr|jdkr|jddvsd|fVdSt|j�}|D]H}|dkr-q&|dvrEt|d�}|dus<J�t|j�|fVq&|jdkri|jddvrit|j�dksZJ�t|jdj�|jdfVq&d|fVq&dS)N�arglistrAr)rBz**�,r0r)�type�children�iterr7r9r')rVr:�child�crrr�unpack_arglist�s*�
  47  
  48  
  49  
  50  
  51  �r]c@sReZdZddd�Zee�dd���Zddd�Zdd	�Zd
  52  d�Z	dd
  53  �Z
  54  dd�ZdS)�
  55  TreeArgumentsNcCs||_||_||_||_dS)zS
  56          :param argument_node: May be an argument_node or a list of nodes.
  57          N)rTrS�_inference_staterU)rMr&rSrTrUrrr�__init__�s
  58  zTreeArguments.__init__cOs||i|��Sr#r)�clsr)�kwargsrrr�
  59  create_cached�szTreeArguments.create_cachedc#sN�g}t�j�D]�\}�|dkr7�j���}���fdd�|D�}tt|��D]}dtdd�|D��fVq'q|dkrR�j���}|D]
  60  }t�j|���EdHqCq�jdkr��j	}t
  61  |�dkrq|�|djt
  62  �j|d�f�q�j	d}	|	jd	kr�|	j	d}	tj�j�j|	�j	dd
  63  �}
  64  dt|
  65  �fVqdt
  66  �j��fVq|EdHdS)Nrcsg|]
  67  }t�j|����qSr)�_iterate_star_argsrS)�.0�a��elrNrMrr�
  68  <listcomp>�s�z(TreeArguments.unpack.<locals>.<listcomp>cSsg|]}|dur|�qSr#r)re�vrrrri�sr0rA�rZcomp_for)Zdefining_contextZsync_comp_for_nodeZ
  69  entry_node)r]rTrSZ
  70  infer_noder1rr
  71  �_star_star_dictrXrYr9r5r'r	rZGeneratorComprehensionr_r)rMrNZ
  72  named_args�
  73  star_countZarrays�	iterators�values�dctr\Z
  74  sync_comp_for�comprrgrr3�sD��
  75  ���
  76  "
  77  
  78  
  79  �zTreeArguments.unpackccsV�t|j�D]"\}}d}|jdkr"t|j�dkr"|jddd�\}}|||fVqdS)NrArkr0)r]rTrXr9rY)rMrmrA�defaultrrr�_as_tree_tuple_objects�s�
  80  �z$TreeArguments._as_tree_tuple_objectsccs:�|��D]\}}}|rt|tj�sqt|j|�VqdSr#)rs�
  81  isinstancer�NamerrS)rMr<rrrmrrr�iter_calling_names_with_star�s��z*TreeArguments.iter_calling_names_with_starcC�d|jj|jfS�Nz<%s: %s>)�	__class__r rTrPrrr�__repr__��zTreeArguments.__repr__cCs�g}|}||vrKt|t�sn=|�|�tt|����D]+}|��}t|�dkr)nt|dt�r4gSt|dt	�s=n
  82  |d�
  83  �}|j}||vs|jdurXt
  84  |j|j�gS|jduret
  85  |j|j�gSgS)Nrr)rtr^r5�reversedr1rvZgotor9r
  86  rZget_executed_param_namer(rTrrSrU)rMZold_arguments_listr(Zcalling_name�namesZexecuted_param_namerrrrQ�s.
  87  
  88  �
  89  
  90  zTreeArguments.get_calling_nodesr#)r r!r"r`�classmethodrrcr3rsrvrzrQrrrrr^�s
  91  	
  92  'r^c@s&eZdZdd�Zddd�Zdd�ZdS)	�ValuesArgumentscC�
  93  ||_dSr#)�_values_list)rMZvalues_listrrrr`�
  94  zValuesArguments.__init__Nccs �|jD]	}dt|�fVqdSr#)r�r)rMrNrorrrr3s�
  95  �zValuesArguments.unpackcCrwrx)ryr r�rPrrrrzr{zValuesArguments.__repr__r#)r r!r"r`r3rzrrrrr
  96  s
  97  rc@sReZdZdd�Zedd��Zedd��Zedd��Zdd
  98  d�Zdd
  99  �Z	dd�Z
 100  d	S)�TreeArgumentsWrappercCr�r#)�_wrapped_arguments)rMr(rrrr`r�zTreeArgumentsWrapper.__init__cC�|jjSr#)r�rSrPrrrrS�zTreeArgumentsWrapper.contextcCr�r#)r�rTrPrrrrT!r�z"TreeArgumentsWrapper.argument_nodecCr�r#)r�rUrPrrrrU%r�zTreeArgumentsWrapper.trailerNcCrKr#rL)rMr+rrrr3)rOzTreeArgumentsWrapper.unpackcCs
 101  |j��Sr#)r�rQrPrrrrQ,r�z&TreeArgumentsWrapper.get_calling_nodescCrwrx)ryr r�rPrrrrz/r{zTreeArgumentsWrapper.__repr__r#)r r!r"r`�propertyrSrTrUr3rQrzrrrrr�s
 102  
 103  
 104  
 105  r�ccsf�|�d�s|durd|jj|f}tj|d||d�z|j}Wn
 106  ty*YdSw|�EdHdS)N�__iter__z;TypeError: %s() argument after * must be a sequence, not %sztype-error-star��message)Zpy__getattribute__r<r'r�addrr)rS�array�
 107  input_noderN�mZiter_rrrrd3s�
 108  
 109  �
 110  �rdcCsrddlm}t||�r|jjdkriSt|tj�r"|jdkr"|��S|dur7d|jj	|f}t
 111  j|d||d�iS)Nr)�CompiledInstance�dictz9TypeError: %s argument after ** must be a mapping, not %sztype-error-star-starr�)Zjedi.inference.value.instancer�rtr<Zstring_namer�SequenceZ
 112  array_typeZexact_key_itemsr'rr�)rSr�r�rNr�r�rrrrlBs
 113  �rl)rr#)*rC�	itertoolsrZparso.pythonrZjedirZjedi.inference.utilsrZjedi.inferencerZjedi.inference.lazy_valuerrr	r
 114  Zjedi.inference.namesrrr
 115  Zjedi.inference.base_valuerrrZjedi.inference.valuerZjedi.inference.cacherr�	Exceptionrr/r%r2rJrRr]r^rr�rdrlrrrr�<module>s0
 116  'g
 117