
V]c           @   sR  d  Z  d d l Z d d l 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 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 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. d d l/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 d d l4 m5 Z5 m6 Z6 d Z7 d Z8 d   Z9 d   Z: e; e; e; e; e; d  Z< e< d d e= d e= d    Z> e< d d e= d     Z? e< d  d!    Z@ e< d"  d d#   ZB e< d$  d%    ZC d& e f d'     YZD e< d( d) e= d*    ZE d+ e0 f d,     YZF e< d- d e= d e= d.    ZG e< d d e= d e= d/    ZH d0 e0 e f d1     YZI e< d-  d2    ZJ d3 e0 e f d4     YZK d5 e0 e f d6     YZL d7 e f d8     YZM e< d- d e= d e= d9    ZN d:   ZO d; eP f d<     YZQ d= e6 f d>     YZR d? e f d@     YZS dA   ZT e< dB  dC    ZU e< dD  dE    ZV dF   ZW dG e e" f dH     YZX dI e5 f dJ     YZY dK e, f dL     YZZ dM e f dN     YZ[ e< dO  dP    Z\ dQ e f dR     YZ] dS e e$ f dT     YZ^ e< dU d e= d e= dV    Z_ dW   Z` e< dU dX e= dY    Za i i	 eB dZ 6eC d[ 6eE d\ 6eG d] 6eH d^ 6e? d_ 6e@ d` 6eJ da 6eN db 6dc 6i eU dd 6eU de 6dd 6i df   dg 6dh   di 6dj 6i eO dk 6dl 6i eT dm 6e\ dn 6do 6i eU dp 6dq 6i eV dr 6ds 6i e_ dt 6du 6i eU dv 6dw 6i dx   dy 6dz 6i eW d{ 6d| 6i e` e jb jc  d} 6e` e jb jd  d~ 6e` e jb je  d 6ea d 6d 6Zf d   Zg d e f d     YZh d   Zi d S(   s  
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.
iN(   t   force_unicodet	   Parameter(   t   debug(   t   safe_property(   t   get_str_or_none(   t   ValuesArgumentst   repack_with_argument_clinict   AbstractArgumentst   TreeArgumentsWrapper(   t   analysis(   t   compiled(   t   BoundMethodt   InstanceArguments(   t   ContextualizedNodet   NO_CONTEXTSt
   ContextSett   ContextWrappert   LazyContextWrapper(   t   ClassContextt   ModuleContextt   FunctionExecutionContext(   t
   ClassMixin(   t   FunctionMixin(   t   iterable(   t   LazyTreeContextt   LazyKnownContextt   LazyKnownContexts(   t   ContextNamet   BaseTreeParamName(   t	   is_string(   t   AttributeOverwritet   publish_methodt   ParserTreeFiltert
   DictFilter(   t   AbstractSignaturet   SignatureWrappers5  _property = property
_tuple = tuple
from operator import itemgetter as _itemgetter
from collections import OrderedDict

class {typename}(tuple):
    '{typename}({arg_list})'

    __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__(_cls, {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}
sW       {name} = _property(_itemgetter({index:d}), doc='Alias for field number {index:d}')
c            s     f d   } | S(   Nc            sp      f d   } y  j  j } Wn t k
 r8 n1X j  j j k rW d } n7  j d  k	 r  j j   r  j j   } n |   St	  t
  r-| d k r& j   d k r  j j   d k r#t  d   d | Sq& j   d
 k r& j j   d k r#t  j g  Sq&n  |   Sy t | | } Wn t k
 rRn X|  d   d | S|   S(   Nc              s     d   S(   Nt	   arguments(    (    (   R$   t   callbackt   context(    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   callm   s    t   builtinst   __get__t   propertyR$   R%   t   deletert   gettert   setter(   R+   R,   R-   (   t   namet   string_namet   AttributeErrort   parent_contextt	   evaluatort   builtins_modulet   Nonet	   is_modulet
   py__name__t
   isinstanceR   t   class_contextt   builtins_propertyR   t   instancet   _implementedt   KeyError(   R&   R$   R'   t   obj_namet   module_namet   func(   R%   (   R$   R&   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   wrapperl   s8    	
(    (   R%   R@   (    (   R%   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   executek   s    (c         C   sC   y  t  | j    | \ } } Wn t k
 r4 t SX| j   Sd  S(   N(   t   listt   unpackt
   IndexErrorR   t   infer(   R2   R$   t   indext   keyt   lazy_context(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _follow_param   s
     c            s"          f d   } | S(   sL   
    Works like Argument Clinic (PEP 436), to validate function params.
    c            s:   t   d t d t        f d    } | S(   Nt   keep_arguments_paramt   keep_callback_paramc            s   | j  d  } | j  d  } | s+ t  t j d |  d d t }  r^ | j | d <n   rq |  | d <n   r |  j | d <n   r | | d <n   r | | d <n    | |   } t j d	 | d d | S(
   NR$   R%   s   builtin start %st   colort   MAGENTAR&   t   objR2   s   builtin end: %s(   t   popt   AssertionErrorR   t   dbgR   R&   R2   (   RN   t   argst   kwargsR$   R%   t   result(   R?   t   want_argumentst   want_callbackt   want_contextt   want_evaluatort   want_obj(    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR@      s$    (   R   t   True(   R?   R@   (   t   stringRU   RV   RW   RX   RY   (   R?   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   f   s    '(    (   R[   RY   RW   RU   RX   RV   R\   (    (   R[   RU   RV   RW   RX   RY   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   argument_clinic   s    s   obj, type, /RY   RU   c         C   sr   | j  j j   } t | d  \ } } | d  k	 s? | d  k rS t j d |  t S| j   j	 d t
 |  g   S(   Ns'   property expected a first param, not %sR$   (   NN(   R:   t   var_argsRC   t   nextR4   R   t   warningR   RE   t
   py__call__R   (   t   objectst   typesRN   R$   t   property_argsRG   RH   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR9      s    s   iterator[, default], /RX   c         C   s;   | j  j j d k r d } n d } | |  j |  j   BS(   Ni   R_   t   __next__(   t   environmentt   version_infot   majort   py__getattribute__t   execute_evaluated(   t	   iteratorst   defaultsR2   R.   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_next   s    	c         C   s   |  j  d  j   S(   Nt   __iter__(   Ri   Rj   (   t   iterators_or_callablesRl   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_iter   s    s   object, name[, default], /c         C   sd   x] |  D]U } xL | D]D } t  |  } | d  k rE t j d  q q | j t |   Sq Wq Wt S(   Ns   getattr called without str(   R   R4   R   R`   Ri   R    R   (   Rb   t   namesRl   RN   R.   R[   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_getattr   s    s   object[, bases, dict], /c         C   s   | s | r t  S|  j   Sd  S(   N(   R   t   py__class__(   Rb   t   basest   dicts(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_type   s    t   SuperInstancec           B   s;   e  Z d  Z d   Z d   Z d   Z e d d d  Z RS(   s-   To be used like the object ``super`` returns.c         C   s   | |  _  | |  _ d  S(   N(   R2   t	   _instance(   t   selfR2   R:   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   __init__   s    	c         C   s   |  j  j   j   S(   N(   Rx   Rs   t   py__bases__(   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt
   _get_bases   s    c         C   s9   |  j    d j   j   } | s) |  j St t |   S(   Ni    (   R|   RE   Rj   Rx   R_   t   iter(   Ry   t   objs(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _get_wrapped_context   s    c         c   sT   xM |  j    D]? } x6 | j   j   D]" } x | j   D] } | Vq9 Wq& Wq Wd  S(   N(   R|   RE   Rj   t   get_filters(   Ry   t   search_globalt   until_positiont   origin_scopet   bRN   R\   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s    N(	   t   __name__t
   __module__t   __doc__Rz   R|   R   t   FalseR4   R   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRw      s
   			s   [type[, obj]], /RW   c         C   sM   t  | t  rI t  | j t  rI | j j } t t | j |  h  Sn  t S(   N(	   R7   R   R^   R   R:   R   Rw   R2   R   (   Rc   Rb   R&   R:   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_super  s
    t   ReversedObjectc           B   sV   e  Z d    Z e d  d	 d   Z e d d d e d d d d     Z RS(
   c         C   s#   t  t |   j |  | |  _ d  S(   N(   t   superR   Rz   t
   _iter_list(   Ry   t   reversed_objt	   iter_list(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz     s    Rn   c         C   s   |  j  S(   N(   R   (   Ry   t   contextualized_node(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt
   py__iter__  s    R_   t   python_version_matchi   Re   i   c         C   s   t  j d   |  j D  S(   Nc         s   s   |  ] } | j    Vq d  S(   N(   RE   (   t   .0RH   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>'  s    (   R   t	   from_setsR   (   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt
   py__next__#  s    N(   R   R   Rz   R   R4   R   R   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s
   		s   sequence, /c         C   s   t  | j    \ } } d  } t | t  rE t | j | j  } n  t |  j	 |   } | j
 j j d  j   \ } t t | t t |    g  S(   Nt   Iterator(   R_   RC   R4   R7   R   R   R&   t   dataRB   t   iterateR2   t   typing_moduleRi   Rj   R   R   t   reversed(   t	   sequencesRN   R$   RG   RH   t   cnt   orderedt   seq(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_reversed+  s    c            s}  t    } xW|  D]O} | j   } y | j Wn$ t k
 rS t  t t g  } Pn Xt | j     x | D] } | j   r | j	 |  k  qm | j
 j d k r| j     j k rt j d   | j   D  } | j	 t  f d   | D   qm t | j    d \ }	 }
 t |
 t  rm |
 j } d | } t j	 |
 j d | |  qm qm Wq Wt   f d   | D  S(   Nt   tuplec         s   s   |  ] } | j    Vq d  S(   N(   RE   (   R   RH   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>V  s   c         3   s   |  ] } |   k Vq d  S(   N(    (   R   t   cls(   t   mro(    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>Y  s    i   s[   TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types, not %s.s   type-error-isinstancec         3   s-   |  ]# } t  j   t t |    Vq d  S(   N(   R
   t   builtin_from_nameR    t   str(   R   R   (   R2   (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>d  s   (   t   setRs   R{   R0   RZ   R   RB   t	   py__mro__t   is_classt   addR.   R/   t   get_root_contextR3   R   R   R   t   anyRC   R7   R   R   R	   R&   (   Rb   Rc   R$   R2   t   bool_resultst   oR   t
   cls_or_tupt   classest   _RH   t   nodet   message(    (   R2   R   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_isinstance?  s6    	&	$t   StaticMethodObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   |  j  S(   N(   t   _wrapped_context(   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt
   get_objectj  s    c         C   s   t  |  j g  S(   N(   R   R   (   Ry   R:   t   klass(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt	   py__get__m  s    (   R   R   R   R   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR   i  s   	c         C   s   t  d   |  D  S(   Nc         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R\   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>s  s    (   R   (   t	   functions(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_staticmethodq  s    t   ClassMethodObjectc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s#   t  t |   j |  | |  _ d  S(   N(   R   R   Rz   t	   _function(   Ry   t   class_method_objt   function(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz   w  s    c         C   s   |  j  S(   N(   R   (   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR   {  s    c         C   s8   t  g  |  j j d  D] } t | | |  j  ^ q  S(   NR)   (   R   R   Ri   t   ClassMethodGetR   (   Ry   RN   R8   R)   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR   ~  s    (   R   R   Rz   R   R   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR   v  s   		R   c           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s,   t  t |   j |  | |  _ | |  _ d  S(   N(   R   R   Rz   t   _classR   (   Ry   t
   get_methodR   R   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz     s    	c         C   s   |  j  j   S(   N(   R   t   get_signatures(   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s    c         C   s   |  j  S(   N(   R   (   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s    c         C   s   |  j  j t |  j |   S(   N(   R   RA   t   ClassMethodArgumentsR   (   Ry   R$   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRa     s    (   R   R   Rz   R   R   Ra   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s   			R   c           B   s   e  Z d    Z d d  Z RS(   c         C   s#   t  t |   j |  | |  _ d  S(   N(   R   R   Rz   R   (   Ry   R   R$   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz     s    c         c   s:   d  t |  j  f Vx |  j j |  D] } | Vq' Wd  S(   N(   R4   R   R   t   _wrapped_argumentsRC   (   Ry   R?   t   values(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRC     s    N(   R   R   Rz   R4   RC   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s   	c            s&   t    f d   | j d |  D  S(   Nc         3   s+   |  ]! }   D] } t  | |  Vq q d  S(   N(   R   (   R   t   class_method_objectR   (   R   (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>  s   R$   (   R   Ra   (   R   RN   R$   (    (   R   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   builtins_classmethod  s    c         C   s"  |  j  } d } xB t | | d  D]. } t |  } | d k	 r" t |  } Pq" q" Wt | | d  } | sp t St |  d } t |  }	 |	 d k	 r t |	  j d d  j   }
 n| t	 | t
 j  r1g  | j   D]+ } | j   D] } t t |   ^ q q }
 g  |
 D] } | d k	 r| ^ q}
 n t St j d | d t |
  d t |
  d	 t t |
   j d
 d  j d d  d d !d d d d j d   t |
  D   } | j j |  } t | j    } t | | d d d d d t j | d t } t t | | |  g  S(   s   
    Implementation of the namedtuple function.

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

    u   jedi_unknown_namedtuplei    i   t   ,t    t   typenamet   field_namest
   num_fieldst   arg_lists   u't    t   'it   repr_fmtt
   field_defss   
c         s   s-   |  ]# \ } } t  j d  | d |  Vq d S(   RF   R.   N(   t   _NAMEDTUPLE_FIELD_TEMPLATEt   format(   R   RF   R.   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>  s   t   file_iot   string_namest
   code_linest   keependsN(   R2   RI   R   R4   R    R   RB   t   replacet   splitR7   R   t   SequenceR   RE   t   _NAMEDTUPLE_CLASS_TEMPLATER   R   t   lent   reprt   joint	   enumeratet   grammart   parseR_   t   iter_classdefsR   t   parsot   split_linesRZ   R   R   (   RN   R$   R%   R2   R.   t   ct   xt   param_contextst   _fieldsR[   t   fieldsRH   t   vR\   t   codet   modulet   generated_classR1   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   collections_namedtuple  sH    	!+(	1	t   PartialObjectc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   _actual_contextt
   _arguments(   Ry   t   actual_contextR$   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz     s    	c         C   s   t  |  j |  S(   N(   t   getattrR   (   Ry   R.   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   __getattr__  s    c         C   sN   t  | d  \ } } | d  k	 s- | d  k rD t j d |  j  d  S| j   S(   Ns(   Partial should have a proper function %s(   NN(   R_   R4   R   R`   R   RE   (   Ry   t   unpacked_argumentsRG   RH   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _get_function  s
    c         C   s   |  j  j   } |  j |  } | d  k r. g  Sd } t   } x: | D]2 \ } } | d  k ri | d 7} qD | j |  qD Wg  | j   D] } t | | |  ^ q S(   Ni    i   (   R   RC   R   R4   R   R   R   t   PartialSignature(   Ry   R   R?   t	   arg_countt   keysRG   R   t   s(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s    	c         C   sA   |  j  |  j j    } | d  k r( t S| j t |  j |   S(   N(   R   R   RC   R4   R   RA   t   MergedPartialArguments(   Ry   R$   R?   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRa     s
    (   R   R   Rz   R   R   R   Ra   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s
   				R   c           B   s   e  Z d    Z e d  Z RS(   c         C   s,   t  t |   j |  | |  _ | |  _ d  S(   N(   R   R   Rz   t   _skipped_arg_countt   _skipped_arg_set(   Ry   t   wrapped_signaturet   skipped_arg_countt   skipped_arg_set(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz     s    	c         C   s?   |  j  j   |  j } g  | D] } | j |  j k r | ^ q S(   N(   t   _wrapped_signaturet   get_param_namesR   R/   R   (   Ry   t   resolve_starsRq   t   n(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s    (   R   R   Rz   R   R   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s   	R   c           B   s   e  Z d    Z d d  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   _partial_argumentst   _call_arguments(   Ry   t   partial_argumentst   call_arguments(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz     s    	c         c   sX   |  j  j |  } t |  x | D] } | Vq# Wx |  j j |  D] } | VqE Wd  S(   N(   R  RC   R_   R  (   Ry   t   funcdeft   unpackedt   key_lazy_context(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRC     s    
	N(   R   R   Rz   R4   RC   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s   	c            s#   t    f d   |  j    D  S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   R   (   R   R:   (   R$   (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>*  s   (   R   Ra   (   RN   R$   R%   (    (   R$   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   functools_partial(  s    s   first, /c         C   s   |  S(   N(    (   t   firsts(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _return_first_param/  s    R   c         C   s   t  j d   |  D  S(   Nc         s   s.   |  ]$ } | j    D] } | j   Vq q d  S(   N(   R   RE   (   R   t   sequenceRH   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>7  s   (   R   R   (   R   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _random_choice4  s    c         C   sP   xI t  |  j | d  D]2 } | j   r; t t |  g  St |  g  Sq Wt S(   Ni    (   RI   R2   R   R   t   DataclassWrapperR   (   RN   R$   R%   R   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt
   _dataclass=  s
    R  c           B   s   e  Z d    Z RS(   c         C   s  g  } xt  t |  j     D] } t | t  r | j   } x t | j   d d   D] } | j j	   } | j
 d } | j d k r\ | j d k r\ t | j
  d k  r d  } n | j
 d } | j t d | j d	 | j d
 | j
 d d |   q\ q\ Wq q Wt | |  g S(   NRG   c         S   s   |  j  S(   N(   t	   start_pos(   R.   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   <lambda>O  R   i   t	   expr_stmtt	   annassigni   i   R1   t	   tree_namet   annotation_nodet   default_node(   R   RB   R   R7   R  t   get_global_filtert   sortedR   R  t   get_definitiont   childrent   typeR   R4   t   appendt   DataclassParamNameR1   t   DataclassSignature(   Ry   t   param_namesR   t   filter_R.   t   dR  t   default(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR   G  s"    "			(   R   R   R   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR  F  s   R  c           B   s   e  Z d    Z e d  Z RS(   c         C   s#   t  t |   j |  | |  _ d  S(   N(   R   R  Rz   t   _param_names(   Ry   R&   R   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz   a  s    c         C   s   |  j  S(   N(   R$  (   Ry   R  (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR   e  s    (   R   R   Rz   R   R   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR  `  s   	R  c           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s/   t  t |   j | |  | |  _ | |  _ d  S(   N(   R   R  Rz   R  R  (   Ry   R1   R  R  R  (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz   j  s    	c         C   s   t  j S(   N(   R   t   POSITIONAL_OR_KEYWORD(   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   get_kindo  s    c         C   s*   |  j  d  k r t S|  j j |  j   Sd  S(   N(   R  R4   R   R1   t	   eval_node(   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRE   r  s    (   R   R   Rz   R&  RE   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR  i  s   		t   ItemGetterCallablec           B   s&   e  Z d    Z e d  d    Z RS(   c         C   s#   t  t |   j |  | |  _ d  S(   N(   R   R(  Rz   t   _args_context_set(   Ry   R:   t   args_context_set(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz   z  s    s   item, /c         C   s   t  } x |  j D] } t | j    } t |  d k r] | | j | d j   d   O} q | t t	 j
 |  j j d g  | D]$ } t | j | j   d    ^ q|  g  O} q W| S(   Ni   i    RB   (   R   R)  RB   R   R   t   get_itemRE   R4   R   R   t   FakeSequenceR   R2   R   (   Ry   t   item_context_sett   context_sett   args_contextt   lazy_contextsRH   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRa   ~  s    #	<(   R   R   Rz   R   Ra   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR(  y  s   	s   func, /c         C   s   t  d   |  D  S(   Nc         s   s   |  ] } t  |  Vq d  S(   N(   t   WrapsCallable(   R   R?   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <genexpr>  s    (   R   (   t   funcs(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _functools_wraps  s    R1  c           B   s   e  Z e d   d    Z RS(   s   func, /c            s   t    f d   | D  S(   Nc            s"   h  |  ] } t  |   j   q S(    (   t   WrappedR   (   R   R?   (   Ry   (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys	   <setcomp>  s   	 (   R   (   Ry   R2  (    (   Ry   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRa     s    (   R   R   R   Ra   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR1    s   R4  c           B   s)   e  Z d    Z e d    Z d   Z RS(   c         C   s#   t  t |   j |  | |  _ d  S(   N(   R   R4  Rz   t   _original_function(   Ry   R?   t   original_function(    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz     s    c         C   s
   |  j  j S(   N(   R5  R.   (   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR.     s    c         C   s   |  g S(   N(    (   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   get_signature_functions  s    (   R   R   Rz   R*   R.   R7  (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR4    s   	s   *args, /c         C   s/   t  g  | j |  D] } t | |   ^ q  S(   N(   R   Ra   R(  (   R*  RN   R$   R:   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _operator_itemgetter  s    c            s+   t  d d t d t   f d    } | S(   Ns	   string, /RY   RU   c            s8      f d   } t  |    } | r+ | S| j |  S(   Nc          3   sP   xI  D]A }  t  |   } | d  k	 r   |  } t j |  j |  Vq q Wd  S(   N(   R   R4   R
   t   create_simple_objectR2   (   R&   R   (   R?   t   strings(    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR     s
    (   R   Ra   (   R:  RN   R$   R   t   contexts(   R?   (   R:  s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR@     s
    (   R]   RZ   (   R?   R@   (    (   R?   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _create_string_input_function  s    'RV   c         C   s   t  |   d k r d } |  \ } t } x | j   D] } | j   } t  |  d k r\ Pn  t t t |    } | d  k r Pn  | s | t j	 j
 7} n  | t |  7} t } q4 Wt t j | j |  g  Sn  |   S(   Ni   u    (   R   RZ   R   RE   R   R_   R}   R4   t   ost   patht   sepR    R   R   R
   R9  R2   (   t   args_setR%   R[   R  t   is_firstRH   t   string_contextsR   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   _os_path_join  s"    	
R   R  R   R   R7   R_   R}   t   staticmethodt   classmethodR(   t   copyt   deepcopyc         C   s   t  S(   N(   R   (   RN   R$   R%   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR    R   t   loadc         C   s   t  S(   N(   R   (   RN   R$   R%   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR    R   t   loadst   jsont
   namedtuplet   collectionst   partialt   wrapst	   functoolst   proxyt   _weakreft   choicet   randomt
   itemgettert   operatort   abstractmethodt   abcc         C   s   t  S(   N(   R   (   RN   R$   R%   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR    R   t   _aliast   typingt	   dataclasst   dataclassest   dirnamet   abspatht   relpathR   s   os.pathc            s     f d   } | S(   Nc            s   xp | D]h } | j    d k r | j   j    d k r t   j d   } t   f d   | j   D  g Sq W   |  S(   Nt   EnumMetat   enumR&   c            s(   i  |  ] } t    |  j | j  q S(    (   t   EnumInstanceR.   R/   (   R   R.   (   R   (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pys
   <dictcomp>  s   	 (   R6   R   R    R2   R!   R   (   R   t   metaclassest	   metaclassR!  (   R?   (   R   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR@     s    $(    (   R?   R@   (    (   R?   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   get_metaclass_filters  s    	Ra  c           B   s;   e  Z d    Z e d    Z d   Z e d d d  Z RS(   c         C   s1   | j  |  _  | |  _ | |  _ |  j j |  _ d  S(   N(   R2   t   _clst   _nameR  t	   tree_node(   Ry   R   R.   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRz   %  s    		c         C   s   t  |  |  j j  S(   N(   R   Rf  R  (   Ry   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR.   +  s    c         C   s   |  j  j   \ } | S(   N(   Re  Rj   (   Ry   RN   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR   /  s    c         c   s[   t  t d t j |  j |  j j  j d |  j   Vx |  j   j	   D] } | VqH Wd  S(   NR.   t   value(
   R!   t   dictR
   R9  R2   Rf  R/   R.   R   R   (   Ry   R   t   positionR   R\   (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR   3  s
    	N(	   R   R   Rz   R   R.   R   R   R4   R   (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyRa  $  s   		c            s     f d   } | S(   Nc            s\   | j  d k rL | j   rL | j   d k rL t t j |  t j j  h  S  |  | |  S(   NR?  s   os.path(	   Rh  R5   R6   R   R
   R9  R=  R>  R?  (   R2   R&   R  (   R?   (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyR@   =  s    -(    (   R?   R@   (    (   R?   s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   tree_name_to_contexts<  s    (j   R   R   R=  t   jedi._compatibilityR    R   t   jediR   t   jedi.evaluate.utilsR   t   jedi.evaluate.helpersR   t   jedi.evaluate.argumentsR   R   R   R   t   jedi.evaluateR	   R
   t   jedi.evaluate.context.instanceR   R   t   jedi.evaluate.base_contextR   R   R   R   R   t   jedi.evaluate.contextR   R   R   t   jedi.evaluate.context.klassR   t   jedi.evaluate.context.functionR   R   t   jedi.evaluate.lazy_contextR   R   R   t   jedi.evaluate.namesR   R   t   jedi.evaluate.syntax_treeR   t   jedi.evaluate.filtersR   R   R    R!   t   jedi.evaluate.signatureR"   R#   R   R   RA   RI   R   R]   RZ   R9   Rm   Rp   R4   Rr   Rv   Rw   R   R   R   R   R   R   R   R   R   R   R   t   objectR   R   R   R
  R  R  R  R  R  R  R(  R3  R1  R4  R8  R<  RC  R>  R\  R]  R^  R;   Rd  Ra  Rk  (    (    (    s2   lib/python2.7/site-packages/jedi/plugins/stdlib.pyt   <module>   s   "("?	,		 !		!!*!		<(						!	
	