/ lib / jedi / plugins / stdlib.pyc
stdlib.pyc
  1  o

  2  )��c�u�@sldZddlZddlZddlmZddlmZddlmZddl	m
  3  Z
  4  ddlmZm
Z
mZmZmZddlmZdd	lmZdd
  5  lmZmZddlmZmZmZmZmZddlmZmZdd
l m!Z!ddl"m#Z#ddlm$Z$ddl%m&Z&m'Z'm(Z(ddl)m*Z*m+Z+ddl,m-Z-m.Z.m/Z/m0Z0ddl1m2Z2m3Z3dZ4dZ5dd�Z6dd�Z7			d�dd�Z8e8ddd�d d!��Z9e8d�d"d#��Z:e8d$�d�d%d&��Z;e8d'�d(d)��Z<Gd*d+�d+e�Z=e8d,dd-�d.d/��Z>Gd0d1�d1e-�Z?e8d2ddd3�d4d5��Z@e8d6ddd7�d8d9��ZAGd:d;�d;e�ZBe8d2�d<d=��ZCGd>d?�d?e�ZDGd@dA�dAe�ZEGdBdC�dCe�ZFe8d2ddd3�dDdE��ZGGdFdG�dGe-e�ZHe8dHddI�dJdK��ZIdLdM�ZJGdNdO�dOe�ZKGdPdQ�dQeK�ZLGdRdS�dSe3�ZMGdTdU�dUe�ZNdVdW�ZOdXdY�ZPe8dZ�d[d\��ZQe8d]�d^d_��ZRd`da�ZSGdbdc�dcee!�ZTGddde�dee2�ZUGdfdg�dge+�ZVGdhdi�die�ZWe8dH�djdk��ZXGdldm�dme�ZYGdndo�doee#�ZZe8dpddd3�dqdr��Z[dsdt�Z\e8dpddI�dudv��Z]e;e<e>e@eAe9e:eCeGeIdw�
  6  eQeQdx�dydz�d{dz�d|�d}eJieOePeXd~�deQid�eRid�e[id�eQid�dz�d�dz�d��d�eSid�eSid�eSie\ej^j_�e\ej^j`�e\ej^ja�e]d��d��Zbd�d��ZcGd�d��d�e�Zdd�d��ZedS)�a�
  7  Implementations of standard library functions, because it's not possible to
  8  understand them with Jedi.
  9  
 10  To add a new implementation, create a function and add it to the
 11  ``_implemented`` dict at the bottom of this module.
 12  
 13  Note that this module exists only to implement very specific functionality in
 14  the standard library. The usual way to understand the standard library is the
 15  compiled module that returns the types for C-builtins.
 16  �N)�	Parameter)�debug)�
safe_property)�get_str_or_none)�iterate_argument_clinic�
 17  ParamIssue�repack_with_argument_clinic�AbstractArguments�TreeArgumentsWrapper)�analysis)�compiled)�AnonymousMethodExecutionContext�MethodExecutionContext)�ContextualizedNode�	NO_VALUES�ValueSet�ValueWrapper�LazyValueWrapper)�
 18  ClassValue�ModuleValue)�
 19  ClassMixin)�
FunctionMixin)�iterable)�
LazyTreeValue�LazyKnownValue�LazyKnownValues)�	ValueName�BaseTreeParamName)�AttributeOverwrite�publish_method�ParserTreeFilter�
 20  DictFilter)�AbstractSignature�SignatureWrappera_property = property
 21  _tuple = tuple
 22  from operator import itemgetter as _itemgetter
 23  from collections import OrderedDict
 24  
 25  class {typename}(tuple):
 26      __slots__ = ()
 27  
 28      _fields = {field_names!r}
 29  
 30      def __new__(_cls, {arg_list}):
 31          'Create new instance of {typename}({arg_list})'
 32          return _tuple.__new__(_cls, ({arg_list}))
 33  
 34      @classmethod
 35      def _make(cls, iterable, new=tuple.__new__, len=len):
 36          'Make a new {typename} object from a sequence or iterable'
 37          result = new(cls, iterable)
 38          if len(result) != {num_fields:d}:
 39              raise TypeError('Expected {num_fields:d} arguments, got %d' % len(result))
 40          return result
 41  
 42      def _replace(_self, **kwds):
 43          'Return a new {typename} object replacing specified fields with new values'
 44          result = _self._make(map(kwds.pop, {field_names!r}, _self))
 45          if kwds:
 46              raise ValueError('Got unexpected field names: %r' % list(kwds))
 47          return result
 48  
 49      def __repr__(self):
 50          'Return a nicely formatted representation string'
 51          return self.__class__.__name__ + '({repr_fmt})' % self
 52  
 53      def _asdict(self):
 54          'Return a new OrderedDict which maps field names to their values.'
 55          return OrderedDict(zip(self._fields, self))
 56  
 57      def __getnewargs__(self):
 58          'Return self as a plain tuple.  Used by copy and pickle.'
 59          return tuple(self)
 60  
 61      # These methods were added by Jedi.
 62      # __new__ doesn't really work with Jedi. So adding this to nametuples seems
 63      # like the easiest way.
 64      def __init__(self, {arg_list}):
 65          'A helper function for namedtuple.'
 66          self.__iterable = ({arg_list})
 67  
 68      def __iter__(self):
 69          for i in self.__iterable:
 70              yield i
 71  
 72      def __getitem__(self, y):
 73          return self.__iterable[y]
 74  
 75  {field_defs}
 76  zW    {name} = _property(_itemgetter({index:d}), doc='Alias for field number {index:d}')
 77  c��fdd�}|S)Ncs����fdd�}z�jj}WntyY|�Sw�j}|dur(|��r(d}n|dur5|��r5|��}n|�S���s@���rC|�Szt	||}Wnt
 78  yVY|�Sw|��|d�S)Ncs���d�S)N��	arguments�r')r&�callback�valuer'��C:\Users\Jacks.GUTTSPC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jedi\plugins\stdlib.py�callj�z&execute.<locals>.wrapper.<locals>.call�builtins)r&r()�name�string_name�AttributeError�parent_context�is_builtins_module�	is_module�
 79  py__name__�is_bound_method�is_instance�_implemented�KeyError)r)r&r+�obj_name�p�module_name�func�r()r&r)r*�wrapperis,�
 80  �zexecute.<locals>.wrapperr')r(r>r'r=r*�executehsr?cCs6zt|���|\}}W|��StytYSw�N)�list�unpack�
 81  IndexErrorr�infer)�inference_stater&�index�key�
 82  lazy_valuer'r'r*�
_follow_param�s��rIFcs������fdd�}|S)zL
 83      Works like Argument Clinic (PEP 436), to validate function params.
 84      cs�������fdd�}|S)Ncs�ztt|j|���}WntytYSwtjd|dd�i}�r)|j|d<�r/||d<�r6|j|d<�r<||d<�rB||d<�|i|��}tjd	|dd�|S)
 85  Nzbuiltin start %s�MAGENTA)�color�contextr)rEr&r(zbuiltin end: %s)�tuplerrErrr�dbgrL)r)r&r(�args�kwargs�result)�
clinic_stringr<�want_arguments�
want_callback�want_context�want_inference_state�
 86  want_valuer'r*r>�s,
 87  ��
 88  
 89  z+argument_clinic.<locals>.f.<locals>.wrapperr'�r<r>�rRrSrTrUrVrW�r<r*�f�szargument_clinic.<locals>.fr')rRrWrUrSrVrTr[r'rYr*�argument_clinic�sr\ziterator[, default], /T)rVcCs||�d���BS)N�__next__��py__getattribute__�execute_with_values)�	iterators�defaultsrEr'r'r*�
builtins_next�srccCs|�d���S)N�__iter__r^)Ziterators_or_callablesrbr'r'r*�
builtins_iter�srezobject, name[, default], /cCsD|D]}|D]}t|�}|durt�d�q|�|�SqtS)Nzgetattr called without str)rr�warningr_r)�objects�namesrbr)r.�stringr'r'r*�builtins_getattr�s
 90  �rjzobject[, bases, dict], /cCs|s|rtS|��Sr@)r�py__class__)rg�bases�dictsr'r'r*�
builtins_type�srnc@s2eZdZdZdd�Zdd�Zdd�Zdd	d
 91  �ZdS)�
SuperInstancez-To be used like the object ``super`` returns.cCs||_||_dSr@)rE�	_instance)�selfrE�instancer'r'r*�__init__�s
 92  zSuperInstance.__init__cCs|j����Sr@)rprk�py__bases__�rqr'r'r*�
 93  _get_bases�szSuperInstance._get_basescCs*|��d����}|s|jStt|��S�Nr)rvrDr`rp�next�iter)rq�objsr'r'r*�_get_wrapped_value�sz SuperInstance._get_wrapped_valueNccs:�|��D]}|����D]}|��D]}|Vqq
qdSr@)rvrDr`�get_filters)rq�origin_scope�br)r[r'r'r*r|�s����zSuperInstance.get_filtersr@)�__name__�
 94  __module__�__qualname__�__doc__rsrvr{r|r'r'r'r*ro�sroz[type[, value]], /)rUcCsDd}t|t�r|j}nt|t�r|j}|durtStt|j|�h�Sr@)�
 95  isinstancer
rrrrrrorE)�typesrgrLrrr'r'r*�builtins_super�s
 96  
 97  r�cs6eZdZ�fdd�Zd	dd�Zed�dd��Z�ZS)
 98  �ReversedObjectc�t��|�||_dSr@)�superrs�
 99  _iter_list)rqZreversed_objZ	iter_list��	__class__r'r*rs�
100  zReversedObject.__init__NcC�|jSr@)r�)rq�contextualized_noder'r'r*�
101  py__iter__�zReversedObject.py__iter__r]cCst�dd�|jD��S)Ncs��|]}|��VqdSr@�rD��.0rHr'r'r*�	<genexpr>	s�
102  �z'ReversedObject._next.<locals>.<genexpr>)r�	from_setsr��rqr&r'r'r*�_nexts
103  �zReversedObject._nextr@)rr�r�rsr�rr��
__classcell__r'r'r�r*r��s
104  
105  r�zsequence, /�rWrScCsft|���\}}d}t|t�rt|j|j�}t|�|��}|j	j
106  �d���\}t
t|tt|���g�S)N�Iterator)rxrBr�rrrL�datarA�iteraterE�
typing_moduler_r`rr��reversed)�	sequencesr)r&rGrH�cn�ordered�seqr'r'r*�builtins_reverseds
107  r�zvalue, type, /)rSrVc
	st�}|D]y}|��}z|jWnty tddg�}Yn_wt|����|D]T}|��r7|�|�v�q)|jj	dkr^|�
108  ���r^t�
dd�|��D��}|�t�fdd�|D���q)t|���d\}	}
109  t|
110  t�r}|
111  j}d|}t�|
112  jd	||�q)qt�fd
113  d�|D��S)NTFrMcsr�r@r�r�r'r'r*r�7s
114  ��
115  �z&builtins_isinstance.<locals>.<genexpr>c3s�|]}|�vVqdSr@r')r��cls)�mror'r*r�;���z[TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types, not %s.ztype-error-isinstancec3s �|]}t��t|��VqdSr@)r�builtin_from_name�str)r�r~)rEr'r*r�Es
116  ��
117  �)�setrkrtr0rA�	py__mro__�is_class�addr.r/�get_root_contextr2rr�r��anyrBr�rr�rrL)
rgr�r&rEZbool_results�or��
118  cls_or_tup�classes�_rH�node�messager')rEr�r*�builtins_isinstance!s@
119  �
120  �
121  �
122  ����r�c@�eZdZdd�ZdS)�StaticMethodObjectcCst|jg�Sr@)r�_wrapped_value�rqrr�class_valuer'r'r*�	py__get__Lr,zStaticMethodObject.py__get__N�rr�r�r�r'r'r'r*r�K�r�cC�tdd�|D��S)Ncs��|]}t|�VqdSr@)r��r�r[r'r'r*r�Rr�z(builtins_staticmethod.<locals>.<genexpr>�r��	functionsr'r'r*�builtins_staticmethodP�r�cs$eZdZ�fdd�Zdd�Z�ZS)�ClassMethodObjectcr�r@�r�rs�	_function)rqZclass_method_obj�functionr�r'r*rsVr�zClassMethodObject.__init__cs t��fdd��j�d�D��S)Ncsg|]	}t|��j��qSr')�ClassMethodGetr�)r��__get__�r�rqr'r*�
123  <listcomp>[s��z/ClassMethodObject.py__get__.<locals>.<listcomp>r�)rr�r_r�r'r�r*r�Zs
124  �zClassMethodObject.py__get__)rr�r�rsr�r�r'r'r�r*r�Usr�c�,eZdZ�fdd�Zdd�Zdd�Z�ZS)r�c�t��|�||_||_dSr@)r�rs�_classr�)rq�
125  get_method�klassr�r�r'r*rsb�
126  zClassMethodGet.__init__cs�fdd��j��D�S)Ncsg|]}|��j��qSr')�bindr�)r��sigrur'r*r�h�z1ClassMethodGet.get_signatures.<locals>.<listcomp>)r��get_signaturesrur'rur*r�gszClassMethodGet.get_signaturescCs|j�t|j|��Sr@)r�r?�ClassMethodArgumentsr�r�r'r'r*�
127  py__call__jszClassMethodGet.py__call__)rr�r�rsr�r�r�r'r'r�r*r�a�r�c�&eZdZ�fdd�Zddd�Z�ZS)r�cst��|�||_dSr@)r�rsr�)rqr�r&r�r'r*rsor�zClassMethodArguments.__init__Nccs.�dt|j�fV|j�|�D]}|VqdSr@)rr��_wrapped_argumentsrB)rqr<�valuesr'r'r*rBss
128  ��zClassMethodArguments.unpackr@)rr�r�rsrBr�r'r'r�r*r�n�r�cst�fdd�|j|d�D��S)Nc3�$�|]
}�D]}t||�VqqdSr@)r�)r�Zclass_method_objectr�r�r'r*r�{�����z'builtins_classmethod.<locals>.<genexpr>r%�rr�)r�r)r&r'r�r*�builtins_classmethodys
129  �r�csHeZdZdZ�fdd�Zdd�Zed�ed�ed�d	d
130  ����Z�ZS)�PropertyObject�propertycr�r@r�)rqZproperty_objr�r�r'r*rs�r�zPropertyObject.__init__cCs|dur	t|g�S|j�|�Sr@)rr�r`r�r'r'r*r��s
131  zPropertyObject.py__get__�deleter�getter�settercCs
132  t|h�Sr@r�r�r'r'r*�_return_self�s
133  zPropertyObject._return_self)	rr�r��api_typersr�rr�r�r'r'r�r*r��sr��func, /)rTcst�fdd�|�D��S)Nc3r�r@)r�)r�Zproperty_valuer�r�r'r*r��r�z$builtins_property.<locals>.<genexpr>r�)r�r(r'r�r*�builtins_property�s�r�cCs8|j}d}t||d�D]}t|�}|dur|}nqt||d�}|s$tSt|�d}t|�}	|	dur;|	�dd���}
134  nt|tj	�rRdd�|�
135  �D�}
136  d	d�|
137  D�}
138  ntStj|t
|
139  �t|
140  �tt
|
141  ���d
142  d�dd�dd
�dd�t|
143  �D��d�}|j�|�}t|���}
t||tj|dd�d���}tt|||
�g�S)z�
144      Implementation of the namedtuple function.
145  
146      This has to be done by processing the namedtuple class template and
147      inferring the result.
148  
149      Zjedi_unknown_namedtuplerNr��,� cSs"g|]
}|��D]}t|��qqSr')rDr)r�rH�vr'r'r*r��s���z*collections_namedtuple.<locals>.<listcomp>cSsg|]}|dur|�qSr@r'r�r'r'r*r��r��'�������
150  css"�|]\}}tj||d�VqdS))rFr.N)�_NAMEDTUPLE_FIELD_TEMPLATE�format)r�rFr.r'r'r*r��s��z)collections_namedtuple.<locals>.<genexpr>)�typename�field_names�
151  num_fields�arg_list�repr_fmtZ
152  field_defsT)�keepends)�
153  code_lines)rErIrrrA�replace�splitr�r�Sequencer��_NAMEDTUPLE_CLASS_TEMPLATEr�rM�len�repr�join�	enumerate�grammar�parserx�iter_classdefsr�parso�split_lines�
154  as_contextrr)r)r&r(rEr.�c�x�param_values�_fieldsri�fields�code�moduleZgenerated_classr1r'r'r*�collections_namedtuple�sP��
155  ����rcsFeZdZd�fdd�	Zdd�Zdd�Zdd	�Zd
156  d�Zdd
�Z�Z	S)�
PartialObjectNcr�r@)r�rs�
157  _argumentsrp)rqZactual_valuer&rrr�r'r*rs�r�zPartialObject.__init__cCs8t|d�\}}|dus|durt�d|j�dS|��S)N)NNz(Partial should have a proper function %s)rxrrfrrD)rq�unpacked_argumentsrGrHr'r'r*�_get_functions�s
158  zPartialObject._get_functionscsz|j��}|�|�}|durgSd�|jdurd�t��|D]\}}|dur+�d7�q��|�q��fdd�|��D�S)Nrr�csg|]}t|����qSr')�PartialSignature)r��s��	arg_count�keysr'r*r��r�z0PartialObject.get_signatures.<locals>.<listcomp>)rrBrrpr�r�r�)rqr�funcsrGr�r'rr*r��s
159  
160  
161  
162  zPartialObject.get_signaturescCs2|�|j���}|durtS|�t|j||j��Sr@)rrrBrr?�MergedPartialArgumentsrp)rqr&rr'r'r*r��s�zPartialObject.py__call__cCs4|�|j���}|durdS|D]}|��SdS)z�
163          In CPython partial does not replace the docstring. However we are still
164          imitating it here, because we want this docstring to be worth something
165          for the user.
166          Nr�)rrrB�	py__doc__)rq�	callables�	callable_r'r'r*r�szPartialObject.py__doc__cCs
167  t|g�Sr@r�r�r'r'r*r�s
168  zPartialObject.py__get__r@)
169  rr�r�rsrr�r�rr�r�r'r'r�r*r�s	
rc@r�)�PartialMethodObjectcCs(|dur	t|g�Stt|j|j|�g�Sr@)rrr�rr�r'r'r*r�s
170  zPartialMethodObject.py__get__Nr�r'r'r'r*r"r�r"cr�)rcr�r@)r�rs�_skipped_arg_count�_skipped_arg_set)rq�wrapped_signatureZskipped_arg_countZskipped_arg_setr�r'r*rsr�zPartialSignature.__init__Fcs&�j���jd�}�fdd�|D�S)Ncsg|]
171  }|j�jvr|�qSr')r/r$)r��nrur'r*r�sz4PartialSignature.get_param_names.<locals>.<listcomp>)�_wrapped_signature�get_param_namesr#)rq�
resolve_starsrhr'rur*r(sz PartialSignature.get_param_names�F�rr�r�rsr(r�r'r'r�r*rsrc@s eZdZddd�Zddd�ZdS)rNcCs||_||_||_dSr@)�_partial_arguments�_call_argumentsrp)rqZpartial_arguments�call_argumentsrrr'r'r*rs#s
172  zMergedPartialArguments.__init__ccs^�|j�|�}t|d�|jdurdt|j�fV|D]}|Vq|j�|�D]}|Vq'dSr@)r,rBrxrprr-)rq�funcdef�unpackedZkey_lazy_valuer'r'r*rB(s�
173  
174  �zMergedPartialArguments.unpackr@)rr�r�rsrBr'r'r'r*r"s
175  rc�t�fdd�|���D��S)Nc3��|]}t|��VqdSr@)r�r�rrr%r'r*r�6�
176  ��
177  �z$functools_partial.<locals>.<genexpr>r��r)r&r(r'r%r*�functools_partial5��r6cr1)Nc3r2r@)r"r3r%r'r*r�=r4z*functools_partialmethod.<locals>.<genexpr>r�r5r'r%r*�functools_partialmethod<r7r8zfirst, /cCs|Sr@r')Zfirstsr'r'r*�_return_first_paramCsr9r�cCst�dd�|D��S)Ncss&�|]}|��D]}|��VqqdSr@)r�rD)r��sequencerHr'r'r*r�Js����z!_random_choice.<locals>.<genexpr>)rr�)r�r'r'r*�_random_choiceHs
178  �r;cCs>t|j|d�D]}|��rtt|�g�St|g�StSrw)rIrEr�r�DataclassWrapperr)r)r&r(rr'r'r*�
179  _dataclassQs
180  r=c@r�)r<c
181  Cs�g}tt|����D]M}t|t�rW|����}t|��dd�d�D]5}|j	�
182  �}|jd}|jdkrV|jdkrVt
|j�dkrAd}n|jd}|�t|j|j	|jd|d	��q!q
183  t||�gS)
184  NcSr�r@)�	start_pos)r.r'r'r*�<lambda>csz1DataclassWrapper.get_signatures.<locals>.<lambda>)rGr��	expr_stmt�	annassign��)r1�	tree_name�annotation_node�default_node)r�rAr�r�r<r�get_global_filter�sortedr�rD�get_definition�children�typer�append�DataclassParamNamer1�DataclassSignature)rq�param_namesr��filter_r.�drA�defaultr'r'r*r�[s&
185  
186  
187  
188  ��zDataclassWrapper.get_signaturesN)rr�r�r�r'r'r'r*r<Zr�r<cr�)rNcr�r@)r�rs�_param_names)rqr)rOr�r'r*rsur�zDataclassSignature.__init__FcCr�r@)rS)rqr)r'r'r*r(yr�z"DataclassSignature.get_param_namesr*r+r'r'r�r*rNtr�rNcr�)rMcst��||�||_||_dSr@)r�rsrErF)rqr1rDrErFr�r'r*rs~s
189  zDataclassParamName.__init__cCstjSr@)r�POSITIONAL_OR_KEYWORDrur'r'r*�get_kind�r�zDataclassParamName.get_kindcCs|jdurtS|j�|j�Sr@)rErr1�
190  infer_noderur'r'r*rD�s
191  zDataclassParamName.infer)rr�r�rsrUrDr�r'r'r�r*rM}r�rMcs,eZdZ�fdd�Zed�dd��Z�ZS)�ItemGetterCallablecr�r@)r�rs�_args_value_set)rqrr�args_value_setr�r'r*rs�r�zItemGetterCallable.__init__zitem, /c	snt}|jD]/}t|���}t|�dkr |��|d��d�O}q|tt�	|j
192  j�fdd�|D��g�O}q|S)Nr�rcs g|]}t��|��d���qSr@)r�get_itemrDr���item_value_setr'r*r��s��z1ItemGetterCallable.py__call__.<locals>.<listcomp>)rrXrAr�rrZrDrr�FakeListr�rE)rqr\�	value_setZ
193  args_value�lazy_valuesr'r[r*r��s
194  
195  ��zItemGetterCallable.py__call__)rr�r�rsrr�r�r'r'r�r*rW�srWcCr�)Ncsr�r@)�
WrapsCallable�r�r<r'r'r*r��r�z#_functools_wraps.<locals>.<genexpr>r�)rr'r'r*�_functools_wraps�r�rbc@seZdZed�dd��ZdS)r`r�cst�fdd�|D��S)Ncsh|]}t|�j��qSr')�Wrappedr�rarur'r*�	<setcomp>�r�z+WrapsCallable.py__call__.<locals>.<setcomp>r�)rqrr'rur*r��szWrapsCallable.py__call__N)rr�r�rr�r'r'r'r*r`�sr`cs0eZdZ�fdd�Zedd��Zdd�Z�ZS)rccr�r@)r�rs�_original_function)rqr<Zoriginal_functionr�r'r*rs�r�zWrapped.__init__cCs|jjSr@)rer.rur'r'r*r.�szWrapped.namecCs|gSr@r'rur'r'r*�get_signature_functions�r�zWrapped.get_signature_functions)rr�r�rsr�r.rfr�r'r'r�r*rc�s
196  
197  rcz*args, /cst�fdd�|�|�D��S)Ncsg|]}t|���qSr')rWr3�rYr'r*r��s��z(_operator_itemgetter.<locals>.<listcomp>r�)rYr)r&r'rgr*�_operator_itemgetter�s�rhcstdddd��fdd��}|S)Nz	string, /Tr�cs*��fdd�}t|��}|r|S|�|�S)Nc3s8��D]}t|�}|dur�|�}t�|j|�VqdSr@)rr�create_simple_objectrE)r)r)r<�stringsr'r*r��s���z?_create_string_input_function.<locals>.wrapper.<locals>.iterater�)rjr)r&r�r�rZ)rjr*r>�s
198  
199  
200  z._create_string_input_function.<locals>.wrapper)r\rXr'rZr*�_create_string_input_function�srkcCs�t|�dkrJd}|\}d}|��D].}|��}t|�dkr!|�Sttt|���}|dur1|�S|s9|tjj7}||7}d}qt	t
201  �|j|�g�S|�S)Nr�r�TF)
rr�rDrrxry�os�path�seprrrirE)Zargs_setr(rir:Zis_firstrHZ
string_valuesrr'r'r*�
_os_path_join�s&
202  ��ro)
203  �getattrrKr�r�r�rxry�staticmethod�classmethodr�)�copy�deepcopycC�tSr@�rr5r'r'r*r?�r?cCrur@rvr5r'r'r*r?rw)�load�loads�
204  namedtuple)�partial�
partialmethod�wraps�proxy�choice�
205  itemgetter�abstractmethodcCrur@rvr5r'r'r*r?rwcCrur@rvr5r'r'r*r? rw)�_alias�runtime_checkable�	dataclass�define)�dirname�abspath�relpathr)r-rs�json�collections�	functools�_weakref�random�operator�abc�typing�dataclasses�attr�attrs�os.pathcr$)Ncs`|D]'}|��dkr)|����dkr)t���d�}t�fdd�|��D��gSq��||�S)N�EnumMeta�enum)r1csi|]
206  }|jt�|�j�qSr')r/�EnumInstancer.)r�r.�r�r'r*�
207  <dictcomp>>s��z:get_metaclass_filters.<locals>.wrapper.<locals>.<dictcomp>)r4r�r rr!r�)r��metaclassesr6�	metaclassrPrZr�r*r>9s��z&get_metaclass_filters.<locals>.wrapperr'rXr'rZr*�get_metaclass_filters8s
208  r�c@s2eZdZdd�Zedd��Zdd�Zd
209  dd	�ZdS)r�cCs"|j|_||_||_|jj|_dSr@)rE�_cls�_namerD�	tree_node)rqr�r.r'r'r*rsGszEnumInstance.__init__cCst||jj�Sr@)rr�rDrur'r'r*r.MszEnumInstance.namecCsf|jj}|�d�r|�d�s|jjdkr+|j��}|r!tt|��S|jj	�
210  d�\}|S|j��\}|S)N�__r��object)
r�r/�
211  startswith�endswithr�rDrxryrE�builtins_moduler_r�r`)rqr&�inferredr�r)r'r'r*r{Qs 
212  zEnumInstance._get_wrapped_valueNccsB�ttt�|j|jj�j|jd��V|���	�D]}|VqdS)N)r.r))
213  r!�dictrrirEr�r/r.r{r|)rqr}r[r'r'r*r|]s�
214  ��zEnumInstance.get_filtersr@)rr�r�rsrr.r{r|r'r'r'r*r�Fs
215  r�cr$)Ncs@|jdkr|��r|��dkrtt�|tjj�h�S�|||�S)Nrnr�)	r)r3r4rrrirlrmrn)rErLrDrZr'r*r>gs
216  �z$tree_name_to_values.<locals>.wrapperr'rXr'rZr*�tree_name_to_valuesfsr�)FFFFFr@)fr�r	rl�inspectr�jedir�jedi.inference.utilsr�jedi.inference.helpersr�jedi.inference.argumentsrrrr	r
217  �jedi.inferencerr�jedi.inference.value.instancer
r�jedi.inference.base_valuerrrrr�jedi.inference.valuerr�jedi.inference.value.klassr�jedi.inference.value.functionrr�jedi.inference.lazy_valuerrr�jedi.inference.namesrr�jedi.inference.filtersrrr r!�jedi.inference.signaturer"r#rr�r?rIr\rcrerjrnror�r�r�r�r�r�r�r�r�r�r�r�rrr"rrr6r8r9r;r=r<rNrMrWrbr`rcrhrkrormr�r�r�r7r�r�r�r'r'r'r*�<module>s;#	
218219  #
220  
221  
222  
223  
224  
225  
226  )
227  

228  
229  
230  :8
231  
232  		
233  	
234  
235  
236  �
��������	����
237  
238  
239  ��J