
    Mh6v                        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 Z6d Z7	 	 	 dvdZ8 e8dd          d             Z9 e8d          d             Z: e8d          dwd             Z; e8d!          d"             Z< G d# d$e          Z= e8d%d&          d'             Z> G d( d)e-          Z? e8d*dd+          d,             Z@ e8d-dd.          d/             ZA G d0 d1e          ZB e8d*          d2             ZC G d3 d4e          ZD G d5 d6e          ZE G d7 d8e          ZF e8d*dd+          d9             ZG G d: d;e-e          ZH e8d<d=          d>             ZId? ZJ G d@ dAe          ZK G dB dCeK          ZL G dD dEe3          ZM G dF dGe          ZNdH ZOdI ZP e8dJ          dK             ZQ e8dL          dM             ZRdN ZS G dO dPee!          ZT G dQ dRe2          ZU G dS dTe+          ZV G dU dVe          ZW e8d<          dW             ZX G dX dYe          ZY G dZ d[ee#          ZZ e8d\dd+          d]             Z[d^ Z\ e8d\d=          d_             Z]e;e<e>e@eAe9e:eCeGeId`
eQeQdadb dc dddeeJieOePeXdfdgeQidheRidie[idjeQidk dl dmdneSieSeSdoeSeSdo e\ej^        j_                   e\ej^        j`                   e\ej^        ja                  e]dpdqZbdr Zc G ds dte          Zddu ZedS )xa  
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                       fd}|S )Nc                      fd}	  j         j        } j        }||                                rd}n5|)|                                r|                                }n
 |            S                                  s                                 r
 |            S 	 t          |         |         } | |          S # t          $ r Y nw xY w# t          $ r Y nw xY w |            S )Nc                                  S )N	arguments )r)   callbackvalues   S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jedi/plugins/stdlib.pycallz&execute.<locals>.wrapper.<locals>.callj   s    8EY7777    builtins)r)   r+   )namestring_nameparent_contextis_builtins_module	is_module
py__name__is_bound_methodis_instance_implementedKeyErrorAttributeError)r,   r)   r.   obj_namepmodule_namefuncr+   s   ``     r-   wrapperzexecute.<locals>.wrapperi   s<   	8 	8 	8 	8 	8 	8 	8	Gz-H $A}!5!5!7!7}(1;;==llnntvv$$&& %*;*;*=*=  tvvG#K0: tEYFFFF    '  	 	 	D	. tvvs#   C  C 
CC
CCr*   )r+   r@   s   ` r-   executerA   h   s#        > Nr/   c                     	 t          |                                          |         \  }}|                                S # t          $ r
 t          cY S w xY wN)listunpackinfer
IndexErrorr   )inference_stater)   indexkey
lazy_values        r-   _follow_paramrL      sf    "y//112259Z !!!    s   *A   AAFc                 &      fd}|S )zL
    Works like Argument Clinic (PEP 436), to validate function params.
    c                        fd}|S )Nc                 N   	 t          t          | j        |                    }n# t          $ r
 t          cY S w xY wt          j        d| z  d           i }
r
|j        |d<   r| |d<   r
| j        |d<   r||d<   	r||d<    |i |}t          j        d	|d           |S )
Nzbuiltin start %sMAGENTA)colorcontextr,   rH   r)   r+   zbuiltin end: %s)tupler   rH   r   r   r   dbgrR   )r,   r)   r+   argskwargsresultclinic_stringr?   want_argumentswant_callbackwant_contextwant_inference_state
want_values         r-   r@   z+argument_clinic.<locals>.f.<locals>.wrapper   s   !4)9mE E F F ! ! !    ! I(50	BBBBF 6$-$5y! ("'w# B,1,A() 0&/{# .%-z"T4*6**FI'yAAAAMs   #' ;;r*   )r?   r@   rX   rY   rZ   r[   r\   r]   s   ` r-   fzargument_clinic.<locals>.f   sB    	 	 	 	 	 	 	 	 	 	 	. r/   r*   )rX   r]   r[   rY   r\   rZ   r^   s   `````` r-   argument_clinicr_      sA             2 Hr/   ziterator[, default], /T)r\   c                 V    ||                      d                                          z  S )N__next__py__getattribute__execute_with_values)	iteratorsdefaultsrH   s      r-   builtins_nextrg      s)     i22:>>RRTTTTr/   c                 P    |                      d                                          S )N__iter__rb   )iterators_or_callablesrf   s     r-   builtins_iterrk      s$     "44Z@@TTVVVr/   zobject, name[, default], /c                     | D ]E}|D ]@}t          |          }|t          j        d           (|                    |          c c S Ft          S )Nzgetattr called without str)r   r   warningrc   r   )objectsnamesrf   r,   r1   strings         r-   builtins_getattrrq      su      8 8 	8 	8D$T**F~:;;;//7777777	8 r/   zobject[, bases, dict], /c                 @    |s|rt           S |                                 S rC   )r   py__class__)rn   basesdictss      r-   builtins_typerv      s)     % %""$$$r/   c                   ,    e Zd ZdZd Zd Zd ZddZdS )SuperInstancez-To be used like the object ``super`` returns.c                 "    || _         || _        d S rC   )rH   	_instance)selfrH   instances      r-   __init__zSuperInstance.__init__   s    .!r/   c                 X    | j                                                                         S rC   )rz   rs   py__bases__r{   s    r-   
_get_baseszSuperInstance._get_bases   s"    ~))++77999r/   c                     |                                  d                                                                         }|s| j        S t	          t          |                    S Nr   )r   rF   rd   rz   nextiter)r{   objss     r-   _get_wrapped_valuez SuperInstance._get_wrapped_value   sT      #))++??AA 	" >!DJJr/   Nc              #      K   |                                  D ]F}|                                                                D ]}|                                D ]}|V  Gd S rC   )r   rF   rd   get_filters)r{   origin_scopebr,   r^   s        r-   r   zSuperInstance.get_filters   s|      "" 	 	A6688  **,,  AGGGG	 	r/   rC   )__name__
__module____qualname____doc__r}   r   r   r   r*   r/   r-   rx   rx      s[        77" " ": : :          r/   rx   z[type[, value]], /)r[   c                     d }t          |t                    r|j        }nt          |t                    r|j        }|t          S t          t          |j        |          h          S rC   )
isinstancer   r|   r   r   r   rx   rH   )typesrn   rR   r|   s       r-   builtins_superr      si    H':;; $#	G3	4	4 $#]8#;XFFGHHHr/   c                   N     e Zd Z fdZddZ ed          d             Z xZS )ReversedObjectc                 X    t                                          |           || _        d S rC   )superr}   
_iter_list)r{   reversed_obj	iter_list	__class__s      r-   r}   zReversedObject.__init__   s&    &&&#r/   Nc                     | j         S rC   )r   )r{   contextualized_nodes     r-   
py__iter__zReversedObject.py__iter__  s
    r/   ra   c                 H    t          j        d | j        D                       S )Nc              3   >   K   | ]}|                                 V  d S rC   rF   .0rK   s     r-   	<genexpr>z'ReversedObject._next.<locals>.<genexpr>	  s?       "
 "
#-J"
 "
 "
 "
 "
 "
r/   )r   	from_setsr   r{   r)   s     r-   _nextzReversedObject._next  s5    ! "
 "
15"
 "
 "
 
 
 	
r/   rC   )r   r   r   r}   r   r    r   __classcell__r   s   @r-   r   r      sr        $ $ $ $ $    ^J
 
  
 
 
 
 
r/   r   zsequence, /r]   rY   c           
         t          |                                          \  }}d }t          |t                    rt	          |j        |j                  }t          |                     |                    }|j	        j
                            d                                          \  }t          t          |t          t          |                              g          S )NIterator)r   rE   r   r   r   rR   datarD   iteraterH   typing_modulerc   rd   r   r   reversed)	sequencesr,   r)   rJ   rK   cnorderedseqs           r-   builtins_reversedr     s    
 9++--..OC	B*m,, E
 2JODD9$$R(())G  .AA*MMaaccDC^Chw.?.?)@)@AABCCCr/   zvalue, type, /)rY   r\   c                    t                      }| D ]}|                                }	 |j         n## t          $ r t          ddg          }Y  nVw xY wt	          |                                          |D ]+}|                                r|                    |v            /|j        j	        dk    r|
                                                                r_t          j        d |                                D                       }|                    t          fd|D                                  t	          |                                          d         \  }	}
t#          |
t$                    r(|
j        }d|z  }t)          j        |
j        d||           -t          fd	|D                       S )
NTFrS   c              3   >   K   | ]}|                                 V  d S rC   r   r   s     r-   r   z&builtins_isinstance.<locals>.<genexpr>7  sB       - -" $$&&- - - - - -r/   c              3       K   | ]}|v V  	d S rC   r*   )r   clsmros     r-   r   z&builtins_isinstance.<locals>.<genexpr>;  s'      $C$CCSCZ$C$C$C$C$C$Cr/      z[TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types, not %s.ztype-error-isinstancec              3   \   K   | ]&}t          j        t          |                    V  'd S rC   )r   builtin_from_namestr)r   r   rH   s     r-   r   z&builtins_isinstance.<locals>.<genexpr>E  sJ         	"?CFF;;     r/   )setrs   r   r;   rD   	py__mro__is_classaddr1   r2   get_root_contextr4   r   r   r   anyrE   r   r   r   r   rR   )rn   r   r)   rH   bool_resultsor   
cls_or_tupclasses_rK   nodemessager   s      `         @r-   builtins_isinstancer   !  s   55L ] ]mmoo	OOO 	 	 	 e}--LEE	 3==??## 	] 	]J""$$ ]  s!23333,77"3355HHJJ 8 #, - -&0&8&8&:&:- - -     $C$C$C$C7$C$C$C!C!CDDDD $Y%5%5%7%7 8 8 ;:j-88 ]%?D(*45G L!35LdT[\\\%	](          s   3AAc                       e Zd Zd ZdS )StaticMethodObjectc                 ,    t          | j        g          S rC   )r   _wrapped_valuer{   r|   class_values      r-   	py__get__zStaticMethodObject.py__get__L  s    ,-...r/   Nr   r   r   r   r*   r/   r-   r   r   K  s#        / / / / /r/   r   c                 4    t          d | D                       S )Nc              3   4   K   | ]}t          |          V  d S rC   )r   r   r^   s     r-   r   z(builtins_staticmethod.<locals>.<genexpr>R  s+      ==a&q))======r/   r   )	functionss    r-   builtins_staticmethodr   P  s    ==9======r/   c                   $     e Zd Z fdZd Z xZS )ClassMethodObjectc                 X    t                                          |           || _        d S rC   r   r}   	_function)r{   class_method_objfunctionr   s      r-   r}   zClassMethodObject.__init__V  s'    )***!r/   c                 n     t           fd j                            d          D                       S )Nc                 <    g | ]}t          |j                  S r*   )ClassMethodGetr   )r   __get__r   r{   s     r-   
<listcomp>z/ClassMethodObject.py__get__.<locals>.<listcomp>[  s7     
 
 
 7K@@
 
 
r/   r   )r   r   rc   r   s   ` `r-   r   zClassMethodObject.py__get__Z  sR     
 
 
 
 
.AA)LL
 
 
   	r/   )r   r   r   r}   r   r   r   s   @r-   r   r   U  sG        " " " " "      r/   r   c                   *     e Zd Z fdZd Zd Z xZS )r   c                 f    t                                          |           || _        || _        d S rC   )r   r}   _classr   )r{   
get_methodklassr   r   s       r-   r}   zClassMethodGet.__init__b  s-    $$$!r/   c                 N      fd j                                         D             S )Nc                 D    g | ]}|                     j                  S r*   )bindr   )r   sigr{   s     r-   r   z1ClassMethodGet.get_signatures.<locals>.<listcomp>h  s'    TTTS((TTTr/   )r   get_signaturesr   s   `r-   r   zClassMethodGet.get_signaturesg  s+    TTTTDN4Q4Q4S4STTTTr/   c                 \    | j                             t          | j        |                    S rC   )r   rA   ClassMethodArgumentsr   r   s     r-   
py__call__zClassMethodGet.py__call__j  s%    ~%%&:4;	&R&RSSSr/   )r   r   r   r}   r   r   r   r   s   @r-   r   r   a  s`        " " " " "
U U UT T T T T T Tr/   r   c                   &     e Zd Z fdZddZ xZS )r   c                 X    t                                          |           || _        d S rC   )r   r}   r   )r{   r   r)   r   s      r-   r}   zClassMethodArguments.__init__o  s&    ###r/   Nc              #   |   K   d t          | j                  fV  | j                            |          D ]}|V  d S rC   )r   r   _wrapped_argumentsrE   )r{   r?   valuess      r-   rE   zClassMethodArguments.unpacks  sV      N4;//////-44T:: 	 	FLLLL	 	r/   rC   )r   r   r   r}   rE   r   r   s   @r-   r   r   n  sL                   r/   r   c                 b     t           fd|                    |          D                       S )Nc              3   B   K   | ]}D ]}t          ||          V  d S rC   )r   )r   class_method_objectr   r   s      r-   r   z'builtins_classmethod.<locals>.<genexpr>{  sY        !   	-x88      r/   r(   r   r   )r   r,   r)   s   `  r-   builtins_classmethodr   y  sL        #(#3#3i#3#H#H     r/   c                        e Zd ZdZ fdZd Z ed           ed           ed          d                                     Z xZS )PropertyObjectpropertyc                 X    t                                          |           || _        d S rC   r   )r{   property_objr   r   s      r-   r}   zPropertyObject.__init__  s&    &&&!r/   c                 Z    |t          | g          S | j                            |          S rC   )r   r   rd   r   s      r-   r   zPropertyObject.py__get__  s.    TF###~11(;;;r/   deletergettersetterc                 "    t          | h          S rC   r   r   s     r-   _return_selfzPropertyObject._return_self  s     r/   )	r   r   r   api_typer}   r   r    r  r   r   s   @r-   r   r     s        H" " " " "< < <
 ^I^H^H               r/   r   func, /)rZ   c                 J     t           fd |            D                       S )Nc              3   B   K   | ]}D ]}t          ||          V  d S rC   )r   )r   property_valuer   r   s      r-   r   z$builtins_property.<locals>.<genexpr>  sX        !   	~x00      r/   r   )r   r+   s   ` r-   builtins_propertyr    sA        &hjj     r/   c                 (   | j         }d}t          ||d          D ]}t          |          }||} nt          ||d          }|st          S t	          |          d         }t          |          }	|	)|	                    dd                                          }
nLt          |t          j	                  r+d |
                                D             }
d |
D             }
nt          S t                              |t          |
          t          |
          t          t          |
                                        d	d
          dd         d
d                    d t#          |
          D                                 }|j                            |          }t)          |                                          }t-          ||t/          j        |d                                                    }t5          t7          |||          g          S )z
    Implementation of the namedtuple function.

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

    jedi_unknown_namedtupler   Nr   , c                 Z    g | ](}|                                 D ]}t          |          )S r*   )rF   r   )r   rK   vs      r-   r   z*collections_namedtuple.<locals>.<listcomp>  sS     
 
 
%%''
 
  A
 
 
 
r/   c                     g | ]}||S rC   r*   r   s     r-   r   z*collections_namedtuple.<locals>.<listcomp>  s    555q}!}}}r/   ' 
c              3   T   K   | ]#\  }}t                               ||           V  $dS ))rI   r1   N)_NAMEDTUPLE_FIELD_TEMPLATEformat)r   rI   r1   s      r-   r   z)collections_namedtuple.<locals>.<genexpr>  sV       C C!, 8>>UQU>VV C C C C C Cr/   )typenamefield_names
num_fieldsarg_listrepr_fmt
field_defsT)keepends)
code_lines)rH   rL   r   r   rD   replacesplitr   r   Sequencer   _NAMEDTUPLE_CLASS_TEMPLATEr  rS   lenreprjoin	enumerategrammarparser   iter_classdefsr   parsosplit_lines
as_contextr   r   )r,   r)   r+   rH   r1   cxparam_values_fieldsrp   fieldscodemodulegenerated_classr3   s                  r-   collections_namedtupler;    s6    +O %D?Iq99  A=DE 
 !)Q??L <  #GW%%FS))//11	GX.	/	/ 
 
%0022
 
 

 65V555 &,,&MMv;;eFmm$$,,S"55ad;99 C C09&0A0AC C C C C -  D $**400F6002233O $TD999   jll 
 ZQQRSSSr/   c                   >     e Zd Zd fd	Zd Zd Zd Zd Zd Z xZ	S )	PartialObjectNc                 f    t                                          |           || _        || _        d S rC   )r   r}   
_argumentsrz   )r{   actual_valuer)   r|   r   s       r-   r}   zPartialObject.__init__  s-    &&&#!r/   c                     t          |d          \  }}||t          j        d| j                   d S |                                S )N)NNz(Partial should have a proper function %s)r   r   rm   r?  rF   )r{   unpacked_argumentsrJ   rK   s       r-   _get_functionszPartialObject._get_functions  sL    1<@@Z?j0MDdoVVV4!!!r/   c                 (   | j                                         }|                     |          }|g S d| j        dt	                      |D ]"\  }}|dz                      |           #fd|                                D             S )Nr   r   c                 2    g | ]}t          |          S r*   )PartialSignature)r   s	arg_countkeyss     r-   r   z0PartialObject.get_signatures.<locals>.<listcomp>  s&    UUU It44UUUr/   )r?  rE   rC  rz   r   r   r   )r{   rB  funcsrJ   r   rH  rI  s        @@r-   r   zPartialObject.get_signatures  s    !_3355##$677=I	>%Iuu( 	 	FC{Q		UUUUUe>R>R>T>TUUUUr/   c                     |                      | j                                                  }|t          S |                    t          | j        || j                            S rC   )rC  r?  rE   r   rA   MergedPartialArgumentsrz   )r{   r)   rJ  s      r-   r   zPartialObject.py__call__  sW    ##DO$:$:$<$<===}}"4?It~NN
 
 	
r/   c                     |                      | j                                                  }|dS |D ]}|                                c 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  )rC  r?  rE   	py__doc__)r{   	callables	callable_s      r-   rN  zPartialObject.py__doc__  s\     ''(>(>(@(@AA	2" 	) 	)I&&(((((rr/   c                 "    t          | g          S rC   r   r   s      r-   r   zPartialObject.py__get__  s    r/   rC   )
r   r   r   r}   rC  r   r   rN  r   r   r   s   @r-   r=  r=    s        " " " " " "
" " "V V V"
 
 
               r/   r=  c                       e Zd Zd ZdS )PartialMethodObjectc                 x    |t          | g          S t          t          | j        | j        |          g          S rC   )r   r=  r   r?  r   s      r-   r   zPartialMethodObject.py__get__  s:    TF###t':DOXVVWXXXr/   Nr   r*   r/   r-   rS  rS    s(        Y Y Y Y Yr/   rS  c                   &     e Zd Z fdZddZ xZS )rF  c                 f    t                                          |           || _        || _        d S rC   )r   r}   _skipped_arg_count_skipped_arg_set)r{   wrapped_signatureskipped_arg_countskipped_arg_setr   s       r-   r}   zPartialSignature.__init__  s2    *+++"3 /r/   Fc                 l      j                                          j        d          } fd|D             S )Nc                 0    g | ]}|j         j        v|S r*   )r2   rX  )r   nr{   s     r-   r   z4PartialSignature.get_param_names.<locals>.<listcomp>  s(    OOOaAM9N$N$N$N$N$Nr/   )_wrapped_signatureget_param_namesrW  )r{   resolve_starsro   s   `  r-   r`  z PartialSignature.get_param_names  s?    '7799$:Q:R:RSOOOO5OOOOr/   Fr   r   r   r}   r`  r   r   s   @r-   rF  rF    sT        0 0 0 0 0
P P P P P P P Pr/   rF  c                       e Zd ZddZddZdS )rL  Nc                 0    || _         || _        || _        d S rC   )_partial_arguments_call_argumentsrz   )r{   partial_argumentscall_argumentsr|   s       r-   r}   zMergedPartialArguments.__init__#  s    "3-!r/   c              #      K   | j                             |          }t          |d            | j        d t	          | j                  fV  |D ]}|V  | j                            |          D ]}|V  d S rC   )rf  rE   r   rz   r   rg  )r{   funcdefunpackedkey_lazy_values       r-   rE   zMergedPartialArguments.unpack(  s      *11':: 	Xt>%t~666666& 	! 	!N     "299'BB 	! 	!N     	! 	!r/   rC   )r   r   r   r}   rE   r*   r/   r-   rL  rL  "  s<        " " " "

! 
! 
! 
! 
! 
!r/   rL  c                 `    t          fd|                               D                       S )Nc              3   8   K   | ]}t          |          V  d S rC   )r=  r   r|   r)   s     r-   r   z$functools_partial.<locals>.<genexpr>6  sA         	h	**     r/   r   r,   r)   r+   s    ` r-   functools_partialrr  5  I        ((33     r/   c                 `    t          fd|                               D                       S )Nc              3   8   K   | ]}t          |          V  d S rC   )rS  rp  s     r-   r   z*functools_partialmethod.<locals>.<genexpr>=  sA         	Hi00     r/   r   rq  s    ` r-   functools_partialmethodrv  <  rs  r/   zfirst, /c                     | S rC   r*   )firstss    r-   _return_first_paramry  C  s    Mr/   r   c                 >    t          j        d | D                       S )Nc              3   l   K   | ]/}|                                 D ]}|                                V  0d S rC   )r   rF   )r   sequencerK   s      r-   r   z!_random_choice.<locals>.<genexpr>J  se        "--//   	      r/   )r   r   )r   s    r-   _random_choicer}  H  s3      !     r/   c                     t          | j        |d          D ]F}|                                rt          t	          |          g          c S t          | g          c S t
          S r   )rL   rH   r   r   DataclassWrapperr   )r,   r)   r+   r3  s       r-   
_dataclassr  Q  sl    50)Q?? % %::<< 	%-a00122222UG$$$$$r/   c                       e Zd Zd ZdS )r  c           
         g }t          t          |                                                     D ]}t          |t                    r|                                                                }t          |                                d           D ]}|j	        
                                }|j        d         }|j        dk    rn|j        dk    rct          |j                  dk     rd }n|j        d         }|                    t          |j        |j	        |j        d         |                     t#          ||          gS )	Nc                     | j         S rC   )	start_pos)r1   s    r-   <lambda>z1DataclassWrapper.get_signatures.<locals>.<lambda>c  s    dn r/   )rJ   r   	expr_stmt	annassign      )r3   	tree_nameannotation_nodedefault_node)r   rD   r   r   r  r2  get_global_filtersortedr   r  get_definitionchildrentyper)  appendDataclassParamNamer3   DataclassSignature)r{   param_namesr   filter_r1   dr  defaults           r-   r   zDataclassWrapper.get_signatures[  sE   D!1!12233 	 	C#/00 ..**<<>> #7>>#3#39T9TUUU  D5577A !
1Iv,,;1N1Ny122Q66&*GG&/&8&;G#**+=+.+=&*n,5,>q,A)0	, , ,    #34455r/   N)r   r   r   r   r*   r/   r-   r  r  Z  s#        6 6 6 6 6r/   r  c                   &     e Zd Z fdZddZ xZS )r  c                 X    t                                          |           || _        d S rC   )r   r}   _param_names)r{   r,   r  r   s      r-   r}   zDataclassSignature.__init__u  s)    'r/   Fc                     | j         S rC   )r  )r{   ra  s     r-   r`  z"DataclassSignature.get_param_namesy  s      r/   rb  rc  r   s   @r-   r  r  t  sL        ( ( ( ( (! ! ! ! ! ! ! !r/   r  c                   *     e Zd Z fdZd Zd Z xZS )r  c                 h    t                                          ||           || _        || _        d S rC   )r   r}   r  r  )r{   r3   r  r  r  r   s        r-   r}   zDataclassParamName.__init__~  s3    333.(r/   c                     t           j        S rC   )r   POSITIONAL_OR_KEYWORDr   s    r-   get_kindzDataclassParamName.get_kind  s    ..r/   c                 \    | j         t          S | j                            | j                   S rC   )r  r   r3   
infer_noder   s    r-   rF   zDataclassParamName.infer  s+    '&11$2FGGGr/   )r   r   r   r}   r  rF   r   r   s   @r-   r  r  }  s]        ) ) ) ) )
/ / /H H H H H H Hr/   r  c                   F     e Zd Z fdZ ed          d             Z xZS )ItemGetterCallablec                 X    t                                          |           || _        d S rC   )r   r}   _args_value_set)r{   r|   args_value_setr   s      r-   r}   zItemGetterCallable.__init__  s)    """-r/   zitem, /c           	      n   t           }| j        D ]}t          |                                          }t	          |          dk    r2|                    |d                                         d           z  }h|t          t          j	        | j
        j        fd|D                       g          z  }|S )Nr   r   c                 z    g | ]7}t                              |                                d                     8S rC   )r   get_itemrF   )r   rK   item_value_sets     r-   r   z1ItemGetterCallable.py__call__.<locals>.<listcomp>  sN       & ((?(?
@P@P@R@RTX(Y(YZZ  r/   )r   r  rD   r   r)  r  rF   r   r   FakeListr   rH   )r{   r  	value_set
args_valuelazy_valuess    `   r-   r   zItemGetterCallable.py__call__  s    	. 	 	Jz446677K;1$$^44[^5I5I5K5KTRRR		Xx'8'7   *5  ( ( '   		 r/   )r   r   r   r}   r	   r   r   r   s   @r-   r  r    s_        . . . . . ! ++  ,+    r/   r  c                 4    t          d | D                       S )Nc              3   4   K   | ]}t          |          V  d S rC   )WrapsCallable)r   r?   s     r-   r   z#_functools_wraps.<locals>.<genexpr>  s*      ::DM$''::::::r/   r   )rJ  s    r-   _functools_wrapsr    s    ::E::::::r/   c                   6    e Zd Z ed          d             ZdS )r  r
  c                 :     t           fd|D                       S )Nc                 :    h | ]}t          |j                  S r*   )Wrappedr   )r   r?   r{   s     r-   	<setcomp>z+WrapsCallable.py__call__.<locals>.<setcomp>  s&    NNNt':;;NNNr/   r   )r{   rJ  s   ` r-   r   zWrapsCallable.py__call__  s&    NNNNNNNOOOr/   N)r   r   r   r	   r   r*   r/   r-   r  r    s@         ! ++P P ,+P P Pr/   r  c                   :     e Zd Z fdZed             Zd Z xZS )r  c                 X    t                                          |           || _        d S rC   )r   r}   _original_function)r{   r?   original_functionr   s      r-   r}   zWrapped.__init__  s)    "3r/   c                     | j         j        S rC   )r  r1   r   s    r-   r1   zWrapped.name  s    &++r/   c                     | gS rC   r*   r   s    r-   get_signature_functionszWrapped.get_signature_functions  s	    vr/   )r   r   r   r}   r   r1   r  r   r   s   @r-   r  r    sb        4 4 4 4 4 , , X,      r/   r  z*args, /c                 `     t           fd|                    |          D                       S )Nc                 0    g | ]}t          |          S r*   )r  )r   r|   r  s     r-   r   z(_operator_itemgetter.<locals>.<listcomp>  s3        	8^44  r/   r   )r  r,   r)   s   `  r-   _operator_itemgetterr    sI        ((33     r/   c                 B     t          ddd           fd            }|S )Nz	string, /Tr   c                 r      fd}t           |                      }|r|S |                    |          S )Nc               3      K   D ]:} t          |           }|' |          }t          j        | j        |          V  ;d S rC   )r   r   create_simple_objectrH   )r,   rG  r?   stringss     r-   r   z?_create_string_input_function.<locals>.wrapper.<locals>.iterate  s`        R R#E**=QA"78MqQQQQQ	R Rr/   r   )r  r,   r)   r   r   r?   s   `    r-   r@   z._create_string_input_function.<locals>.wrapper  s^    	R 	R 	R 	R 	R 	R ''))$$ 	M	***r/   )r_   r?   r@   s   ` r-   _create_string_input_functionr    s>    [T$GGG
+ 
+ 
+ 
+ HG
+ Nr/   c                    t          |           dk    rd}| \  }d}|                                D ]u}|                                }t          |          dk    r nst          t	          t          |                              }| nF|s|t          j        j        z  }||z  }d}vt          t          j        |j        |          g          S  |            S )Nr   r  TF)r)  r   rF   r   r   r   ospathsepr   r   r  rH   )args_setr+   rp   r|  is_firstrK   string_valuesrG  s           r-   _os_path_joinr    s    
8}}	"--// 	_ 	_J&,,..M=!!Q&&T-%8%8 9 9::Ay &"'+%aKFHHX:8;SU[\\]^^^8::r/   )
getattrr  r   r   r   r   r   staticmethodclassmethodr   )copydeepcopyc                     t           S rC   r   rq  s      r-   r  r     s    9 r/   c                     t           S rC   r  rq  s      r-   r  r    s    I r/   )loadloads
namedtuple)partialpartialmethodwrapsproxychoice
itemgetterabstractmethodc                     t           S rC   r  rq  s      r-   r  r    s    Y r/   c                     t           S rC   r  rq  s      r-   r  r     s    	 r/   )_aliasruntime_checkable	dataclass)definefrozen)dirnameabspathrelpathr+  )r0   r  jsoncollections	functools_weakrefrandomoperatorabctypingdataclassesattrattrsos.pathc                       fd}|S )Nc                 R    |D ]}|                                 dk    r||                                                                 dk    rRt                                                     }t	           fd|                                D                       gc S   ||          S )NEnumMetaenum)r3   c                 F    i | ]}|j         t          |          j        S r*   )r2   EnumInstancer1   )r   r1   r   s     r-   
<dictcomp>z:get_metaclass_filters.<locals>.wrapper.<locals>.<dictcomp>@  s;     $ $ $ $l3&=&=&B$ $ $r/   )r6   r   r!   r2  r"   r   )r   metaclassesr8   	metaclassr  r?   s   `    r-   r@   z&get_metaclass_filters.<locals>.wrapper;  s    $ 	 	I##%%33!2244??AAVKK*#..:J:JKKK" $ $ $ $ ' 0 0$ $ $       tCk222r/   r*   r  s   ` r-   get_metaclass_filtersr  :  s#    	3 	3 	3 	3 	3 Nr/   c                   8    e Zd Zd Zed             Zd ZddZdS )r   c                 \    |j         | _         || _        || _        | j        j        | _        d S rC   )rH   _cls_namer  	tree_node)r{   r   r1   s      r-   r}   zEnumInstance.__init__I  s+    "2	
-r/   c                 6    t          | | j        j                  S rC   )r   r  r  r   s    r-   r1   zEnumInstance.nameO  s    tz3444r/   c                 |   | j         j        }|                    d          r|                    d          s| j         j        dk    rZ| j                                         }|rt          t          |                    S | j        j	        
                    d          \  }|S | j                                        \  }|S )N__r   object)r  r2   
startswithendswithr	  rF   r   r   rH   builtins_modulerc   r  rd   )r{   r^  inferredr   r,   s        r-   r   zEnumInstance._get_wrapped_valueS  s    J"<< 	!**T"2"2 	dj6IZ6W6Wz''))H ,DNN+++%5HHRRBAH..00r/   Nc              #      K   t          t          t          j        | j        | j        j                  j        | j                            V  |                                 	                                D ]}|V  d S )N)r1   r,   )
r"   dictr   r  rH   r  r2   r1   r   r   )r{   r   r^   s      r-   r   zEnumInstance.get_filters_  s      .t/CTZE[\\a*
 
 
   	 	 	 ((**6688 	 	AGGGG	 	r/   rC   )r   r   r   r}   r   r1   r   r   r*   r/   r-   r   r   H  sa        . . . 5 5 ]5
 
 
     r/   r   c                       fd}|S )Nc                     |j         dk    r^|                                rJ|                                dk    r2t          t	          j        | t          j        j                  h          S  | ||          S )Nr  r  )	r,   r5   r6   r   r   r  r  r  r  )rH   rR   r  r?   s      r-   r@   z$tree_name_to_values.<locals>.wrapperi  sy    ?e##(9(9(;(;#@R@R@T@TXa@a@a-orw{KK    tOWi888r/   r*   r  s   ` r-   tree_name_to_valuesr  h  s#    9 9 9 9 9 Nr/   )FFFFFrC   )fr   r0  r  inspectr   jedir   jedi.inference.utilsr   jedi.inference.helpersr   jedi.inference.argumentsr   r   r	   r
   r   jedi.inferencer   r   jedi.inference.value.instancer   r   jedi.inference.base_valuer   r   r   r   r   jedi.inference.valuer   r   jedi.inference.value.klassr   jedi.inference.value.functionr   r   jedi.inference.lazy_valuer   r   r   jedi.inference.namesr   r   jedi.inference.filtersr   r    r!   r"   jedi.inference.signaturer#   r$   r(  r  rA   rL   r_   rg   rk   rq   rv   rx   r   r   r   r   r   r   r   r   r   r   r   r  r;  r=  rS  rF  rL  rr  rv  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r9   r  r   r  r*   r/   r-   <module>r&     s
  
 
  				             . . . . . . 2 2 2 2 2 2I I I I I I I I I I I I I I # # # # # # # # # # # #< < < < < < < <8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 7 7 7 7 7 7 ) ) ) ) ) )          = = = = = = = =! ! ! ! ! ! ! ! ! ! ! ! H H H H H H H H9 v 
     F" " " CH?D"'       F )EEEU U FEU )**W W +*W
 -..
 
 
 /.
 +,,% % -,%    $   0 %D999I I :9I
 
 
 
 
' 
 
 
 4EEED D FED$ !$TRRR& & SR&R/ / / / / / / /
 > >  >	 	 	 	 	 	 	 	
T 
T 
T 
T 
T\ 
T 
T 
T    /    4EEE  FE         '      & $///  0/7T 7T 7Tt5  5  5  5  5 L 5  5  5 pY Y Y Y Y- Y Y YP P P P P' P P P! ! ! ! !. ! ! !&            6 6 6 6 6|Z 6 6 64! ! ! ! !* ! ! !H H H H H* H H H        0 ; ; ;P P P P PL P P P
 
 
 
 
lM 
 
 
 TBBB  CB    4000  10. $%)-+%  $' 
 =<== 
 	, %0!  	$ 	. 	* 	- ?> JI  	Z  
  
 10AA00AA00AA	 GI IX      #   @    r/   