U
    ꥡc>P                  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 ddlmZm	Z	m
Z
mZmZ ddlZi Zedd gdd gd	d d
d gdd gdd dd dd gdd gdd gdfddgdd dd dd gdd dd dgddgdd gdd gdd gdd gdd gdhd dgd!d gd"d d#d gd$d d%d gd&d gddid'dfgd(d d)d d*d gd+d d,d d-d gddjd0dfgd1d gdkd3dgd4d d5d gd6d d7d gd8d d9d gd:d gd;d gd<d gd=d gd>d gd?d d@d gdldAdddmdCdfgdDd gdEd gdFd gdGd dHd gdId gdJd dKd gdLd gdndMdddodNdfgdOd gddPd fgdQd dRd gdSd gdTd gdUd gdVd dWd gdpdXdgdYd dZd d[d gd\d d]d gd^d d_d gd`d gdad gdbd gddqdcdfgddd ded gdfd gdgd dhd did gdjd gdkd dld gdmd dnd gdod dpd gdqd drd gdsd gdtd drdvdgdwd dxd gdyd dzd d{d gd|d gd}d~d dfgddsddfgdJee< dd dd dd gee d< ee jdd gdd dd dtddgdduddfgddd dfddd dfgddd dfddd dfgddvddfgddd dfgdwdd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dxddfgdd gddd fgddd fgddd fgdyddgdd gdd gdd gddzddfgdd gdd gdd gdd dd dd gdd gddd dfgdd{ddfgdd|ddfgdd gdd gdd dd gddd dfgdee< ee jddd df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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 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d0d gd1d gd2d gd3d gd4d gd5d gd6d gd7d gd8xee< edd9d fgdd}d:dfgdd~d;dfgdd<d fgddd=dfgd>ed?< edd@d fgdddAdfgdBedC< dDdE ZdFdG ZdHdI ZdJdK Zi ZeefdLdMZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Z dbdc Z!ddde 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)import_module   )is_partial_argsis_arityhas_varargshas_keywordsnum_required_argsc                 C   s   d S N xr
   r
   5/tmp/pip-unpacked-wheel-n0vm8il5/toolz/_signatures.py<lambda>-       r   c                 C   s   d S r	   r
   iterabler
   r
   r   r   /   r   c                 C   s   d S r	   r
   )	aiteratorr
   r
   r   r   1   r   c                 C   s   d S r	   r
   )r   defaultr
   r
   r   r   2   r   c                 C   s   d S r	   r
   r   r
   r
   r   r   4   r   c                 C   s   d S r	   r
   objectr
   r
   r   r   6   r   c                 C   s   d S r	   r
   )r   argsr
   r
   r   r   7   r   c                 C   s   d S r	   r
   )r   r   kwargsr
   r
   r   r   8   r   c                 C   s   d S r	   r
   objr
   r
   r   r   :   r   c                 C   s   d S r	   r
   numberr
   r
   r   r   <   r   Fc                 C   s   d S r	   r
   r   r
   r
   r   r   >   r   c                 C   s   d S r	   r
   r   r
   r
   r   r   @   r   c                 C   s   d S r	   r
   )r   offsetr
   r
   r   r   A   r   c                 C   s   d S r	   r
   )r   r   sizer
   r
   r   r   B   r   c                   C   s   d S r	   r
   r
   r
   r
   r   r   D   r   c                 C   s   d S r	   r
   intr
   r
   r   r   E   r   utf8strictc                 C   s   d S r	   r
   stringencodingerrorsr
   r
   r   r   F   r   c                 C   s   d S r	   r
   r   r
   r
   r   r   H   r   c                 C   s   d S r	   r
   ir
   r
   r   r   J   r   c                 C   s   d S r	   r
   functionr
   r
   r   r   L   r   c                 C   s   d S r	   r
   r   yr
   r
   r   r   N   r   c                 C   s   d S r	   r
   r*   r
   r
   r   r   P   r   c                 C   s   d S r	   r
   )realimagr
   r
   r   r   R   r   c                 C   s   d S r	   r
   r   namer
   r
   r   r   T   r   c                  K   s   d S r	   r
   )r   r
   r
   r   r   V   r   c                 K   s   d S r	   r
   )mappingr   r
   r
   r   r   W   r   c                   C   s   d S r	   r
   r
   r
   r
   r   r   Y   r   c                 C   s   d S r	   r
   r   r
   r
   r   r   Z   r   c                 C   s   d S r	   r
   r*   r
   r
   r   r   \   r   c                 C   s   d S r	   r
   r   startr
   r
   r   r   ^   r   c                 C   s   d S r	   r
   sourcer
   r
   r   r   `   r   c                 C   s   d S r	   r
   r4   globalsr
   r
   r   r   a   r   c                 C   s   d S r	   r
   r4   r6   localsr
   r
   r   r   b   r   c                 C   s   d S r	   r
   )filenamer
   r
   r   r   d   r   c                 C   s   d S r	   r
   )r9   r6   r
   r
   r   r   e   r   c                 C   s   d S r	   r
   )r9   r6   r8   r
   r
   r   r   f   r   rc                 C   s   d S r	   r
   )r/   mode	bufferingr
   r
   r   r   h   r   c                 C   s   d S r	   r
   )r)   r   r
   r
   r   r   j   r           c                 C   s   d S r	   r
   r   r
   r
   r   r   l   r   c                 C   s   d S r	   r
   )valuer
   r
   r   r   n   r   c                 C   s   d S r	   r
   )r?   format_specr
   r
   r   r   o   r   c                   C   s   d S r	   r
   r
   r
   r
   r   r   q   r   c                 C   s   d S r	   r
   r   r
   r
   r   r   r   r   c                 C   s   d S r	   r
   )r   r/   r
   r
   r   r   t   r   c                 C   s   d S r	   r
   )r   r/   r   r
   r
   r   r   u   r   c                   C   s   d S r	   r
   r
   r
   r
   r   r   w   r   c                 C   s   d S r	   r
   r.   r
   r
   r   r   y   r   c                 C   s   d S r	   r
   r   r
   r
   r   r   {   r   c                 C   s   d S r	   r
   r   r
   r
   r   r   }   r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   promptr
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   
   c                 C   s   d S r	   r
   r   baser
   r
   r   r      r   c                 C   s   d S r	   r
   )r#   r
   r
   r   r      r   c                 C   s   d S r	   r
   )r   class_or_tupler
   r
   r   r      r   c                 C   s   d S r	   r
   )clsrF   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   )callablesentinelr
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   rD   r
   r
   r   r      r   c                 G   s   d S r	   r
   funcsequence	iterablesr
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   )iteratorr
   r
   r   r      r   c                 C   s   d S r	   r
   )rN   r   r
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   )cr
   r
   r   r      r   c                 C   s   d S r	   r
   r*   r
   r
   r   r      r   c                 C   s   d S r	   r
   )r   r+   zr
   r
   r   r      r   c                 C   s   d S r	   r
   )fgetfsetfdeldocr
   r
   r   r      r   c                 C   s   d S r	   r
   stopr
   r
   r   r      r   c                 C   s   d S r	   r
   r2   rV   r
   r
   r   r      r   c                 C   s   d S r	   r
   r2   rV   stepr
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   rA   r
   r
   r   r      r   c                 C   s   d S r	   r
   r)   rL   r
   r
   r   r      r   c                 C   s   d S r	   r
   r)   rL   initialr
   r
   r   r      r   c                 C   s   d S r	   r
   )moduler
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   )rL   r
   r
   r   r      r   c                 C   s   d S r	   r
   )r   ndigitsr
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   )r   r/   r?   r
   r
   r   r      r   c                 C   s   d S r	   r
   rU   r
   r
   r   r      r   c                 C   s   d S r	   r
   rW   r
   r
   r   r      r   c                 C   s   d S r	   r
   rX   r
   r
   r   r      r   c                 C   s   d S r	   r
   r(   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   r1   r
   r
   r   r      r   c                 C   s   d S r	   r
   )typer
   r
   r   r      r   c                 C   s   d S r	   r
   )r_   r   r
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   )r/   basesdictr
   r
   r   r      r   c                 C   s   d S r	   r
   r&   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r    c                 C   s   d S r	   r
   r"   r
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   rU   r
   r
   r   r      r   c                 C   s   d S r	   r
   rW   r
   r
   r   r      r   c                 C   s   d S r	   r
   rX   r
   r
   r   r      r   c                  G   s   d S r	   r
   rM   r
   r
   r   r      r      c                 O   s   d S r	   r
   )rK   r/   r`   kwdsr
   r
   r   r      r   )	metaclassc                 C   s   d S r	   r
   )r/   r6   r8   fromlistlevelr
   r
   r   r      s    )JabsallZanextanyapplyasciibinboolbuffer	bytearrayrH   chrclassmethodcmpZcoercecomplexdelattrra   dirdivmod	enumerateevalZexecfilefilefilterfloatformat	frozensetgetattrr6   hasattrhashhexidinputr   intern
isinstance
issubclassiterlenlistr8   longmap
memoryviewnextr   octordpowpropertyrange	raw_inputreducereloadreprreversedroundsetsetattrslicestaticmethodsumsupertupler_   unichrunicodevarsxrangezip__build_class__
__import__c                 C   s   d S r	   r
   r3   r
   r
   r   r      r   c                 C   s   d S r	   r
   r5   r
   r
   r   r      r   c                 C   s   d S r	   r
   r7   r
   r
   r   r      r   execc                  O   s   d S r	   r
   )r   kwsr
   r
   r   r      r   c                   C   s   d S r	   r
   r
   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   r"   r
   r
   r   r      r   c                 C   s   d S r	   r
   )r4   r9   r<   flagsdont_inheritoptimizer
   r
   r   r      s    c                 C   s   d S r	   r
   r   r
   r
   r   r      r   )r   keyc                 G   s   d S r	   r
   Zarg1Zarg2r   r
   r
   r   r      r   )r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 G   s   d S r	   r
   r   r
   r
   r   r      r   Tc                 C   s   d S r	   r
   )r{   r<   r=   r$   r%   newlineclosefdopenerr
   r
   r   r      s    c                 C   s   d S r	   r
   r   r
   r
   r   r     r   )r   reverseutfc                 C   s   d S r	   r
   )r   r$   r%   r
   r
   r   r     r   )
breakpointbytescompilemaxminopensortedstrc                  G   s   d S r	   r
   )r   r
   r
   r   r     r   )sependr{   flushprintc                 C   s   d S r	   r
   )Zmycmpr
   r
   r   r     r   c                 O   s   d S r	   r
   rK   r   r   r
   r
   r   r     r   c                 O   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   rZ   r
   r
   r   r     r   c                 C   s   d S r	   r
   r[   r
   r
   r   r     r   )
cmp_to_keypartialpartialmethodr   c                 C   s   d S r	   r
   )r   rK   r
   r
   r   r     r   c                  G   s   d S r	   r
   rc   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r:   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   )data	selectorsr
   r
   r   r     r   c                 C   s   d S r	   r
   )r2   rY   r
   r
   r   r   !  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   #  r   c                 C   s   d S r	   r
   	predicater   r
   r
   r   r   %  r   c                 C   s   d S r	   r
   rZ   r
   r
   r   r   '  r   c                 C   s   d S r	   r
   )r   r   r
   r
   r   r   )  r   c                 C   s   d S r	   r
   rZ   r
   r
   r   r   +  r   c                 C   s   d S r	   r
   rZ   r
   r
   r   r   -  r   c                 G   s   d S r	   r
   rJ   r
   r
   r   r   /  r   c                 C   s   d S r	   r
   )r   rV   r
   r
   r   r   1  r   c                 C   s   d S r	   r
   )r   r2   rV   r
   r
   r   r   2  r   c                 C   s   d S r	   r
   )r   r2   rV   rY   r
   r
   r   r   3  r   c                  G   s   d S r	   r
   rc   r
   r
   r   r   5  r   c                  G   s   d S r	   r
   rc   r
   r
   r   r   7  r   )	fillvaluec                 C   s   d S r	   r
   r   r
   r
   r   r   9  r   c                 C   s   d S r	   r
   )r   timesr
   r
   r   r   ;  r   c                 C   s   d S r	   r
   rZ   r
   r
   r   r   =  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   ?  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   A  r   c                 C   s   d S r	   r
   )r   nr
   r
   r   r   B  r   c                  G   s   d S r	   r
   rc   r
   r
   r   r   D  r   )
accumulatechaincombinationscombinations_with_replacementcompresscountcycle	dropwhilefilterfalsegroupbyifilterifilterfalseimapisliceizipizip_longestpermutationsrepeatstarmap	takewhileteezip_longestc                  G   s   d S r	   r
   rc   r
   r
   r   r   I  r   )r   )productc                 C   s   d S r	   r
   ar
   r
   r   r   O  r   c                 C   s   d S r	   r
   r   br
   r
   r   r   Q  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   S  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   U  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   W  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   Y  r   c                 C   s   d S r	   r
   r   r   rO   r
   r
   r   r   [  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   ]  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   _  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   a  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   c  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   e  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   g  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   i  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   k  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   m  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   o  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   q  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   s  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   u  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   w  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   y  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   {  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   }  r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r   rO   dr
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 G   s   d S r	   r
   )attrr   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r   	  r   c                 G   s   d S r	   r
   )itemr   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   )r   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 O   s   d S r	   r
   )r/   r   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r     r   c                 C   s   d S r	   r
   r   r
   r
   r   r      r   c                 C   s   d S r	   r
   r   r
   r
   r   r   "  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   $  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   &  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   (  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   *  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   ,  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   .  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   0  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   2  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   4  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   6  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   8  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   :  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   <  r   c                 C   s   d S r	   r
   r   r
   r
   r   r   >  r   )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_digestri   addand_
attrgetterconcatcontainscountOfdelitemZdelslice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_posr   r   rshiftZsequenceIncludessetitemZsetslicesubtruedivtruthxorc                  O   s   d S r	   r
   r   r   r
   r
   r   r   C  r   c                 C   s   d S r	   r
   )excrK   handlerr
   r
   r   r   E  r   c                 C   s   d S r	   r
   )rK   r   r   r
   r
   r   r   G  r   c                  G   s   d S r	   r
   funcsr
   r
   r   r   I  r   c                 C   s   d S r	   r
   )rK   cacher   r
   r
   r   r   K  r   )ZcurryZexceptsZflipZjuxtmemoizeZtoolzc                 C   s   d S r	   r
   rT  r
   r
   r   r   P  r   c                 C   s   d S r	   r
   )rQ   rR   rS   rT   Zclassvalr
   r
   r   r   R  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)kindPOSITIONAL_OR_KEYWORDr   empty.0r   r
   r
   r   	<genexpr>Y  s    znum_pos_args.<locals>.<genexpr>)r   
parametersvalues)sigspecr
   r
   r   num_pos_argsW  s    ra  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 r	   )rX  VAR_KEYWORDr[  r
   r
   r   r]  b  s   z'get_exclude_keywords.<locals>.<genexpr>Nc                 s   s   | ]}|j V  qd S r	   )r/   r[  r
   r
   r   r]  g  s     )rk   r^  r_  r   r   )num_pos_onlyr`  Z
has_kwargsZpos_argsr
   r
   r   get_exclude_keywords^  s    rd  c              	   C   s,   zt | W S  ttfk
r&   Y d S X d S r	   )inspect	signature
ValueError	TypeError)rK   r
   r
   r   signature_or_specj  s    ri  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
   )r   r   r   AssertionErrorri  ra  rd  )sigrc  rK   keyword_onlyr`  keyword_excluder
   r
   r   
expand_sigq  s    



ro  c                 C   sd   |   D ]V\}}t|tr"t|}|  D ]2\}}t||r*tdd |D }||t||< q*qd S )Nc                 s   s   | ]}t |V  qd S r	   )ro  r\  rl  r
   r
   r   r]    s     z,create_signature_registry.<locals>.<genexpr>)itemsr   r   r   r   r   r   )module_info
signaturesr]   infor/   sigsZnew_sigsr
   r
   r   create_signature_registry  s    

rv  c                 C   sj   | \}}}}t ||k rdS |r>t|}|D ]}||d q,z||| W dS  tk
rd   Y dS X dS )z4 Like ``is_valid_args`` for the given signature specFNT)r   ra   poprh  )rl  r   r   rc  rK   rn  r`  r   r
   r
   r   check_valid  s    
rx  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 r	   )rx  rp  rQ  r
   r   r]    s     z!_is_valid_args.<locals>.<genexpr>rs  rk   rK   r   r   ru  r
   rQ  r   _is_valid_args  s    r{  c           	      C   s`   | \}}}}t ||k r0d|t |  }|| }|rRt|}|D ]}||d q@t||||S )z6 Like ``is_partial_args`` for the given signature specr	   N)r   ra   rw  r   )	rl  r   r   rc  rK   rn  r`  padr   r
   r
   r   check_partial  s    r}  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 r	   )r}  rp  rQ  r
   r   r]    s     z#_is_partial_args.<locals>.<genexpr>ry  rz  r
   rQ  r   _is_partial_args  s    r~  c                 C   s(   |\}}}}|s|| krdS t | ||S )NF)r   )r   rl  rc  rK   rn  r`  r
   r
   r   check_arity  s    r  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
   )r  rp  r   r
   r   
<listcomp>  s     z_is_arity.<locals>.<listcomp>TFrs  rj   rk   )r   rK   ru  checksr
   r  r   	_is_arity  s    r  c                 C   s   | \}}}}t ||S r	   )r   rl  rc  rK   rn  r`  r
   r
   r   check_varargs  s    r  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
   )r  rp  r
   r
   r   r    s     z _has_varargs.<locals>.<listcomp>TFr  rK   ru  r  r
   r
   r   _has_varargs  s    r  c                 C   s   | \}}}}|rdS t ||S )NT)r   r  r
   r
   r   check_keywords  s    r  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
   )r  rp  r
   r
   r   r    s     z!_has_keywords.<locals>.<listcomp>TFr  r  r
   r
   r   _has_keywords  s    r  c                 C   s   | \}}}}t ||S r	   )r   r  r
   r
   r   check_required_args  s    r  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
   )r  rp  r
   r
   r   r    s     z&_num_required_args.<locals>.<listcomp>r   c                 3   s   | ]}| kV  qd S r	   r
   r[  valr
   r   r]    s     z%_num_required_args.<locals>.<genexpr>)rs  rj   )rK   ru  valsr
   r  r   _num_required_args	  s    r  )F)r    r!   )r   r   )r   )r:   r;   )r>   )r   )rC   )r   )rC   )NNNN)r   )rb   r    r!   )NNNN)r    r!   )r   Fr;   )r:   r;   NNNTN)rb   r   r!   )N)r   r   )N)r   )r   )N)NNN)NNN)NNNNN)#__doc__	functoolsre  	itertoolsoperator	importlibr   Z	functoolzr   r   r   r   r   builtinsrr  ra   updatera  rd  ri  ro  rs  rv  rx  r{  r}  r~  r  r  r  r  r  r  r  r  r
   r
   r
   r   <module>   s  









 
 ?
  
      








2  u	"
