
    ":hKP                        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i dd gdd	 gd
d d gdd gdd d d gdd gdd gdddgdd d d gdd d d d gd!d" gd#d$ gd%d& gd'd( gd)d* gd+d!d,gd-d. gd/d0 d1 gd2d3 d4 gd5d6 gd7dd"d8fgd9d: d; d< gd=d> d? d@ gdAdd#dBfgdCdD gdEd$dFgdGdH dI gdJdK dL gdMdN dO gdPdQ gdRdS gdTdU gdVdW gdXdY gdZd[ d\ gd]d"d^dd%d_fgd`da gdbdc gddde gdfdg dh gdidj gdkdl dm gdndo gdpd"dqdd%drfgdsdt gduddv fgdwdx dy gdzd{ gd|d} gd~d gdd d gdd&dgdd d d gdd d gdd d gdd gdd gdd gddd"dfgdd d gdd gdd d d gdd gdd d gdd d gdd d gdd d gdd gdd d'dgdd d gdd d d gdd gddd dfgdd	 d&dfgee<   d dÄ dĄ gee   d<   ee   j!                  dƄ gdǄ dȄ d dɄgd	 d(dʄfgdd˄ dfdd̈́ dfgddτ dfddЄ dfgd	 d)dфfgdd҄ dfgd*dԄgի       ddք dfgee   d<    eddل fgdڄ gdۄ gd܄ d݄ gޫ      ee<    edi ddd+dfgdd gddd fgddd fgddd fgdd,dgdd gdd gdd gddd+dfgdd gdd gdd gdd d d gdd gddd  dfgdd gddd"dfgddd dfgd	dd"d
fgdd gdd gdd d gddd dfgee<    edi 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d0d1 gd2d3 gd4d5 gd6d7 gd8d9 gd:d; gd<d= gd>d? gd@dA gdBdC gdDdE gdFdG gdHdI gdJdK gdLdM gdNdO gdPdQ gdRdS gdTdU gdVdW gdXdY gdZd[ gd\d] gd^d_ gd`da gdbdc gddde gdfdg gdhdi gdjdk gdldm gdndo gdpdq gdrds gdtdu gdvdw gdxdy gdz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ʄ gdːd̄ gd͐d΄ gdϐdЄ gdѐd҄ gdӐdԄ gdՐdք g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dd gdd gdd gdd gdd gdd gdd gd d gee<    edd fgdd+dfgdd-dfgdd fgdd-dfg      ed<    edd	 fgd	 d.d
fg      ed<   d Zd Zd Zd Zi ZeefdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"y(/  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_argsabsc                      y N xs    d/var/www/html/turnos/venv/lib/python3.12/site-packages/ccxt/static_dependencies/toolz/_signatures.py<lambda>r   -           allc                      y r   r   iterables    r   r   r   /   r   r   anextc                      y r   r   )	aiterators    r   r   r   1   r   r   c                      y r   r   )r   defaults     r   r   r   2   r   r   anyc                      y r   r   r   s    r   r   r   4   r   r   applyc                      y r   r   objects    r   r   r   6   r   r   c                      y r   r   )r"   argss     r   r   r   7   r   r   c                      y r   r   )r"   r$   kwargss      r   r   r   8   r   r   asciic                      y r   r   objs    r   r   r   :   r   r   binc                      y r   r   numbers    r   r   r   <   r   r   boolc                      y r   r   r   s    r   r   r   >   r   r   bufferc                      y r   r   r!   s    r   r   r   @   r   r   c                      y r   r   )r"   offsets     r   r   r   A   r   r   c                      y r   r   )r"   r4   sizes      r   r   r   B   r   r   	bytearrayc                       y r   r   r   r   r   r   r   D   r   r   c                      y r   r   ints    r   r   r   E   r   r   c                      y r   r   stringencodingerrorss      r   r   r   F   r   r   callablec                      y r   r   r)   s    r   r   r   H   r   r   chrc                      y r   r   is    r   r   r   J   r   r   classmethodc                      y r   r   functions    r   r   r   L   r   r   cmpc                      y r   r   r   ys     r   r   r   N   r   r   coercec                      y r   r   rM   s     r   r   r   P   r   r   complexc                      y r   r   )realimags     r   r   r   R   r   r   delattrc                      y r   r   r*   names     r   r   r   T   r   r   dictc                       y r   r   )r&   s    r   r   r   V   r   r   c                      y r   r   )mappingr&   s     r   r   r   W   r   r   dirc                       y r   r   r   r   r   r   r   Y   r   r   c                      y r   r   r!   s    r   r   r   Z   r   r   divmodc                      y r   r   rM   s     r   r   r   \   r   r   	enumeratec                      y r   r   r   starts     r   r   r   ^   r   r   evalc                      y r   r   sources    r   r   r   `   r   r   c                      y r   r   ri   globalss     r   r   r   a   r   r   c                      y r   r   ri   rl   localss      r   r   r   b   r   r   execfilec                      y r   r   )filenames    r   r   r   d   r   r   c                      y r   r   )rr   rl   s     r   r   r   e   r   r   c                      y r   r   )rr   rl   ro   s      r   r   r   f   r   r   filec                      y r   r   )rX   mode	bufferings      r   r   r   h   r   r   filterc                      y r   r   )rJ   r   s     r   r   r   j   r   r   floatc                      y r   r   r   s    r   r   r   l   r   r   formatc                      y r   r   )values    r   r   r   n   r   r   c                      y r   r   )r   format_specs     r   r   r   o   r   r   	frozensetc                       y r   r   r   r   r   r   r   q   r   r   c                      y r   r   r   s    r   r   r   r   r   r   getattrc                      y r   r   )r"   rX   s     r   r   r   t   r   r   c                      y r   r   )r"   rX   r   s      r   r   r   u   r   r   rl   c                       y r   r   r   r   r   r   r   w   r   r   hasattrc                      y r   r   rW   s     r   r   r   y   r   r   hashc                      y r   r   r)   s    r   r   r   {   r   r   hexc                      y r   r   r-   s    r   r   r   }   r   r   idc                      y r   r   r)   s    r   r   r      r   r   inputc                       y r   r   r   r   r   r   r      r   r   c                      y r   r   prompts    r   r   r      r   r   r;   c                      y r   r   r   s    r   r   r      r   r   c                      y r   r   r   bases     r   r   r      r   r   internc                      y r   r   )r>   s    r   r   r      r   r   
isinstancec                      y r   r   )r*   class_or_tuples     r   r   r      r   r   
issubclassc                      y r   r   )clsr   s     r   r   r      r   r   iterc                      y r   r   r   s    r   r   r      r   r   c                      y r   r   )rA   sentinels     r   r   r      r   r   lenc                      y r   r   r)   s    r   r   r      r   r   listc                       y r   r   r   r   r   r   r      r   r   c                      y r   r   r   s    r   r   r      r   r   ro   c                       y r   r   r   r   r   r   r      r   r   longc                      y r   r   r   s    r   r   r      r   r   c                      y r   r   r   s     r   r   r      r   r   mapc                      y r   r   funcsequence	iterabless      r   r   r      r   r   
memoryviewc                      y r   r   r!   s    r   r   r      r   r   nextc                      y r   r   )iterators    r   r   r      r   r   c                      y r   r   )r   r   s     r   r   r      r   r   r"   c                       y r   r   r   r   r   r   r      r   r   octc                      y r   r   r-   s    r   r   r      r   r   ordc                      y r   r   )cs    r   r   r      r   r   powc                      y r   r   rM   s     r   r   r      r   r   c                      y r   r   )r   rN   zs      r   r   r      r   r   propertyc                      y r   r   )fgetfsetfdeldocs       r   r   r      r   r   rangec                      y r   r   stops    r   r   r      r   r   c                      y r   r   re   r   s     r   r   r      r   r   c                      y r   r   re   r   steps      r   r   r      r   r   	raw_inputc                       y r   r   r   r   r   r   r      r   r   c                      y r   r   r   s    r   r   r      r   r   reducec                      y r   r   rJ   r   s     r   r   r      r   r   c                      y r   r   rJ   r   initials      r   r   r      r   r   reloadc                      y r   r   )modules    r   r   r      r   r   reprc                      y r   r   r)   s    r   r   r      r   r   reversedc                      y r   r   )r   s    r   r   r      r   r   roundc                      y r   r   )r.   ndigitss     r   r   r      r   r   setc                       y r   r   r   r   r   r   r      r   r   c                      y r   r   r   s    r   r   r      r   r   setattrc                      y r   r   )r*   rX   r   s      r   r   r      r   r   slicec                      y r   r   r   s    r   r   r      r   r   c                      y r   r   r   s     r   r   r      r   r   c                      y r   r   r   s      r   r   r      r   r   staticmethodc                      y r   r   rI   s    r   r   r      r   r   sumc                      y r   r   r   s    r   r   r      r   r   c                      y r   r   rd   s     r   r   r      r   r   superc                      y r   r   )types    r   r   r      r   r   c                      y r   r   )r   r*   s     r   r   r      r   r   tuplec                       y r   r   r   r   r   r   r      r   r   c                      y r   r   r   s    r   r   r      r   r   r   c                      y r   r   r!   s    r   r   r      r   r   c                      y r   r   )rX   basesrY   s      r   r   r      r   r   unichrc                      y r   r   rE   s    r   r   r      r   r   unicodec                      y r   r   r!   s    r   r   r      r   r   c                      y r   r   r=   s      r   r   r      r   r   varsc                       y r   r   r   r   r   r   r      r   r   c                      y r   r   r!   s    r   r   r      r   r   xrangec                      y r   r   r   s    r   r   r      r   r   c                      y r   r   r   s     r   r   r      r   r   c                      y r   r   r   s      r   r   r      r   r   zipc                       y r   r   r   s    r   r   r      r   r   __build_class__   c                      y r   r   )r   rX   r   kwdss       r   r   r      r   r   )	metaclass
__import__c                      	 y r   r   )rX   rl   ro   fromlistlevels        r   r   r      s
     r   c                      y r   r   rh   s    r   r   r      r   r   c                      y r   r   rk   s     r   r   r      r   r   c                      y r   r   rn   s      r   r   r      r   r   execc                       y r   r   )r$   kwss     r   r   r      r   r   c                       y r   r   r   r   r   r   r      r   r   c                      y r   r   r:   s    r   r   r      r   r   c                      y r   r   r=   s      r   r   r      r   r   c                      	 y r   r   )ri   rr   rw   flagsdont_inheritoptimizes         r   r   r      s
    -1 r   c                      y r   r   r   s    r   r   r      r   r   )r   keyc                      y r   r   arg1arg2r$   s      r   r   r      r   r   )r%  c                      y r   r   r   s    r   r   r      r   r   c                      y r   r   r'  s      r   r   r      r   r   c                      	 y r   r   )ru   rw   rx   r?   r@   newlineclosefdopeners           r   r   r      s
    BF r   c                      y r   r   r   s    r   r   r     r   r   )r%  reversec                      y r   r   )r"   r?   r@   s      r   r   r     r   r   )
breakpointbytescompilemaxminopensortedstrc                       y r   r   )r$   s    r   r   r     r   r   )sependru   flushprintc                      y r   r   )mycmps    r   r   r     r   r   c                      y r   r   r   r$   r&   s      r   r   r     r   r   c                      y r   r   rC  s      r   r   r     r   r   c                      y r   r   r   s     r   r   r     r   r   c                      y r   r   r   s      r   r   r     r   r   )
cmp_to_keypartialpartialmethodr   
accumulatec                      y r   r   )r   r   s     r   r   r     r   r   chainc                       y r   r   r  s    r   r   r     r   r   combinationsc                      y r   r   r   rs     r   r   r     r   r   combinations_with_replacementc                      y r   r   rP  s     r   r   r     r   r   compressc                      y r   r   )data	selectorss     r   r   r     r   r   countc                      y r   r   )re   r   s     r   r   r   !  r   r   cyclec                      y r   r   r   s    r   r   r   #  r   r   	dropwhilec                      y r   r   	predicater   s     r   r   r   %  r   r   filterfalsec                      y r   r   r   s     r   r   r   '  r   r   groupbyc                      y r   r   )r   r%  s     r   r   r   )  r   r   ifilterc                      y r   r   r   s     r   r   r   +  r   r   ifilterfalsec                      y r   r   r   s     r   r   r   -  r   r   imapc                      y r   r   r   s      r   r   r   /  r   r   islicec                      y r   r   )r   r   s     r   r   r   1  r   r   c                      y r   r   )r   re   r   s      r   r   r   2  r   r   c                      y r   r   )r   re   r   r   s       r   r   r   3  r   r   izipc                       y r   r   r  s    r   r   r   5  r   r   izip_longestc                       y r   r   r  s    r   r   r   7  r   r   )	fillvaluepairwisec                      y r   r   r   s    r   r   r   9  r   r   permutationsc                      y r   r   rP  s     r   r   r   ;  r   r   productc                       y r   r   r  s    r   r   r   =  r   r   )repeatry  c                      y r   r   )r"   timess     r   r   r   ?  r   r   starmapc                      y r   r   r   s     r   r   r   A  r   r   	takewhilec                      y r   r   r^  s     r   r   r   C  r   r   teec                      y r   r   r   s    r   r   r   E  r   r   c                      y r   r   )r   ns     r   r   r   F  r   r   zip_longestc                       y r   r   r  s    r   r   r   H  r   r   __abs__c                      y r   r   as    r   r   r   N  r   r   __add__c                      y r   r   r  bs     r   r   r   P  r   r   __and__c                      y r   r   r  s     r   r   r   R  r   r   
__concat__c                      y r   r   r  s     r   r   r   T  r   r   __contains__c                      y r   r   r  s     r   r   r   V  r   r   __delitem__c                      y r   r   r  s     r   r   r   X  r   r   __delslice__c                      y r   r   r  r  r   s      r   r   r   Z  r   r   __div__c                      y r   r   r  s     r   r   r   \  r   r   __eq__c                      y r   r   r  s     r   r   r   ^  r   r   __floordiv__c                      y r   r   r  s     r   r   r   `  r   r   __ge__c                      y r   r   r  s     r   r   r   b  r   r   __getitem__c                      y r   r   r  s     r   r   r   d  r   r   __getslice__c                      y r   r   r  s      r   r   r   f  r   r   __gt__c                      y r   r   r  s     r   r   r   h  r   r   __iadd__c                      y r   r   r  s     r   r   r   j  r   r   __iand__c                      y r   r   r  s     r   r   r   l  r   r   __iconcat__c                      y r   r   r  s     r   r   r   n  r   r   __idiv__c                      y r   r   r  s     r   r   r   p  r   r   __ifloordiv__c                      y r   r   r  s     r   r   r   r  r   r   __ilshift__c                      y r   r   r  s     r   r   r   t  r   r   __imatmul__c                      y r   r   r  s     r   r   r   v  r   r   __imod__c                      y r   r   r  s     r   r   r   x  r   r   __imul__c                      y r   r   r  s     r   r   r   z  r   r   	__index__c                      y r   r   r  s    r   r   r   |  r   r   __inv__c                      y r   r   r  s    r   r   r   ~  r   r   
__invert__c                      y r   r   r  s    r   r   r     r   r   __ior__c                      y r   r   r  s     r   r   r     r   r   __ipow__c                      y r   r   r  s     r   r   r     r   r   __irepeat__c                      y r   r   r  s     r   r   r     r   r   __irshift__c                      y r   r   r  s     r   r   r     r   r   __isub__c                      y r   r   r  s     r   r   r     r   r   __itruediv__c                      y r   r   r  s     r   r   r     r   r   __ixor__c                      y r   r   r  s     r   r   r     r   r   __le__c                      y r   r   r  s     r   r   r     r   r   
__lshift__c                      y r   r   r  s     r   r   r     r   r   __lt__c                      y r   r   r  s     r   r   r     r   r   
__matmul__c                      y r   r   r  s     r   r   r     r   r   __mod__c                      y r   r   r  s     r   r   r     r   r   __mul__c                      y r   r   r  s     r   r   r     r   r   __ne__c                      y r   r   r  s     r   r   r     r   r   __neg__c                      y r   r   r  s    r   r   r     r   r   __not__c                      y r   r   r  s    r   r   r     r   r   __or__c                      y r   r   r  s     r   r   r     r   r   __pos__c                      y r   r   r  s    r   r   r     r   r   __pow__c                      y r   r   r  s     r   r   r     r   r   
__repeat__c                      y r   r   r  s     r   r   r     r   r   
__rshift__c                      y r   r   r  s     r   r   r     r   r   __setitem__c                      y r   r   r  s      r   r   r     r   r   __setslice__c                      y r   r   r  r  r   ds       r   r   r     r   r   __sub__c                      y r   r   r  s     r   r   r     r   r   __truediv__c                      y r   r   r  s     r   r   r     r   r   __xor__c                      y r   r   r  s     r   r   r     r   r   _absc                      y r   r   r   s    r   r   r     r   r   _compare_digestc                      y r   r   r  s     r   r   r     r   r   c                      y r   r   r  s    r   r   r     r   r   addc                      y r   r   r  s     r   r   r     r   r   and_c                      y r   r   r  s     r   r   r     r   r   
attrgetterc                      y r   r   )attrr$   s     r   r   r     r   r   concatc                      y r   r   r  s     r   r   r     r   r   containsc                      y r   r   r  s     r   r   r     r   r   countOfc                      y r   r   r  s     r   r   r     r   r   delitemc                      y r   r   r  s     r   r   r     r   r   delslicec                      y r   r   r  s      r   r   r     r   r   divc                      y r   r   r  s     r   r   r     r   r   eqc                      y r   r   r  s     r   r   r     r   r   floordivc                      y r   r   r  s     r   r   r     r   r   gec                      y r   r   r  s     r   r   r     r   r   getitemc                      y r   r   r  s     r   r   r     r   r   getslicec                      y r   r   r  s      r   r   r     r   r   gtc                      y r   r   r  s     r   r   r     r   r   iaddc                      y r   r   r  s     r   r   r     r   r   iandc                      y r   r   r  s     r   r   r     r   r   iconcatc                      y r   r   r  s     r   r   r     r   r   idivc                      y r   r   r  s     r   r   r     r   r   	ifloordivc                      y r   r   r  s     r   r   r     r   r   ilshiftc                      y r   r   r  s     r   r   r     r   r   imatmulc                      y r   r   r  s     r   r   r     r   r   imodc                      y r   r   r  s     r   r   r     r   r   imulc                      y r   r   r  s     r   r   r     r   r   indexc                      y r   r   r  s    r   r   r     r   r   indexOfc                      y r   r   r  s     r   r   r     r   r   invc                      y r   r   r  s    r   r   r     r   r   invertc                      y r   r   r  s    r   r   r     r   r   iorc                      y r   r   r  s     r   r   r     r   r   ipowc                      y r   r   r  s     r   r   r     r   r   irepeatc                      y r   r   r  s     r   r   r     r   r   irshiftc                      y r   r   r  s     r   r   r     r   r   is_c                      y r   r   r  s     r   r   r     r   r   is_notc                      y r   r   r  s     r   r   r     r   r   
isCallablec                      y r   r   r  s    r   r   r      r   r   isMappingTypec                      y r   r   r  s    r   r   r     r   r   isNumberTypec                      y r   r   r  s    r   r   r     r   r   isSequenceTypec                      y r   r   r  s    r   r   r     r   r   isubc                      y r   r   r  s     r   r   r     r   r   
itemgetterc                      y r   r   )itemr$   s     r   r   r   
  r   r   itruedivc                      y r   r   r  s     r   r   r     r   r   ixorc                      y r   r   r  s     r   r   r     r   r   lec                      y r   r   r  s     r   r   r     r   r   length_hintc                      y r   r   r)   s    r   r   r     r   r   c                      y r   r   )r*   r   s     r   r   r     r   r   lshiftc                      y r   r   r  s     r   r   r     r   r   ltc                      y r   r   r  s     r   r   r     r   r   matmulc                      y r   r   r  s     r   r   r     r   r   methodcallerc                      y r   r   )rX   r$   r&   s      r   r   r     r   r   modc                      y r   r   r  s     r   r   r     r   r   mulc                      y r   r   r  s     r   r   r     r   r   nec                      y r   r   r  s     r   r   r   !  r   r   negc                      y r   r   r  s    r   r   r   #  r   r   not_c                      y r   r   r  s    r   r   r   %  r   r   or_c                      y r   r   r  s     r   r   r   '  r   r   posc                      y r   r   r  s    r   r   r   )  r   r   c                      y r   r   r  s     r   r   r   +  r   r   c                      y r   r   r  s     r   r   r   -  r   r   rshiftc                      y r   r   r  s     r   r   r   /  r   r   sequenceIncludesc                      y r   r   r  s     r   r   r   1  r   r   setitemc                      y r   r   r  s      r   r   r   3  r   r   setslicec                      y r   r   r  s       r   r   r   5  r   r   subc                      y r   r   r  s     r   r   r   7  r   r   truedivc                      y r   r   r  s     r   r   r   9  r   r   truthc                      y r   r   r  s    r   r   r   ;  r   r   xorc                      y r   r   r  s     r   r   r   =  r   r   c                       y r   r   )r$   r&   s     r   r   r   B  r   r   c                      y r   r   )excr   handlers      r   r   r   D  r   r   c                      y r   r   )r   r  r  s      r   r   r   F  r   r   c                       y r   r   funcss    r   r   r   H  r   r   c                      y r   r   )r   cacher%  s      r   r   r   J  r   r   )curryexceptsflipjuxtmemoizetoolzc                      y r   r   r  s    r   r   r   O  r   r   c                      	 y r   r   )r   r   r   r   classvals        r   r   r   Q  s
     r   )ComposeInstancePropertyztoolz.functoolzc                 V    t        d | j                  j                         D              S )z@ Return the number of positional arguments.  ``f(x, y=1)`` has 1c              3      K   | ]7  }|j                   |j                  k(  r|j                  |j                  u rd  9 yw)r   N)kindPOSITIONAL_OR_KEYWORDr   empty.0r   s     r   	<genexpr>znum_pos_args.<locals>.<genexpr>X  s9      )Q&&A33399'  )s   =?)r   
parametersvalues)sigspecs    r   num_pos_argsr  V  s*     )',,335 ) ) )r   c                     | dk(  ryt        d |j                  j                         D              }|syt        |j                  j                               d|  }t	        d |D              S )zA Return the names of position-only arguments if func has **kwargsr   r   c              3   N   K   | ]  }|j                   |j                  k(    y wr   )r  VAR_KEYWORDr  s     r   r  z'get_exclude_keywords.<locals>.<genexpr>a  s%      ; VVq}}, ;s   #%Nc              3   4   K   | ]  }|j                     y wr   )rX   r  s     r   r  z'get_exclude_keywords.<locals>.<genexpr>f  s     *A*s   )r   r  r  r   r   )num_pos_onlyr  
has_kwargspos_argss       r   get_exclude_keywordsr  ]  sj    q ;%00779; ;JG&&--/0,?H****r   c                 X    	 t        j                  |       S # t        t        f$ r Y y w xY wr   )inspect	signature
ValueError	TypeError)r   s    r   signature_or_specr  i  s/      &&	" s    ))c                     t        | t              r<t        |       dk(  r| \  }}}t        | d   t              s	J | \  }}d}t        |      }n| }t        |      }t	        |      }d}t        ||      }||||z   |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  r  r  )sigr  r   keyword_onlyr  keyword_excludes         r   
expand_sigr  p  s    " #us8q=/2,L$c"gu---!$L$L#D)#D)#G,*<AO|o=wFFr   c                     | j                         D ]f  \  }}t        |t              rt        |      }|j                         D ]3  \  }}t	        ||      st        d |D              }||t        ||      <   5 h y )Nc              3   2   K   | ]  }t        |        y wr   )r  )r  r  s     r   r  z,create_signature_registry.<locals>.<genexpr>  s      ASC As   )itemsr   r:  r   r   r   r   )module_info
signaturesr   inforX   sigsnew_sigss          r   create_signature_registryr    sv    #))+ =fc""6*F**, 	=JD$vt$  AD AA4<
76401	==r   c                     | \  }}}}t        |      |k  ry|r$t        |      }|D ]  }|j                  |d        	  ||i | y# t        $ r Y yw xY w)z4 Like ``is_valid_args`` for the given signature specFNT)r   rY   popr  )r  r$   r&   r  r   r  r  rK  s           r   check_validr    so    360L$
4y<f# 	#DJJtT"	#df s   A 	AAc                 T    | t         vryt         |    }t        fd|D              S )zC Like ``is_valid_args`` for builtins in our ``signatures`` registryNc              3   8   K   | ]  }t        |        y wr   )r  r  r  r$   r&   s     r   r  z!_is_valid_args.<locals>.<genexpr>  s     >#{3f->   r  r   r   r$   r&   r  s    `` r   _is_valid_argsr    s)    :dD>>>>r   c                     | \  }}}}t        |      |k  rd|t        |      z
  z  }||z   }|r$t        |      }|D ]  }|j                  |d        t        ||||      S )z6 Like ``is_partial_args`` for the given signature specr   N)r   rY   r  r   )	r  r$   r&   r  r   r  r  padrK  s	            r   check_partialr    sr    360L$
4y<D	12czf# 	#DJJtT"	#4vw77r   c                 T    | t         vryt         |    }t        fd|D              S )zE Like ``is_partial_args`` for builtins in our ``signatures`` registryNc              3   8   K   | ]  }t        |        y wr   )r  r  s     r   r  z#_is_partial_args.<locals>.<genexpr>  s     @C}S$/@r  r  r  s    `` r   _is_partial_argsr    s)    :dD@4@@@r   c                 :    |\  }}}}|s|| kD  ryt        | ||      S )NF)r   )r  r  r  r   r  r  s         r   check_arityr    s,    360L$,*AtW%%r   c                     |t         vry t         |   }|D cg c]  }t        | |       }}t        |      ryt        |      ry yc c}w NTF)r  r  r   r   )r  r   r  r  checkss        r   	_is_arityr    sM    :dD-12ck!S!2F2
6{	V 3s   Ac                 (    | \  }}}}t        ||      S r   )r   r  r  r   r  r  s        r   check_varargsr    s    360L$tW%%r   c                     | t         vry t         |    }|D cg c]  }t        |       }}t        |      ryt        |      ry yc c}w r  )r  r  r   r   r   r  r  r  s       r   _has_varargsr    sK    :dD,01SmC 1F1
6{	V 2   Ac                 .    | \  }}}}|ryt        ||      S )NT)r   r  s        r   check_keywordsr    s#    360L$g&&r   c                     | t         vry t         |    }|D cg c]  }t        |       }}t        |      ryt        |      ry yc c}w r  )r  r  r   r   r  s       r   _has_keywordsr    sK    :dD-12cnS!2F2
6{	V 3r  c                 (    | \  }}}}t        ||      S r   )r	   r  s        r   check_required_argsr    s    360L$T7++r   c                     | t         vry t         |    }|D cg c]  }t        |       }}|d   t        fd|D              rS y c c}w )Nr   c              3   (   K   | ]	  }|k(    y wr   r   )r  r   vals     r   r  z%_num_required_args.<locals>.<genexpr>  s     
"18
"s   )r  r  r   )r   r  r  valsr  s       @r   _num_required_argsr    sU    :dD045$5D5
q'C

"T
""
	 6s   Ar   )F)utf8strict)r   r   )r   )rQ  r  )g        )
   )NNNN) r  r  )r   Fr  )rQ  r  NNNTN)r  utfr  r   )r   r   )NNN)NNNNN)#__doc__	functoolsr  	itertoolsoperator	importlibr   	functoolzr   r   r   r   r	   builtinsr  rY   updater  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r     sz       #9 9 "  |	| 		| 	')| 		| 	!)+| 	|" 		!|& 	
%|* 	#)+)|2 	=?1|: 	9|> 		=|B 	A|F 		E|J 	I|N 	$%M|R 	 Q|V 	&
(U|\ 		[|b 	a|f 
*+-e|j 	$,
.i|r 	&.0q|z 
56
8y|~ 	()}|B 	A|F 	')E|L 	K|R 	"*,Q|X 	W|\ 	 [|` 	
_|d 		c|h 	g|l 	k|r 		
#$	&q|x 	w|| 	)*{|@ 	)*|D 	'
)C|J 		I|N 	
M|T 	S|X 		
#$
&W|^ 	0	1]|b 
 "a|f 	&
(e|l 	k|p 		o|t 		s|x 		w|~ 	?@}|B 	 &(A|J 	I|P 	(02O|V 	U|Z 	
Y|^ 	]|b 
*+-a|f 		e|l 	&'k|p 	 &(o|x 	w|| 	$	&{|B 	 A|H 	G|N 	&
(M|T 	S|X 	@BW|^ 	
]|d 	 &(c|l 	 	!k|p 
3^DFo|t 
 	s|H |  (!*H f 
 H   !# 	=?
 
)+2 	34 
!#67	
*H5	7 
!#67	
*H5	7 
<@G 	H
I 
!#568 	@	A+  2 <="?H g  	
! 	+, 	+, 	(02
I   4	
,-/4 	 !4 
$%'4 
$%#'4 
()+4 	%&4 	4  	)*4$ 	()#4( 
+,.'4, 	()+40 	()/44 	0
1348 	$*0274@ 	 
!?4D 
#^46C4H 	G4L 
&')K4P 
#[13O4T 
()+S4X 	()W4\ 	)*[4` 	 	"_4f 
#^46e4I n  rr 	r 	r 	r 	r 	r 	r  	r$ 	#r( 	'r, 	+r0 	/r4 	3r8 	7r< 	;r@ 	?rD 	CrH 	GrL 	KrP 	OrT 	SrX 	Wr\ 	[r` 	_rd 	crh 	grl 	krp 	ort 	srx 	wr| 	{r@ 	rD 	CrH 	GrL 	KrP 	OrT 	SrX 	Wr\ 	[r` 	_rd 	crh 	grl 	krp 	ort 	srx 	wr| 	{r@ 	rD 	 !CrH 	GrL 	KrP 	OrT 	
SrX 	Wr\ 		[r` 		_rd 	
crh 	!"grl 	krp 	ort 	srx 	wr| 	{r@ 		rD 	CrH 	GrL 	KrP 	OrT 	SrX 	Wr\ 	
[r` 	
_rd 	crh 	
grl 	krp 	ort 	srx 	
wr| 	
{r@ 	rD 	CrH 		GrL 	KrP 		OrT 	
SrX 	Wr\ 	[r` 		_rd 	crh 	grl 	krp 	ort 	srx 	
wr| 	!"{r@ 	rD 	
CrH 	GrL 	!#KrR 	QrV 	UrZ 	Yr^ 	+,]rb 		arf 		erj 	irn 		mrr 	
qrv 		urz 		yr~ 		}rB 	ArF 	ErJ 	IrN 	MrR 	 !QrV 		UrZ 	Yr^ 	]rb 		arH h 	
()+ 
013 
23
5 
 
" 
89;G  "&	
! 
  	!"" )	+GD 
 +6* = ?
8A&	&
	'	,
r   