Format: application/x-python-code
⬇ Download File (5.0 KB)
   1  o
   2  
   3  �h��@s�dZddlmZddlmZddlmZddlmZddl	m
   4  Z
   5  dd�Zd	d
   6  �Zdd�Z
   7  d
   8  d�Zeddd��ZGdd�de�ZdS)a
   9  
  10  This module is responsible for inferring *args and **kwargs for signatures.
  11  
  12  This means for example in this case::
  13  
  14      def foo(a, b, c): ...
  15  
  16      def bar(*args):
  17          return foo(1, *args)
  18  
  19  The signature here for bar should be `bar(b, c)` instead of bar(*args).
  20  �)�	Parameter)�tree)�to_list)�ParamNameWrapper)�is_big_annoying_libraryccs�ddlm}ddlm}|j}t�|jdd�}|��}|jdj	}|jdj
  21  }|���|j
  22  �D]Q}||j	kr=|kr�nq0|j}	|	jdkr�|	jdd|jkr�||	d	�}
  23  |
  24  dur�|�|
  25  �}t|||�r�t||
  26  �}|j|j||
  27  jd
  28  |
  29  d�}
  30  |D]}||
  31  fVqyq0dS)Nr)�search_ancestor)�
  32  TreeArgumentsZfuncdefZlambdef������argument�*�trailer�)�contextZ
  33  argument_noder)Zparso.python.treerZjedi.inference.argumentsr�parent_contextrZ	tree_nameZ
  34  get_root_node�children�	start_pos�end_posZget_used_names�get�string_name�parent�type�
  35  star_countZcreate_context�_goes_to_param_name�
  36  _to_callablesZ
  37  create_cachedZinference_state)�
  38  param_namerrZexecution_contextZ
  39  function_nodeZmodule_node�start�end�namer
  40  rr�values�args�c�r!�Nc:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/inference/star_args.py�_iter_nodes_for_params8�
  41  
  42  
  43  
  44  ���r#cs>|jdkrdSddlm}|||���}t�fdd�|D��S)NrFr)�TreeNameDefinitionc3s(�|]}�j|jko�j|jkVqdS�N)rr)�.0�p�rr!r"�	<genexpr>>s��
  45  
  46  �z&_goes_to_param_name.<locals>.<genexpr>)r�jedi.inference.namesr$Zgoto�any)rrZpotential_namer$�foundr!r(r"r9s
  47  �rcCsfddlm}|j}|jddk}|�|j|�}|j|dd�D]}||kr*|S||||�}q!|S)Nr)�
  48  infer_trailer�awaitr
  49  )Zjedi.inference.syntax_treer-rrZ
  50  infer_node)rrr-Z	atom_expr�indexrZtrailer2r!r!r"rCs�rccsx�d}t�}|��D]\}}|dur|d7}q
  51  |�|�q
  52  |D]}|r,|��r,|d8}q|j|vr6|��r6q|VqdS)Nrr
  53  )�set�unpack�addZmaybe_positional_argumentrZmaybe_keyword_argument)�	arguments�param_names�countZ	used_keys�key�_r'r!r!r"�_remove_given_paramsQs�
  54  �r8�c	csl�|rt|dj�r|EdHdSt�}g}g}g}g}g}d}d}	|D]i}
  55  |
  56  ��}|tjkr:|d@r9t|
  57  �}|
  58  }q$|
  59  ��tjkrN|d@rMtt|
  60  ��}|
  61  }	q$|tj	kr]|d@r\|�
  62  |
  63  �q$|tjkrj|d@ri|
  64  Vq$|dkrvt|
  65  tj�Vq$|dkr�|�
  66  t|
  67  tj	��q$|�
  68  |
  69  j�|
  70  Vq$d}d}
  71  d}|D]m}|\}}|}||vr�|�|�nd}|��D]T}d}
  72  |dkr�d}g}ttt||jdd���|�D].}
  73  |
  74  ��tjkr�|�
  75  |
  76  �q�|
  77  ��tjkr�|�
  78  |
  79  �q�|
  80  ��tj	kr�|�
  81  |
  82  �q�|�
  83  |
  84  �q�t|�t|�k�r|}q�q�|D]*}
  85  |dk�r|
  86  ��tjk�rt|
  87  tj�V�q|
  88  ��tjk�r,|�
  89  |
  90  j�|
  91  V�q|
  92  �s=|du�r=|Vn|�rE|dV|D]>\}}|��D]4}d}ttt||jdd���dd	�D]}
  93  |
  94  ��tjk�rs|�
  95  |
  96  ��qb|
  97  ��tj	k�r�|�
  98  |
  99  ��qb�qO�qG|D]}
 100  |
 101  j|v�r��q�|
 102  V|�
 103  |
 104  j��q�|�s�|	du�r�|	VdS|�r�|dVdSdS)
 105  Nrr
 106  �r!FTr9)Z
 107  resolve_stars)r)rrr0�get_kindr�VAR_POSITIONALr#�VAR_KEYWORD�list�KEYWORD_ONLY�append�POSITIONAL_ONLY�ParamNameFixedKindr2r�removeZget_signatures�process_paramsr8Zget_param_names�len�POSITIONAL_OR_KEYWORD)r4rZ
 108  used_namesZ
 109  arg_callablesZkwarg_callablesZ
 110  kw_only_namesZkwarg_names�	arg_namesZoriginal_arg_nameZoriginal_kwarg_namer'�kindZlongest_param_namesZfound_arg_signatureZfound_kwarg_signatureZfunc_and_argument�funcr3Znew_star_count�	signatureZargs_for_this_funcr!r!r"rDcs��
 111  
 112  ��
 113  
 114  �
 115  �
 116  ����
 117  
 118  
 119  �
 120  �
 121  ���
 122  �rDcs$eZdZ�fdd�Zdd�Z�ZS)rBcst��|�||_dSr%)�super�__init__�	_new_kind)�selfrZnew_kind��	__class__r!r"rL�s
 123  zParamNameFixedKind.__init__cCs|jSr%)rM)rNr!r!r"r;�szParamNameFixedKind.get_kind)�__name__�
 124  __module__�__qualname__rLr;�
 125  __classcell__r!r!rOr"rB�srBN)r9)�__doc__�inspectrZparsorZjedi.inference.utilsrr*rZjedi.inference.helpersrr#rrr8rDrBr!r!r!r"�<module>s#
 126  r