B
    ]XxW              z   @   s  d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	m
Z
mZmZmZ er^ddlZnddlZi Zedd gdd gd	d gd
d dd dd gdd gdd gdpddgdd dd dd gdd dd dqddgdd gdd gdd gdd gdd gdrddgdd gd d d!d gd"d d#d gd$d gddsd%dfgd&d d'd d(d gd)d d*d d+d gddtd.dfgd/d gdud1dgd2d d3d gd4d d5d gd6d d7d gd8d gd9d gd:d gd;d gd<d gd=d d>d gdvd?dddwdAdfgdBd gdCd gdDd gdEd dFd gdGd gdHd dId gdJd gdxdKdddydLdfgdMd gddNd fgdOd dPd gdQd gdRd gdSd gdTd dUd gdzdVdgdWd dXd dYd gdZd d[d gd\d d]d gd^d gd_d gd`d gdd{dadfgdbd dcd gddd gded dfd dgd gdhd gdid djd gdkd dld gdmd dnd gdod dpd gdqd gdrd d|dtdgdud dvd gdwd dxd dyd gdzd gd{d|d d}fgdd}d~dfgdIee< dd dd dd gee d< eree jdd dd d~ddgddddfgddd dfddd dfgddd dfddd dfgddddfgddd dfgdddgd ddd dfgee d< nee jdddgddddfgddd dfgddd dfgddddfgdddgdddgd ddd dfgee d< eddd fgdd gdd gdd dd gdee< eddddfgdd gddd fgddd fgddd fgdddgdd gdd gdd gddddfgdd gdd gdd gdd dd dd gdd gddd dfgddddfgddddfgdd gdd gdd dd gddd dfgdee< eree jddd dfgdč nee jdd gdč edd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gd d gdd gdd gdd gdd gdd gdd gdd gdd gd	d gd
d gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gdd gd d gd!d gd"d gd#d gd$d gd%d gd&d gd'd gd(d d)d gd*d gd+d gd,d gd-d gd.d gd/d gd0d gd1d gd2d gd3d gd4d gd5d gd6d gd7d gd8d gd9d gd:d gd;d gd<d gd=d gd>d gd?xee< edd@d fgdddAdfgdddBdfgddCd fgdddDdfgdEedF< eddGd fgdddHdfgdIedJ< erؐdKdL ZdMdN ZdOdP Zn$dQdL ZdRdN ZdSdP ZdTdU Zi ZeefdVdWZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Z dhdi Z!djdk Z"dldm Z#dndo Z$dS (  a  Internal module for better introspection of builtins.

The main functions are ``is_builtin_valid_args``, ``is_builtin_partial_args``,
and ``has_unknown_args``.  Other functions in this module support these three.

Notably, we create a ``signatures`` registry to enable introspection of
builtin functions in any Python version.  This includes builtins that
have more than one valid signature.  Currently, the registry includes
builtins from ``builtins``, ``functools``, ``itertools``, and ``operator``
modules.  More can be added as requested.  We don't guarantee full coverage.

Everything in this module should be regarded as implementation details.
Users should try to not use this module directly.
    N   )PY3import_module)is_partial_argsis_arityhas_varargshas_keywordsnum_required_argsc             C   s   d S )N )xr
   r
   0lib/python3.7/site-packages/toolz/_signatures.py<lambda>0   s    r   c             C   s   d S )Nr
   )iterabler
   r
   r   r   2   s    c             C   s   d S )Nr
   )r   r
   r
   r   r   4   s    c             C   s   d S )Nr
   )objectr
   r
   r   r   6   s    c             C   s   d S )Nr
   )r   argsr
   r
   r   r   7   s    c             C   s   d S )Nr
   )r   r   kwargsr
   r
   r   r   8   s    c             C   s   d S )Nr
   )objr
   r
   r   r   :   s    c             C   s   d S )Nr
   )numberr
   r
   r   r   <   s    Fc             C   s   d S )Nr
   )r   r
   r
   r   r   >   s    c             C   s   d S )Nr
   )r   r
   r
   r   r   @   s    c             C   s   d S )Nr
   )r   offsetr
   r
   r   r   A   s    c             C   s   d S )Nr
   )r   r   sizer
   r
   r   r   B   s    c               C   s   d S )Nr
   r
   r
   r
   r   r   D   s    c             C   s   d S )Nr
   )intr
   r
   r   r   E   s    utf8strictc             C   s   d S )Nr
   )stringencodingerrorsr
   r
   r   r   F   s    c             C   s   d S )Nr
   )r   r
   r
   r   r   H   s    c             C   s   d S )Nr
   )ir
   r
   r   r   J   s    c             C   s   d S )Nr
   )functionr
   r
   r   r   L   s    c             C   s   d S )Nr
   )r   yr
   r
   r   r   N   s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   P   s    c             C   s   d S )Nr
   )realimagr
   r
   r   r   R   s    c             C   s   d S )Nr
   )r   namer
   r
   r   r   T   s    c              K   s   d S )Nr
   )r   r
   r
   r   r   V   s    c             K   s   d S )Nr
   )mappingr   r
   r
   r   r   W   s    c               C   s   d S )Nr
   r
   r
   r
   r   r   Y   s    c             C   s   d S )Nr
   )r   r
   r
   r   r   Z   s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   \   s    c             C   s   d S )Nr
   )r   startr
   r
   r   r   ^   s    c             C   s   d S )Nr
   )sourcer
   r
   r   r   `   s    c             C   s   d S )Nr
   )r$   globalsr
   r
   r   r   a   s    c             C   s   d S )Nr
   )r$   r%   localsr
   r
   r   r   b   s    c             C   s   d S )Nr
   )filenamer
   r
   r   r   d   s    c             C   s   d S )Nr
   )r'   r%   r
   r
   r   r   e   s    c             C   s   d S )Nr
   )r'   r%   r&   r
   r
   r   r   f   s    rc             C   s   d S )Nr
   )r!   mode	bufferingr
   r
   r   r   h   s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   j   s            c             C   s   d S )Nr
   )r   r
   r
   r   r   l   s    c             C   s   d S )Nr
   )valuer
   r
   r   r   n   s    c             C   s   d S )Nr
   )r-   format_specr
   r
   r   r   o   s    c               C   s   d S )Nr
   r
   r
   r
   r   r   q   s    c             C   s   d S )Nr
   )r   r
   r
   r   r   r   s    c             C   s   d S )Nr
   )r   r!   r
   r
   r   r   t   s    c             C   s   d S )Nr
   )r   r!   defaultr
   r
   r   r   u   s    c               C   s   d S )Nr
   r
   r
   r
   r   r   w   s    c             C   s   d S )Nr
   )r   r!   r
   r
   r   r   y   s    c             C   s   d S )Nr
   )r   r
   r
   r   r   {   s    c             C   s   d S )Nr
   )r   r
   r
   r   r   }   s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )promptr
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    
   c             C   s   d S )Nr
   )r   baser
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   class_or_tupler
   r
   r   r      s    c             C   s   d S )Nr
   )clsr3   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )callablesentinelr
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r2   r
   r
   r   r      s    c             G   s   d S )Nr
   )funcsequence	iterablesr
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )iteratorr
   r
   r   r      s    c             C   s   d S )Nr
   )r:   r/   r
   r
   r   r      s    c               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )cr
   r
   r   r      s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r   zr
   r
   r   r      s    c             C   s   d S )Nr
   )fgetfsetfdeldocr
   r
   r   r      s    c             C   s   d S )Nr
   )stopr
   r
   r   r      s    c             C   s   d S )Nr
   )r#   rA   r
   r
   r   r      s    c             C   s   d S )Nr
   )r#   rA   stepr
   r
   r   r      s    c               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )r0   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r8   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r8   initialr
   r
   r   r      s    c             C   s   d S )Nr
   )moduler
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r8   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   Zndigitsr
   r
   r   r      s    c               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r!   r-   r
   r
   r   r      s    c             C   s   d S )Nr
   )rA   r
   r
   r   r      s    c             C   s   d S )Nr
   )r#   rA   r
   r
   r   r      s    c             C   s   d S )Nr
   )r#   rA   rB   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r#   r
   r
   r   r      s    c             C   s   d S )Nr
   )typer
   r
   r   r      s    c             C   s   d S )Nr
   )rE   r   r
   r
   r   r      s    c               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r!   basesdictr
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s     c             C   s   d S )Nr
   )r   r   r   r
   r
   r   r      s    c               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )rA   r
   r
   r   r      s    c             C   s   d S )Nr
   )r#   rA   r
   r
   r   r      s    c             C   s   d S )Nr
   )r#   rA   rB   r
   r
   r   r      s    c              G   s   d S )Nr
   )r9   r
   r
   r   r      s       c             O   s   d S )Nr
   )r7   r!   rF   kwdsr
   r
   r   r      s    )	metaclassc             C   s   d S )Nr
   )r!   r%   r&   fromlistlevelr
   r
   r   r      s    )IabsallanyZapplyasciibinboolbuffer	bytearrayr5   chrclassmethodcmpZcoercecomplexdelattrrG   dirdivmod	enumerateevalZexecfilefilefilterfloatformat	frozensetgetattrr%   hasattrhashhexidinputr   intern
isinstance
issubclassiterlenlistr&   Zlongmap
memoryviewnextr   octordpowpropertyrangeZ	raw_inputreducereloadreprreversedroundsetsetattrslicestaticmethodsumsupertuplerE   ZunichrZunicodevarsZxrangezip__build_class__
__import__c             C   s   d S )Nr
   )r$   r
   r
   r   r      s    c             C   s   d S )Nr
   )r$   r%   r
   r
   r   r      s    c             C   s   d S )Nr
   )r$   r%   r&   r
   r
   r   r      s    execc               C   s   d S )Nr
   r
   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r   r   r   r
   r
   r   r      s    c             C   s   d S )Nr
   )r$   r'   r*   flagsdont_inheritoptimizer
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    )r/   keyc             G   s   d S )Nr
   )arg1arg2r   r
   r
   r   r      s    )r   c             C   s   d S )Nr
   )r   r
   r
   r   r      s    c             G   s   d S )Nr
   )r   r   r   r
   r
   r   r      s    Tc             C   s   d S )Nr
   )r_   r*   r+   r   r   newlineclosefdopenerr
   r
   r   r      s    c             C   s   d S )Nr
   )r   r
   r
   r   r      s    )r   reverseutfc             C   s   d S )Nr
   )r   r   r   r
   r
   r   r     s    )bytescompilemaxminopensortedstrc              G   s   d S )Nr
   )r   r
   r
   r   r     s    )sependr_   flushprintc             C   s   d S )Nr
   )r   r
   r
   r   r   
  s    c             C   s   d S )Nr
   )r$   r'   r*   r   r   r
   r
   r   r     s    c             G   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             G   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r_   r*   r+   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   rX   r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c              G   s   d S )Nr
   )r   r
   r
   r   r     s    )r   r   r_   c             C   s   d S )Nr
   )Zmycmpr
   r
   r   r     s    c             O   s   d S )Nr
   )r7   r   r   r
   r
   r   r      s    c             O   s   d S )Nr
   )r7   r   r   r
   r
   r   r   "  s    c             C   s   d S )Nr
   )r   r8   r
   r
   r   r   $  s    c             C   s   d S )Nr
   )r   r8   rC   r
   r
   r   r   %  s    )
cmp_to_keypartialpartialmethodrx   c             C   s   d S )Nr
   )r   r7   r
   r
   r   r   *  s    c              G   s   d S )Nr
   )r9   r
   r
   r   r   ,  s    c             C   s   d S )Nr
   )r   r(   r
   r
   r   r   .  s    c             C   s   d S )Nr
   )r   r(   r
   r
   r   r   0  s    c             C   s   d S )Nr
   )dataZ	selectorsr
   r
   r   r   2  s    c             C   s   d S )Nr
   )r#   rB   r
   r
   r   r   4  s    c             C   s   d S )Nr
   )r   r
   r
   r   r   6  s    c             C   s   d S )Nr
   )	predicater   r
   r
   r   r   8  s    c             C   s   d S )Nr
   )r   r8   r
   r
   r   r   :  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   <  s    c             C   s   d S )Nr
   )r   r8   r
   r
   r   r   >  s    c             C   s   d S )Nr
   )r   r8   r
   r
   r   r   @  s    c             G   s   d S )Nr
   )r7   r8   r9   r
   r
   r   r   B  s    c             C   s   d S )Nr
   )r   rA   r
   r
   r   r   D  s    c             C   s   d S )Nr
   )r   r#   rA   r
   r
   r   r   E  s    c             C   s   d S )Nr
   )r   r#   rA   rB   r
   r
   r   r   F  s    c              G   s   d S )Nr
   )r9   r
   r
   r   r   H  s    c              G   s   d S )Nr
   )r9   r
   r
   r   r   J  s    )	fillvaluec             C   s   d S )Nr
   )r   r(   r
   r
   r   r   L  s    c             C   s   d S )Nr
   )r   timesr
   r
   r   r   N  s    c             C   s   d S )Nr
   )r   r8   r
   r
   r   r   P  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   R  s    c             C   s   d S )Nr
   )r   r
   r
   r   r   T  s    c             C   s   d S )Nr
   )r   nr
   r
   r   r   U  s    c              G   s   d S )Nr
   )r9   r
   r
   r   r   W  s    )
accumulatechaincombinationscombinations_with_replacementcompresscountcycle	dropwhilefilterfalsegroupbyZifilterZifilterfalseZimapisliceZizipZizip_longestpermutationsrepeatstarmap	takewhileteezip_longestc              G   s   d S )Nr
   )r9   r
   r
   r   r   ]  s    )r   )productc              G   s   d S )Nr
   )r9   r
   r
   r   r   b  s    c             C   s   d S )Nr
   )ar
   r
   r   r   g  s    c             C   s   d S )Nr
   )r   br
   r
   r   r   i  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   k  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   m  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   o  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   q  s    c             C   s   d S )Nr
   )r   r   r;   r
   r
   r   r   s  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   u  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   w  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   y  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   {  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   }  s    c             C   s   d S )Nr
   )r   r   r;   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r;   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r;   dr
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             G   s   d S )Nr
   )attrr   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r;   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r;   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r   	  s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r
   r
   r   r     s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   !  s    c             G   s   d S )Nr
   )itemr   r
   r
   r   r   #  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   %  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   '  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   )  s    c             C   s   d S )Nr
   )r   r
   r
   r   r   +  s    c             C   s   d S )Nr
   )r   r/   r
   r
   r   r   ,  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   .  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   0  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   2  s    c             O   s   d S )Nr
   )r!   r   r   r
   r
   r   r   4  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   6  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   8  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   :  s    c             C   s   d S )Nr
   )r   r
   r
   r   r   <  s    c             C   s   d S )Nr
   )r   r
   r
   r   r   >  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   @  s    c             C   s   d S )Nr
   )r   r
   r
   r   r   B  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   D  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   F  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   H  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   J  s    c             C   s   d S )Nr
   )r   r   r;   r
   r
   r   r   L  s    c             C   s   d S )Nr
   )r   r   r;   r   r
   r
   r   r   N  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   P  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   R  s    c             C   s   d S )Nr
   )r   r
   r
   r   r   T  s    c             C   s   d S )Nr
   )r   r   r
   r
   r   r   V  s    )x__abs____add____and__
__concat____contains____delitem__Z__delslice__Z__div____eq____floordiv____ge____getitem__Z__getslice____gt____iadd____iand____iconcat__Z__idiv____ifloordiv____ilshift____imatmul____imod____imul__	__index____inv__
__invert____ior____ipow__Z__irepeat____irshift____isub____itruediv____ixor____le__
__lshift____lt__
__matmul____mod____mul____ne____neg____not____or____pos____pow__Z
__repeat__
__rshift____setitem__Z__setslice____sub____truediv____xor___abs_compare_digestrN   addand_
attrgetterconcatcontainscountOfdelitemZdelsliceZdiveqfloordivgegetitemZgetslicegtiaddiandiconcatZidiv	ifloordivilshiftimatmulimodimulindexindexOfinvinvertioripowZirepeatirshiftis_is_notZ
isCallableZisMappingTypeZisNumberTypeZisSequenceTypeisub
itemgetteritruedivixorlelength_hintlshiftltmatmulmethodcallermodmulnenegnot_or_posru   r   rshiftZsequenceIncludessetitemZsetslicesubtruedivtruthxorc              O   s   d S )Nr
   )r   r   r
   r
   r   r   [  s    c             C   s   d S )Nr
   )excr7   Zhandlerr
   r
   r   r   ]  s    c             C   s   d S )Nr
   )r7   r   r   r
   r
   r   r   _  s    c              G   s   d S )Nr
   )funcsr
   r
   r   r   a  s    c             C   s   d S )Nr
   )r7   cacher   r
   r
   r   r   c  s    )ZcurryZexceptsZflipZjuxtZmemoizeZtoolzc             C   s   d S )Nr
   )r"  r
   r
   r   r   h  s    c             C   s   d S )Nr
   )r=   r>   r?   r@   Zclassvalr
   r
   r   r   j  s    )ZComposeZInstancePropertyztoolz.functoolzc             C   s   t dd | j D S )z@ Return the number of positional arguments.  ``f(x, y=1)`` has 1c             s   s*   | ]"}|j |jkr|j|jkrd V  qdS )r   N)kindZPOSITIONAL_OR_KEYWORDr/   empty).0r   r
   r
   r   	<genexpr>q  s    znum_pos_args.<locals>.<genexpr>)r   
parametersvalues)sigspecr
   r
   r   num_pos_argso  s    r+  c             C   sT   | dkrdS t dd |j D }|s,dS t|j d|  }tdd |D S )zA Return the names of position-only arguments if func has **kwargsr   r
   c             s   s   | ]}|j |jkV  qd S )N)r$  ZVAR_KEYWORD)r&  r   r
   r
   r   r'  y  s   z'get_exclude_keywords.<locals>.<genexpr>Nc             s   s   | ]}|j V  qd S )N)r!   )r&  r   r
   r
   r   r'  ~  s    )rP   r(  r)  ro   r   )num_pos_onlyr*  
has_kwargsZpos_argsr
   r
   r   get_exclude_keywordsu  s    r.  c          
   C   s6   y
t | S  ttfk
r0 } z|S d }~X Y nX d S )N)inspectZ	signature
ValueError	TypeError)r7   er
   r
   r   signature_or_spec  s    
r3  c             C   s$   | j rt| jt| j  S t| jS )z@ Return the number of positional arguments.  ``f(x, y=1)`` has 1)defaultsrn   r   )r*  r
   r
   r   r+    s    c             C   s0   | dkrdS |j dk	}|sdS t|jd|  S )zA Return the names of position-only arguments if func has **kwargsr   r
   N)keywordsr   r   )r,  r*  r-  r
   r
   r   r.    s    
c          
   C   s2   y
t | S  tk
r, } z|S d }~X Y nX d S )N)r/  Z
getargspecr1  )r7   r2  r
   r
   r   r3    s    
c             C   s|   t | trJt| dkr4| \}}}t | d ts@tn| \}}d}t|}n| }t|}t|}d}t||}|||| |fS )a   Convert the signature spec in ``module_info`` to add to ``signatures``

    The input signature spec is one of:
        - ``lambda_func``
        - ``(num_position_args, lambda_func)``
        - ``(num_position_args, lambda_func, keyword_only_args)``

    The output signature spec is:
        ``(num_position_args, lambda_func, keyword_exclude, sigspec)``

    where ``keyword_exclude`` includes keyword only arguments and, if variadic
    keywords is present, the names of position-only argument.  The latter is
    included to support builtins such as ``partial(func, *args, **kwargs)``,
    which allows ``func=`` to be used as a keyword even though it's the name
    of a positional argument.
       r)   r
   )rk   r   rn   AssertionErrorr3  r+  r.  )sigr,  r7   Zkeyword_onlyr*  keyword_excluder
   r
   r   
expand_sig  s    



r:  c             C   sl   xf|   D ]Z\}}t|tr$t|}x>|  D ]2\}}t||r.tdd |D }||t||< q.W q
W d S )Nc             s   s   | ]}t |V  qd S )N)r:  )r&  r8  r
   r
   r   r'    s    z,create_signature_registry.<locals>.<genexpr>)itemsrk   r   r   re   r   rd   )module_info
signaturesrD   infor!   sigsZnew_sigsr
   r
   r   create_signature_registry  s    

r@  c             C   sj   | \}}}}t ||k rdS |rBt|}x|D ]}||d q.W y||| dS  tk
rd   dS X dS )z4 Like ``is_valid_args`` for the given signature specFNT)rn   rG   popr1  )r8  r   r   r,  r7   r9  r*  r   r
   r
   r   check_valid  s    

rB  c                s,   | t krdS t |  }t fdd|D S )zC Like ``is_valid_args`` for builtins in our ``signatures`` registryNc             3   s   | ]}t | V  qd S )N)rB  )r&  r8  )r   r   r
   r   r'    s    z!_is_valid_args.<locals>.<genexpr>)r=  rP   )r7   r   r   r?  r
   )r   r   r   _is_valid_args  s    rC  c       	      C   sd   | \}}}}t ||k r0d|t |  }|| }|rVt|}x|D ]}||d qBW t||||S )z6 Like ``is_partial_args`` for the given signature spec)NN)rn   rG   rA  r   )	r8  r   r   r,  r7   r9  r*  Zpadr   r
   r
   r   check_partial  s    
rD  c                s,   | t krdS t |  }t fdd|D S )zE Like ``is_partial_args`` for builtins in our ``signatures`` registryNc             3   s   | ]}t | V  qd S )N)rD  )r&  r8  )r   r   r
   r   r'    s    z#_is_partial_args.<locals>.<genexpr>)r=  rP   )r7   r   r   r?  r
   )r   r   r   _is_partial_args  s    rE  c             C   s(   |\}}}}|s|| krdS t | ||S )NF)r   )r   r8  r,  r7   r9  r*  r
   r
   r   check_arity  s    rF  c                sB   |t krd S t | } fdd|D }t|r2dS t|r>d S dS )Nc                s   g | ]}t  |qS r
   )rF  )r&  r8  )r   r
   r   
<listcomp>  s    z_is_arity.<locals>.<listcomp>TF)r=  rO   rP   )r   r7   r?  checksr
   )r   r   	_is_arity   s    rI  c             C   s   | \}}}}t ||S )N)r   )r8  r,  r7   r9  r*  r
   r
   r   check_varargs  s    rJ  c             C   s>   | t krd S t |  }dd |D }t|r.dS t|r:d S dS )Nc             S   s   g | ]}t |qS r
   )rJ  )r&  r8  r
   r
   r   rG    s    z _has_varargs.<locals>.<listcomp>TF)r=  rO   rP   )r7   r?  rH  r
   r
   r   _has_varargs  s    rK  c             C   s   | \}}}}|rdS t ||S )NT)r   )r8  r,  r7   r9  r*  r
   r
   r   check_keywords  s    rL  c             C   s>   | t krd S t |  }dd |D }t|r.dS t|r:d S dS )Nc             S   s   g | ]}t |qS r
   )rL  )r&  r8  r
   r
   r   rG  (  s    z!_has_keywords.<locals>.<listcomp>TF)r=  rO   rP   )r7   r?  rH  r
   r
   r   _has_keywords$  s    rM  c             C   s   | \}}}}t ||S )N)r	   )r8  r,  r7   r9  r*  r
   r
   r   check_required_args0  s    rN  c                sH   | t krd S t |  }dd |D }|d  t fdd|D rD S d S )Nc             S   s   g | ]}t |qS r
   )rN  )r&  r8  r
   r
   r   rG  9  s    z&_num_required_args.<locals>.<listcomp>r   c             3   s   | ]}| kV  qd S )Nr
   )r&  r   )valr
   r   r'  ;  s    z%_num_required_args.<locals>.<genexpr>)r=  rO   )r7   r?  Zvalsr
   )rO  r   _num_required_args5  s    rP  )F)r   r   )r   r   )r   )r(   r)   )r,   )r   )r1   )r   )r1   )NNNN)r   )rH   r   r   )NNNN)r   r   )r   Fr)   )r(   r)   NNNTN)rH   r   r   )rH   )r   F)r(   r)   )NNF)rH   )N)r   r   )N)r   )r   )N)NNN)NNN)NNNNN)%__doc__	functoolsr/  	itertoolsoperatorZcompatibilityr   r   Z	functoolzr   r   r   r   r	   builtinsZ__builtin__r<  rG   updater+  r.  r3  r:  r=  r@  rB  rC  rD  rE  rF  rI  rJ  rK  rL  rM  rN  rP  r
   r
   r
   r   <module>   s  































































 	"
