a
    lct                     @   sZ  d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZmZmZmZmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZmZmZmZmZ ddlmZmZ ddl m!Z! ddl"m#Z# ddlm$Z$ ddl%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3 dZ4dZ5dd Z6dd Z7dddZ8e8dddd d! Z9e8dd"d# Z:e8d$dd%d&Z;e8d'd(d) Z<G d*d+ d+eZ=e8d,dd-d.d/ Z>G d0d1 d1e-Z?e8d2ddd3d4d5 Z@e8d6ddd7d8d9 ZAG d:d; d;eZBe8d2d<d= ZCG d>d? d?eZDG d@dA dAeZEG dBdC dCeZFe8d2ddd3dDdE ZGG dFdG dGe-eZHe8dHddIdJdK ZIdLdM ZJG dNdO dOeZKG dPdQ dQeKZLG dRdS dSe3ZMG dTdU dUeZNdVdW ZOdXdY ZPe8dZd[d\ ZQe8d]d^d_ ZRd`da ZSG dbdc dcee!ZTG ddde dee2ZUG dfdg dge+ZVG dhdi dieZWe8dHdjdk ZXG dldm dmeZYG dndo doee#ZZe8dpddd3dqdr Z[dsdt Z\e8dpddIdudv Z]e;e<e>e@eAe9e:eCeGeIdw
eQeQdxdydz d{dz d|d}eJieOePeXd~deQideRide[ideQiddz ddz ddeSie\ej^j_e\ej^j`e\ej^jae]ddZbdd ZcG dd deZddd ZedS )a  
Implementations of standard library functions, because it's not possible to
understand them with Jedi.

To add a new implementation, create a function and add it to the
``_implemented`` dict at the bottom of this module.

Note that this module exists only to implement very specific functionality in
the standard library. The usual way to understand the standard library is the
compiled module that returns the types for C-builtins.
    N)	Parameter)debug)safe_property)get_str_or_none)iterate_argument_clinic
ParamIssuerepack_with_argument_clinicAbstractArgumentsTreeArgumentsWrapper)analysis)compiled)AnonymousMethodExecutionContextMethodExecutionContext)ContextualizedNode	NO_VALUESValueSetValueWrapperLazyValueWrapper)
ClassValueModuleValue)
ClassMixin)FunctionMixin)iterable)LazyTreeValueLazyKnownValueLazyKnownValues)	ValueNameBaseTreeParamName)AttributeOverwritepublish_methodParserTreeFilter
DictFilter)AbstractSignatureSignatureWrappera  _property = property
_tuple = tuple
from operator import itemgetter as _itemgetter
from collections import OrderedDict

class {typename}(tuple):
    __slots__ = ()

    _fields = {field_names!r}

    def __new__(_cls, {arg_list}):
        'Create new instance of {typename}({arg_list})'
        return _tuple.__new__(_cls, ({arg_list}))

    @classmethod
    def _make(cls, iterable, new=tuple.__new__, len=len):
        'Make a new {typename} object from a sequence or iterable'
        result = new(cls, iterable)
        if len(result) != {num_fields:d}:
            raise TypeError('Expected {num_fields:d} arguments, got %d' % len(result))
        return result

    def _replace(_self, **kwds):
        'Return a new {typename} object replacing specified fields with new values'
        result = _self._make(map(kwds.pop, {field_names!r}, _self))
        if kwds:
            raise ValueError('Got unexpected field names: %r' % list(kwds))
        return result

    def __repr__(self):
        'Return a nicely formatted representation string'
        return self.__class__.__name__ + '({repr_fmt})' % self

    def _asdict(self):
        'Return a new OrderedDict which maps field names to their values.'
        return OrderedDict(zip(self._fields, self))

    def __getnewargs__(self):
        'Return self as a plain tuple.  Used by copy and pickle.'
        return tuple(self)

    # These methods were added by Jedi.
    # __new__ doesn't really work with Jedi. So adding this to nametuples seems
    # like the easiest way.
    def __init__(self, {arg_list}):
        'A helper function for namedtuple.'
        self.__iterable = ({arg_list})

    def __iter__(self):
        for i in self.__iterable:
            yield i

    def __getitem__(self, y):
        return self.__iterable[y]

{field_defs}
zW    {name} = _property(_itemgetter({index:d}), doc='Alias for field number {index:d}')
c                    s    fdd}|S )Nc                    s    fdd}zj j}W n ty.   Y n0 j}|d urL| rLd}n |d urf| rf| }n| S  s| r| S zt	| | }W n t
y   Y n0 | |dS | S )Nc                      s    dS )N	arguments r&   )r%   callbackvaluer&   O/var/www/html/django/DPS/env/lib/python3.9/site-packages/jedi/plugins/stdlib.pycallj   s    z&execute.<locals>.wrapper.<locals>.callbuiltins)r%   r'   )namestring_nameAttributeErrorparent_contextis_builtins_module	is_module
py__name__Zis_bound_methodis_instance_implementedKeyError)r(   r%   r*   obj_namepmodule_namefuncr'   )r%   r(   r)   wrapperi   s&    
zexecute.<locals>.wrapperr&   )r'   r;   r&   r:   r)   executeh   s    r<   c                 C   s<   zt | | \}}W n ty.   t Y S 0 | S d S N)listunpack
IndexErrorr   infer)inference_stater%   indexkey
lazy_valuer&   r&   r)   _follow_param   s
    
rF   Fc                    s    fdd}|S )zL
    Works like Argument Clinic (PEP 436), to validate function params.
    c                    s    fdd}|S )Nc                    s   zt t| j| }W n ty,   t Y S 0 tjd|  dd i }rR|j|d< r^| |d< rl| j|d< rx||d< r||d< |i |}tjd	|dd |S )
Nzbuiltin start %sZMAGENTA)colorcontextr(   rB   r%   r'   zbuiltin end: %s)tupler   rB   r   r   r   ZdbgrH   )r(   r%   r'   argskwargsresult)clinic_stringr9   want_argumentswant_callbackwant_contextwant_inference_state
want_valuer&   r)   r;      s*    



z+argument_clinic.<locals>.f.<locals>.wrapperr&   r9   r;   rM   rN   rO   rP   rQ   rR   r9   r)   f   s    zargument_clinic.<locals>.fr&   )rM   rR   rP   rN   rQ   rO   rV   r&   rT   r)   argument_clinic   s    rW   ziterator[, default], /T)rQ   c                 C   s   ||  d B S )N__next__py__getattribute__execute_with_values)	iteratorsdefaultsrB   r&   r&   r)   builtins_next   s    r^   c                 C   s   |  d S )N__iter__rY   )Ziterators_or_callablesr]   r&   r&   r)   builtins_iter   s    r`   zobject, name[, default], /c                 C   sH   | D ]>}|D ]4}t |}|d u r.td qq||    S qqtS )Nzgetattr called without str)r   r   warningrZ   r   )objectsnamesr]   r(   r,   stringr&   r&   r)   builtins_getattr   s    
re   zobject[, bases, dict], /c                 C   s   |s|rt S |  S d S r=   )r   py__class__)rb   basesZdictsr&   r&   r)   builtins_type   s    rh   c                   @   s2   e Zd ZdZdd Zdd Zdd Zdd	d
ZdS )SuperInstancez-To be used like the object ``super`` returns.c                 C   s   || _ || _d S r=   )rB   	_instance)selfrB   instancer&   r&   r)   __init__   s    zSuperInstance.__init__c                 C   s   | j   S r=   )rj   rf   py__bases__rk   r&   r&   r)   
_get_bases   s    zSuperInstance._get_basesc                 C   s*   |   d   }|s| jS tt|S Nr   )rp   rA   r[   rj   nextiter)rk   Zobjsr&   r&   r)   _get_wrapped_value   s    z SuperInstance._get_wrapped_valueNc                 c   s8   |   D ]*}|  D ]}| D ]
}|V  q$qqd S r=   )rp   rA   r[   get_filters)rk   origin_scopebr(   rV   r&   r&   r)   ru      s    zSuperInstance.get_filters)N)__name__
__module____qualname____doc__rm   rp   rt   ru   r&   r&   r&   r)   ri      s
   ri   z[type[, value]], /)rP   c                 C   sD   d }t |tr|j}nt |tr&|j}|d u r2tS tt|j|hS r=   )
isinstancer   rl   r   r   r   ri   rB   )typesrb   rH   rl   r&   r&   r)   builtins_super   s    

r~   c                       s6   e Zd Z fddZd	ddZeddd Z  ZS )
ReversedObjectc                    s   t  | || _d S r=   )superrm   
_iter_list)rk   Zreversed_objZ	iter_list	__class__r&   r)   rm      s    zReversedObject.__init__Nc                 C   s   | j S r=   )r   )rk   Zcontextualized_noder&   r&   r)   
py__iter__  s    zReversedObject.py__iter__rX   c                 C   s   t dd | jD S )Nc                 s   s   | ]}|  V  qd S r=   rA   .0rE   r&   r&   r)   	<genexpr>	  s   z'ReversedObject._next.<locals>.<genexpr>)r   	from_setsr   rk   r%   r&   r&   r)   _next  s    
zReversedObject._next)N)rx   ry   rz   rm   r   r   r   __classcell__r&   r&   r   r)   r      s   
r   zsequence, /rR   rN   c                 C   sf   t | \}}d }t|tr,t|j|j}t| |}|j	j
d \}tt|tt|gS )NIterator)rr   r?   r|   r   r   rH   datar>   iteraterB   Ztyping_modulerZ   r[   r   r   reversed)	sequencesr(   r%   rD   rE   ZcnZorderedseqr&   r&   r)   builtins_reversed  s    
r   zvalue, type, /)rN   rQ   c              	      s  t  }| D ]}| }z
|j W n& tyF   t ddg}Y  qY n0 t| |D ]}| rt||v  qX|jj	dkr|
  rtdd | D }|tfdd|D  qXt| d \}	}
t|
trX|
j}d| }t|
jd	|| qXq
t fd
d|D S )NTFrI   c                 s   s   | ]}|  V  qd S r=   r   r   r&   r&   r)   r   7  s   z&builtins_isinstance.<locals>.<genexpr>c                 3   s   | ]}| v V  qd S r=   r&   )r   cls)mror&   r)   r   ;         z[TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types, not %s.ztype-error-isinstancec                 3   s   | ]}t  t|V  qd S r=   )r   Zbuiltin_from_namestr)r   rw   )rB   r&   r)   r   E  s   )setrf   rn   r.   r>   	py__mro__is_classaddr,   r-   get_root_contextr0   r   r   r   anyr?   r|   r   r   r   rH   )rb   r}   r%   rB   Zbool_resultsor   Z
cls_or_tupclasses_rE   nodemessager&   )rB   r   r)   builtins_isinstance!  s:    



r   c                   @   s   e Zd Zdd ZdS )StaticMethodObjectc                 C   s   t | jgS r=   )r   _wrapped_valuerk   rl   class_valuer&   r&   r)   	py__get__L  s    zStaticMethodObject.py__get__Nrx   ry   rz   r   r&   r&   r&   r)   r   K  s   r   c                 C   s   t dd | D S )Nc                 s   s   | ]}t |V  qd S r=   )r   r   rV   r&   r&   r)   r   R  r   z(builtins_staticmethod.<locals>.<genexpr>r   	functionsr&   r&   r)   builtins_staticmethodP  s    r   c                       s$   e Zd Z fddZdd Z  ZS )ClassMethodObjectc                    s   t  | || _d S r=   r   rm   	_function)rk   Zclass_method_objfunctionr   r&   r)   rm   V  s    zClassMethodObject.__init__c                    s    t  fddjdD S )Nc                    s   g | ]}t | jqS r&   )ClassMethodGetr   )r   __get__r   rk   r&   r)   
<listcomp>[  s   z/ClassMethodObject.py__get__.<locals>.<listcomp>r   )r   r   rZ   r   r&   r   r)   r   Z  s    
zClassMethodObject.py__get__)rx   ry   rz   rm   r   r   r&   r&   r   r)   r   U  s   r   c                       s,   e Zd Z fddZdd Zdd Z  ZS )r   c                    s   t  | || _|| _d S r=   )r   rm   _classr   )rk   
get_methodklassr   r   r&   r)   rm   b  s    zClassMethodGet.__init__c                    s    fdd j  D S )Nc                    s   g | ]}|  jqS r&   )bindr   )r   sigro   r&   r)   r   h  r   z1ClassMethodGet.get_signatures.<locals>.<listcomp>)r   get_signaturesro   r&   ro   r)   r   g  s    zClassMethodGet.get_signaturesc                 C   s   | j t| j|S r=   )r   r<   ClassMethodArgumentsr   r   r&   r&   r)   
py__call__j  s    zClassMethodGet.py__call__)rx   ry   rz   rm   r   r   r   r&   r&   r   r)   r   a  s   r   c                       s&   e Zd Z fddZdddZ  ZS )r   c                    s   t  | || _d S r=   )r   rm   r   )rk   r   r%   r   r&   r)   rm   o  s    zClassMethodArguments.__init__Nc                 c   s,   d t | jfV  | j|D ]
}|V  qd S r=   )r   r   Z_wrapped_argumentsr?   )rk   r9   valuesr&   r&   r)   r?   s  s    zClassMethodArguments.unpack)N)rx   ry   rz   rm   r?   r   r&   r&   r   r)   r   n  s   r   c                    s   t  fdd|j|dD S )Nc                 3   s"   | ]} D ]}t ||V  q
qd S r=   )r   )r   Zclass_method_objectr   r   r&   r)   r   {  s   z'builtins_classmethod.<locals>.<genexpr>r$   r   r   )r   r(   r%   r&   r   r)   builtins_classmethody  s    
r   c                       sH   e Zd ZdZ fddZdd Zedededd	d
 Z  ZS )PropertyObjectpropertyc                    s   t  | || _d S r=   r   )rk   Zproperty_objr   r   r&   r)   rm     s    zPropertyObject.__init__c                 C   s   |d u rt | gS | j|S r=   )r   r   r[   r   r&   r&   r)   r     s    
zPropertyObject.py__get__deletergettersetterc                 C   s
   t | hS r=   r   r   r&   r&   r)   _return_self  s    zPropertyObject._return_self)	rx   ry   rz   api_typerm   r   r   r   r   r&   r&   r   r)   r     s   r   func, /)rO   c                    s   t  fdd| D S )Nc                 3   s"   | ]} D ]}t ||V  q
qd S r=   )r   )r   Zproperty_valuer   r   r&   r)   r     s   z$builtins_property.<locals>.<genexpr>r   )r   r'   r&   r   r)   builtins_property  s    r   c                 C   s8  | j }d}t||dD ]}t|}|dur|} q4qt||d}|sHtS t|d }t|}	|	durv|	dd }
n2t|tj	rdd |
 D }
d	d |
D }
ntS tj|t|
t|
tt|
d
ddd dddd t|
D d}|j|}t| }t||tj|ddd }tt|||gS )z
    Implementation of the namedtuple function.

    This has to be done by processing the namedtuple class template and
    inferring the result.

    Zjedi_unknown_namedtupler   Nr   , c                 S   s"   g | ]}|  D ]}t|qqS r&   )rA   r   )r   rE   vr&   r&   r)   r     s   z*collections_namedtuple.<locals>.<listcomp>c                 S   s   g | ]}|d ur|qS r=   r&   r   r&   r&   r)   r     r   ' 
c                 s   s    | ]\}}t j||d V  qdS ))rC   r,   N)_NAMEDTUPLE_FIELD_TEMPLATEformat)r   rC   r,   r&   r&   r)   r     s   z)collections_namedtuple.<locals>.<genexpr>)typenamefield_names
num_fieldsarg_listrepr_fmtZ
field_defsT)keepends)Z
code_lines)rB   rF   r   r   r>   replacesplitr|   r   Sequencer   _NAMEDTUPLE_CLASS_TEMPLATEr   rI   lenreprjoin	enumerateZgrammarparserr   Ziter_classdefsr   parsosplit_lines
as_contextr   r   )r(   r%   r'   rB   r,   cxZparam_values_fieldsrd   fieldscodemoduleZgenerated_classr/   r&   r&   r)   collections_namedtuple  sJ    

r   c                       sF   e Zd Zd fdd	Zdd Zdd Zdd	 Zd
d Zdd Z  Z	S )PartialObjectNc                    s   t  | || _|| _d S r=   )r   rm   
_argumentsrj   )rk   Zactual_valuer%   rl   r   r&   r)   rm     s    zPartialObject.__init__c                 C   s8   t |d\}}|d us|d u r0td| j d S | S )N)NNz(Partial should have a proper function %s)rr   r   ra   r   rA   )rk   unpacked_argumentsrD   rE   r&   r&   r)   _get_functions  s
    zPartialObject._get_functionsc                    sz   | j  }| |}|d u r g S d | jd ur2d t |D ]$\}}|d u rV d7  q<| q< fdd| D S )Nr   r   c                    s   g | ]}t | qS r&   )PartialSignature)r   s	arg_countkeysr&   r)   r     r   z0PartialObject.get_signatures.<locals>.<listcomp>)r   r?   r   rj   r   r   r   )rk   r   funcsrD   r   r&   r   r)   r     s    



zPartialObject.get_signaturesc                 C   s2   |  | j }|d u rtS |t| j|| jS r=   )r   r   r?   r   r<   MergedPartialArgumentsrj   )rk   r%   r   r&   r&   r)   r     s    zPartialObject.py__call__c                 C   s4   |  | j }|du rdS |D ]}|   S dS )z
        In CPython partial does not replace the docstring. However we are still
        imitating it here, because we want this docstring to be worth something
        for the user.
        Nr   )r   r   r?   	py__doc__)rk   Z	callablesZ	callable_r&   r&   r)   r     s    zPartialObject.py__doc__c                 C   s
   t | gS r=   r   r   r&   r&   r)   r     s    zPartialObject.py__get__)N)
rx   ry   rz   rm   r   r   r   r   r   r   r&   r&   r   r)   r     s   	r   c                   @   s   e Zd Zdd ZdS )PartialMethodObjectc                 C   s(   |d u rt | gS t t| j| j|gS r=   )r   r   r   r   r   r&   r&   r)   r     s    
zPartialMethodObject.py__get__Nr   r&   r&   r&   r)   r     s   r   c                       s&   e Zd Z fddZdddZ  ZS )r   c                    s   t  | || _|| _d S r=   )r   rm   _skipped_arg_count_skipped_arg_set)rk   Zwrapped_signatureZskipped_arg_countZskipped_arg_setr   r&   r)   rm     s    zPartialSignature.__init__Fc                    s&    j   jd  } fdd|D S )Nc                    s   g | ]}|j  jvr|qS r&   )r-   r   )r   nro   r&   r)   r     r   z4PartialSignature.get_param_names.<locals>.<listcomp>)Z_wrapped_signatureget_param_namesr   )rk   resolve_starsrc   r&   ro   r)   r     s    z PartialSignature.get_param_names)Frx   ry   rz   rm   r   r   r&   r&   r   r)   r     s   r   c                   @   s    e Zd ZdddZdddZdS )r   Nc                 C   s   || _ || _|| _d S r=   )_partial_arguments_call_argumentsrj   )rk   Zpartial_argumentsZcall_argumentsrl   r&   r&   r)   rm   #  s    zMergedPartialArguments.__init__c                 c   s\   | j |}t|d  | jd ur0d t| jfV  |D ]
}|V  q4| j|D ]
}|V  qLd S r=   )r  r?   rr   rj   r   r  )rk   ZfuncdefunpackedZkey_lazy_valuer&   r&   r)   r?   (  s    

zMergedPartialArguments.unpack)N)N)rx   ry   rz   rm   r?   r&   r&   r&   r)   r   "  s   
r   c                    s   t  fdd|  D S )Nc                 3   s   | ]}t | V  qd S r=   )r   r   rl   r$   r&   r)   r   6  s   z$functools_partial.<locals>.<genexpr>r   r(   r%   r'   r&   r$   r)   functools_partial5  s    r  c                    s   t  fdd|  D S )Nc                 3   s   | ]}t | V  qd S r=   )r   r  r$   r&   r)   r   =  s   z*functools_partialmethod.<locals>.<genexpr>r   r  r&   r$   r)   functools_partialmethod<  s    r  zfirst, /c                 C   s   | S r=   r&   )Zfirstsr&   r&   r)   _return_first_paramC  s    r	  r   c                 C   s   t dd | D S )Nc                 s   s$   | ]}|  D ]}| V  qqd S r=   )r   rA   )r   sequencerE   r&   r&   r)   r   J  s   z!_random_choice.<locals>.<genexpr>)r   r   )r   r&   r&   r)   _random_choiceH  s    
r  c                 C   s@   t | j|dD ],}| r,tt|g  S t| g  S qtS rq   )rF   rB   r   r   DataclassWrapperr   )r(   r%   r'   r   r&   r&   r)   
_dataclassQ  s
    r  c                   @   s   e Zd Zdd ZdS )r  c              
   C   s   g }t t|  D ]}t|tr|  }t| dd dD ]j}|j	
 }|jd }|jdkrB|jdkrBt|jdk rd }n
|jd }|t|j|j	|jd |d	 qBqt||gS )
Nc                 S   s   | j S r=   )	start_pos)r,   r&   r&   r)   <lambda>c  r   z1DataclassWrapper.get_signatures.<locals>.<lambda>)rD   r   Z	expr_stmt	annassign      )r/   	tree_nameannotation_nodedefault_node)r   r>   r   r|   r  r   Zget_global_filtersortedr   r  Zget_definitionchildrentyper   appendDataclassParamNamer/   DataclassSignature)rk   param_namesr   filter_r,   dr  defaultr&   r&   r)   r   [  s$    



zDataclassWrapper.get_signaturesN)rx   ry   rz   r   r&   r&   r&   r)   r  Z  s   r  c                       s&   e Zd Z fddZdddZ  ZS )r  c                    s   t  | || _d S r=   )r   rm   _param_names)rk   r(   r  r   r&   r)   rm   u  s    zDataclassSignature.__init__Fc                 C   s   | j S r=   )r   )rk   r   r&   r&   r)   r   y  s    z"DataclassSignature.get_param_names)Fr  r&   r&   r   r)   r  t  s   r  c                       s,   e Zd Z fddZdd Zdd Z  ZS )r  c                    s   t  || || _|| _d S r=   )r   rm   r  r  )rk   r/   r  r  r  r   r&   r)   rm   ~  s    zDataclassParamName.__init__c                 C   s   t jS r=   )r   POSITIONAL_OR_KEYWORDro   r&   r&   r)   get_kind  s    zDataclassParamName.get_kindc                 C   s    | j d u rtS | j| j S d S r=   )r  r   r/   Z
infer_nodero   r&   r&   r)   rA     s    
zDataclassParamName.infer)rx   ry   rz   rm   r"  rA   r   r&   r&   r   r)   r  }  s   r  c                       s,   e Zd Z fddZeddd Z  ZS )ItemGetterCallablec                    s   t  | || _d S r=   )r   rm   _args_value_set)rk   rl   args_value_setr   r&   r)   rm     s    zItemGetterCallable.__init__zitem, /c              	      sn   t }| jD ]^}t| }t|dkr@| |d  d O }q
|tt	| j
j fdd|D gO }q
|S )Nr   r   c                    s    g | ]}t  | d qS r=   )r   get_itemrA   r   item_value_setr&   r)   r     s   z1ItemGetterCallable.py__call__.<locals>.<listcomp>)r   r$  r>   r   r   r&  rA   r   r   ZFakeListr   rB   )rk   r(  Z	value_setZ
args_valueZlazy_valuesr&   r'  r)   r     s    

zItemGetterCallable.py__call__)rx   ry   rz   rm   r   r   r   r&   r&   r   r)   r#    s   r#  c                 C   s   t dd | D S )Nc                 s   s   | ]}t |V  qd S r=   )WrapsCallabler   r9   r&   r&   r)   r     r   z#_functools_wraps.<locals>.<genexpr>r   )r   r&   r&   r)   _functools_wraps  s    r+  c                   @   s   e Zd Zeddd ZdS )r)  r   c                    s   t  fdd|D S )Nc                    s   h | ]}t | jqS r&   )Wrappedr   r*  ro   r&   r)   	<setcomp>  r   z+WrapsCallable.py__call__.<locals>.<setcomp>r   )rk   r   r&   ro   r)   r     s    zWrapsCallable.py__call__N)rx   ry   rz   r   r   r&   r&   r&   r)   r)    s   r)  c                       s0   e Zd Z fddZedd Zdd Z  ZS )r,  c                    s   t  | || _d S r=   )r   rm   _original_function)rk   r9   Zoriginal_functionr   r&   r)   rm     s    zWrapped.__init__c                 C   s   | j jS r=   )r.  r,   ro   r&   r&   r)   r,     s    zWrapped.namec                 C   s   | gS r=   r&   ro   r&   r&   r)   get_signature_functions  s    zWrapped.get_signature_functions)rx   ry   rz   rm   r   r,   r/  r   r&   r&   r   r)   r,    s   
r,  z*args, /c                    s   t  fdd||D S )Nc                    s   g | ]}t | qS r&   )r#  r  r%  r&   r)   r     s   z(_operator_itemgetter.<locals>.<listcomp>r   )r%  r(   r%   r&   r0  r)   _operator_itemgetter  s    r1  c                    s   t dddd fdd}|S )Nz	string, /Tr   c                    s*    fdd}t | }|r |S ||S )Nc                  3   s6   D ],} t | }|d ur |}t| j|V  qd S r=   )r   r   create_simple_objectrB   )r(   r   )r9   stringsr&   r)   r     s
    z?_create_string_input_function.<locals>.wrapper.<locals>.iterater   )r3  r(   r%   r   r   rU   )r3  r)   r;     s
    
z._create_string_input_function.<locals>.wrapper)rW   rS   r&   rU   r)   _create_string_input_function  s    r4  c                 C   s   t | dkrd}| \}d}| D ]T}| }t |dkr> qttt|}|d u rZ q|sj|tjj7 }||7 }d}q"t	t
|j|gS | S )Nr   r   TF)r   r   rA   r   rr   rs   ospathsepr   r   r2  rB   )Zargs_setr'   rd   r
  Zis_firstrE   Zstring_valuesr   r&   r&   r)   _os_path_join  s"    r8  )
getattrr  r   r   r|   rr   rs   staticmethodclassmethodr   )copydeepcopyc                 C   s   t S r=   r   r  r&   r&   r)   r     r   r  c                 C   s   t S r=   r>  r  r&   r&   r)   r    r   )loadloads
namedtuple)partialpartialmethodwrapsproxychoice
itemgetterabstractmethodc                 C   s   t S r=   r>  r  r&   r&   r)   r    r   c                 C   s   t S r=   r>  r  r&   r&   r)   r     r   )_aliasruntime_checkable	dataclass)dirnameabspathrelpathr   )r+   r<  jsoncollections	functools_weakrefrandomoperatorabctypingdataclassesos.pathc                    s    fdd}|S )Nc                    s`   |D ]N}|  dkr|   dkrt  d}t fdd| D g  S q ||S )NEnumMetaenum)r/   c                    s   i | ]}|j t |jqS r&   )r-   EnumInstancer,   )r   r,   r   r&   r)   
<dictcomp>5  s   z:get_metaclass_filters.<locals>.wrapper.<locals>.<dictcomp>)r2   r   r    r   r!   r   )r   Zmetaclassesr3   	metaclassr  rU   r\  r)   r;   0  s    z&get_metaclass_filters.<locals>.wrapperr&   rS   r&   rU   r)   get_metaclass_filters/  s    
r_  c                   @   s2   e Zd Zdd Zedd Zdd Zd
dd	ZdS )r[  c                 C   s"   |j | _ || _|| _| jj| _d S r=   )rB   _cls_namer  Z	tree_node)rk   r   r,   r&   r&   r)   rm   >  s    zEnumInstance.__init__c                 C   s   t | | jjS r=   )r   ra  r  ro   r&   r&   r)   r,   D  s    zEnumInstance.namec                 C   sf   | j j}|dr|ds(| j jdkrV| j  }|rBtt|S | jj	
d\}|S | j \}|S )N__r   object)ra  r-   
startswithendswithr   rA   rr   rs   rB   Zbuiltins_modulerZ   r`  r[   )rk   r   inferredr   r(   r&   r&   r)   rt   H  s     
zEnumInstance._get_wrapped_valueNc                 c   s@   t tt| j| jjj| jdV  |  	 D ]
}|V  q0d S )N)r,   r(   )
r!   dictr   r2  rB   ra  r-   r,   rt   ru   )rk   rv   rV   r&   r&   r)   ru   T  s    
zEnumInstance.get_filters)N)rx   ry   rz   rm   r   r,   rt   ru   r&   r&   r&   r)   r[  =  s
   
r[  c                    s    fdd}|S )Nc                    s@   |j dkr4| r4| dkr4tt| tjjhS  | ||S )Nr7  rX  )	r(   r1   r2   r   r   r2  r5  r6  r7  )rB   rH   r  rU   r&   r)   r;   ^  s
    z$tree_name_to_values.<locals>.wrapperr&   rS   r&   rU   r)   tree_name_to_values]  s    rh  )FFFFF)N)fr{   r   r5  inspectr   Zjedir   Zjedi.inference.utilsr   Zjedi.inference.helpersr   Zjedi.inference.argumentsr   r   r   r	   r
   Zjedi.inferencer   r   Zjedi.inference.value.instancer   r   Zjedi.inference.base_valuer   r   r   r   r   Zjedi.inference.valuer   r   Zjedi.inference.value.klassr   Zjedi.inference.value.functionr   r   Zjedi.inference.lazy_valuer   r   r   Zjedi.inference.namesr   r   Zjedi.inference.filtersr   r   r    r!   Zjedi.inference.signaturer"   r#   r   r   r<   rF   rW   r^   r`   re   rh   ri   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  r#  r+  r)  r,  r1  r4  r8  r6  rL  rM  rN  r4   r_  r[  rh  r&   r&   r&   r)   <module>   s   ;#	   
#







)



:8

		
	


	


A 