
    4bh                       	 d Z g dZddlZddlZddlZddlZddlZddlZ	ddl
Z
ddlZddlZddlZddlZddl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 ddlmZmZ ddlmZ  e       Zej>                  jA                         D ]  \  Z!Z"e!ede"z   <    [!["[d	Z#ddd
ddZ$d Z%d Z&d Z'd Z(d Z) e*ed      rd Z+nd Z+ e*ed      rd Z,nd Z,d Z-d Z.d Z/ e0       Z1d Z2d Z3d Z4d Z5d Z6d  Z7d! Z8d" Z9d# Z:d$ Z;d% Z<d& Z=d' Z>d( Z?d) Z@d* ZAdd+ZBdd,ZC ed-d.      ZDd/ ZEd0 ZFdd1d2ZGd3 ZHd4 ZId5 ZJd6 ZKd7 ZLd8 ZMd9 ZNd: ZOdd;ZPi ZQi ZRdd<ZS G d= d>eT      ZU G d? d@ej                        ZWdA ZXdB ZY G dC dDeT      ZZ G dE dF      Z[dG Z\dH Z]dI Z^dJ Z_ddKZ` edLdM      ZadN Zb edOdP      ZcdQ Zd edRdS      ZedT ZfddUZgdV ZheidW dX dY fdZZjd[ Zkd\ Zld] Zm ed^d_      Znd` Zo edadb      Zp G dc ddep      Zqde Zrdf ZsddgZtdh Zu edidjeqj                  z         Zw G dk dlew      ZxddmZyddnZzdo Z{ddpZ|ddqZ} e0       Z~ej                   dr   j                  Zej                   ds   j                  Zdt Zdu Z ej                         dv        Zdw Ze~fdxZdyZdzZd{Zd|Zd} Zd~ ZdZdZdZdZd Zd ZdZdZdZdZd Zd Zej8                  ej:                  ej<                  ej>                  fZd ZddZd Zd Zd Zd ZddZddZ	 	 ddZd Zddddd
ddZ G d d      Z G d d      Z G d dej\                        Zej`                  Zejd                  Zejh                  Zejl                  Zejp                  Z G d d      Z G d d      Z G d d      Zdddd
ddZ G d dej|                        Zd Zedk(  r e        yy))zKa-Ping Yee <ping@lfw.org>z'Yury Selivanov <yselivanov@sprymix.com>)hAGEN_CLOSEDAGEN_CREATEDAGEN_RUNNINGAGEN_SUSPENDEDArgInfo	Arguments	AttributeBlockFinderBoundArgumentsBufferFlagsCORO_CLOSEDCORO_CREATEDCORO_RUNNINGCORO_SUSPENDEDCO_ASYNC_GENERATORCO_COROUTINECO_GENERATORCO_ITERABLE_COROUTINE	CO_NESTEDCO_NEWLOCALS	CO_NOFREECO_OPTIMIZED
CO_VARARGSCO_VARKEYWORDSClassFoundExceptionClosureVars
EndOfBlock	FrameInfoFullArgSpec
GEN_CLOSEDGEN_CREATEDGEN_RUNNINGGEN_SUSPENDED	Parameter	SignatureTPFLAGS_IS_ABSTRACT	Tracebackclassify_class_attrscleandoccurrentframe
findsourceformatannotationformatannotationrelativetoformatargvaluesget_annotations
getabsfilegetargsgetargvaluesgetasyncgenlocalsgetasyncgenstategetattr_staticgetblockgetcallargsgetclasstreegetclosurevarsgetcommentsgetcoroutinelocalsgetcoroutinestategetdocgetfilegetframeinfogetfullargspecgetgeneratorlocalsgetgeneratorstategetinnerframes	getlineno
getmembersgetmembers_static	getmodulegetmodulenamegetmrogetouterframes	getsourcegetsourcefilegetsourcelines
indentsize
isabstract
isasyncgenisasyncgenfunctionisawaitable	isbuiltinisclassiscodeiscoroutineiscoroutinefunctionisdatadescriptorisframe
isfunctionisgeneratorisgeneratorfunctionisgetsetdescriptorismemberdescriptorismethodismethoddescriptorismethodwrapperismodule	isroutineistracebackmarkcoroutinefunction	signaturestacktraceunwrapwalktree    N)	iskeyword)
attrgetter)
namedtupleOrderedDict)refCO_i   Fglobalslocalseval_strc          
      t   	 t        | t              rt        | dd       }|r;t        |d      r/|j	                  dd       }t        |t
        j                        rd }nd }d }t        | dd       }|r/t        j                  j	                  |d       }|rt        |dd       }t        t        |             }	| }
npt        | t
        j                        rt        | dd       }t        | d      }d }	d }
n8t        |       rt        | dd       }t        | dd       }d }	| }
nt        | d      |i S t        |t              st        | d      |si S |st        |      S |
Z	 t        |
d      r|
j                  }
t        |
t         j"                        r|
j$                  }
A	 t        |
d      r|
j&                  }||}||	xs i }t        | d	d
      x}r|D ci c]  }|j(                  | c}|z  }|j+                         D ci c]%  \  }}|t        |t,              s|nt/        |||      ' }}}|S c c}w c c}}w )N__dict__get__annotations__
__module____globals__z% is not a module, class, or callable.z+.__annotations__ is neither a dict nor None__wrapped____type_params__ )
isinstancetypegetattrhasattrrw   typesGetSetDescriptorTypesysmodulesdictvars
ModuleTypecallable	TypeError
ValueErrorr{   	functoolspartialfuncrz   __name__itemsstreval)objrr   rs   rt   obj_dictannobj_globalsmodule_namemodule
obj_localsrh   type_paramsparamkeyvaluereturn_values                   1/opt/python-3.12.12/usr/lib/python3.12/inspect.pyr.   r.      s]   +X #t3
D1%0,,0$7C#u99:Cc<6[[__[$7F%fj$?$s)_
	C))	*c,d3c:.
	# c,d3c=$7
3'!FGHH
{	c4 C7"MNOO	Cyv}-++&)"3"346=) ,,K~!r
 c#4b99{95@A[E%..%'[AFJ ))+(%JC s+eWf1MN%  (  B(s   H/ *H4c                 8    	 t        | t        j                        S N)r~   r   r   objects    r   ra   ra   *  s    0fe..//    c                 $    	 t        | t              S r   )r~   r   r   s    r   rS   rS   .  s    /fd##r   c                 8    	 t        | t        j                        S r   )r~   r   
MethodTyper   s    r   r^   r^   2  s    :fe..//r   c                     	 t        |       st        |       st        |       ryt        |       }t	        |d      xr t	        |d       S )NF__get____set__rS   r^   rY   r   r   r   tps     r   r_   r_   6  sG    B v(6*j.@	fB2y!@'"i*@&@@r   c                     	 t        |       st        |       st        |       ryt        |       }t	        |d      xs t	        |d      S )NFr   
__delete__r   r   s     r   rW   rW   J  sC     v(6*j.@	fB2y!>WR%>>r   MemberDescriptorTypec                 8    	 t        | t        j                        S r   )r~   r   r   r   s    r   r]   r]   Z      	 &%"<"<==r   c                      	 yNFr}   r   s    r   r]   r]   b      	 r   r   c                 8    	 t        | t        j                        S r   )r~   r   r   r   s    r   r\   r\   k  r   r   c                      	 yr   r}   r   s    r   r\   r\   s  r   r   c                 8    	 t        | t        j                        S r   )r~   r   FunctionTyper   s    r   rY   rY   z  s    	I fe0011r   c                     	 t        |       r| j                  } t        |       rt        j                  |       } t	        |       st        |       syt        | j                  j                  |z        S r   )	r^   __func__r   _unwrap_partialrY   _signature_is_functionlikebool__code__co_flags)fflags     r   _has_code_flagr     s^     1+JJ 1+!!!$AqM7:

##d*++r   c                 $    	 t        | t              S r   )r   r   r   s    r   r[   r[     s    6 #|,,r   c                     t        |       r| j                  } t        |       rt        j                  |       } t	        | dd       t
        u S )N_is_coroutine_marker)r^   r   r   r   r   _is_coroutine_markr   s    r   _has_coroutine_markr     sA    
1+JJ 1+!!!$A1,d37IIIr   c                 N    	 t        | d      r| j                  } t        | _        | S )Nr   )r   r   r   r   )r   s    r   rd   rd     s)     tZ }} 2DKr   c                 >    	 t        | t              xs t        |       S r   )r   r   r   r   s    r   rV   rV     s!    
 #|,H0CC0HHr   c                 $    	 t        | t              S r   )r   r   r   s    r   rP   rP     s    
 #122r   c                 8    	 t        | t        j                        S r   )r~   r   AsyncGeneratorTyper   s    r   rO   rO     s    Afe6677r   c                 8    	 t        | t        j                        S r   )r~   r   GeneratorTyper   s    r   rZ   rZ     s    K fe1122r   c                 8    	 t        | t        j                        S r   )r~   r   CoroutineTyper   s    r   rU   rU     s    3fe1122r   c                    	 t        | t        j                        xsh t        | t        j                        xr& t	        | j
                  j                  t        z        xs$ t        | t        j                  j                        S r   )r~   r   r   r   r   gi_coder   r   collectionsabc	Awaitabler   s    r   rQ   rQ     sh    Ivu223 :vu223 FV^^,,/DDE: v{889;r   c                 8    	 t        | t        j                        S r   )r~   r   TracebackTyper   s    r   rc   rc     s    N fe1122r   c                 8    	 t        | t        j                        S r   )r~   r   	FrameTyper   s    r   rX   rX     s    
D feoo..r   c                 8    	 t        | t        j                        S r   )r~   r   CodeTyper   s    r   rT   rT     s    O, fenn--r   c                 8    	 t        | t        j                        S r   )r~   r   BuiltinFunctionTyper   s    r   rR   rR     s    H fe7788r   c                 8    	 t        | t        j                        S r   )r~   r   MethodWrapperTyper   s    r   r`   r`     s    8fe5566r   c                     	 t        |       xs2 t        |       xs% t        |       xs t        |       xs t	        |       S r   )rR   rY   r^   r_   r`   r   s    r   rb   rb     sJ    Ff '&!'' "&)' v&	(r   c                    	 t        | t              sy| j                  t        z  ryt	        t        |       t
        j                        syt        | d      ry| j                  j                         D ]  \  }}t        |dd      s y | j                  D ]1  }t        |dd      D ]  }t        | |d       }t        |dd      s  y 3 y)NFT__abstractmethods____isabstractmethod__r}   )r~   r   	__flags__r%   
issubclassr   ABCMetar   rv   r   r   	__bases__)r   namer   bases       r   rN   rN   !  s    Dfd#--d6lCKK0v,-  ,,.e50%8 /   D"7<DFD$/Eu4e< = !
 r   c                 l   g }t               }t        |       }t        |       rlt        |       }	 | j                  D ]P  }|j
                  j                         D ]1  \  }}	t        |	t        j                        s!|j                  |       3 R nd}|D ]E  }
	  || |
      }|
|v rt        	 |r ||      r|j                  |
|f       |j                  |
       G |j                  d        |S # t        $ r Y jw xY w# t        $ r+ |D ]!  }|
|j
                  v s|j
                  |
   } n Y Y w xY w)Nr}   c                     | d   S )Nrj   r}   )pairs    r   <lambda>z_getmembers.<locals>.<lambda>`  s    $q'r   r   )setdirrS   rH   r   rv   r   r~   r   DynamicClassAttributeappendAttributeErroraddsort)r   	predicategetterresults	processednamesmror   kvr   r   s               r   _getmembersr  9  s:   GIKEvVn	(( MM//1DAq!!U%@%@AQ 2 ) 	63'Ei$$   Ie,NNC<(c) * LL)L*N5  		  	$--' MM#.E  	 		s0   A	C0 9C0 C?0	C<;C<?D3D32D3c                 &    	 t        | |t              S r   )r  r   r   r   s     r   rD   rD   c  s    Gvy'22r   c                 &    	 t        | |t              S r   )r  r4   r  s     r   rE   rE   h  s    
 vy.99r   r   zname kind defining_class objectc           	      `   	 t        |       }t        t        |             }t        d |D              }| f|z   }||z   }t        |       }|D ]]  }|j                  j                         D ]>  \  }}t        |t        j                        s!|j                  .|j                  |       @ _ g }	t               }
|D ]R  }d }d }d }||
vrs	 |dk(  rt        d      t        | |      }t        |d|      }||vrEd }d }|D ]  }t        ||d       }||u s|} |D ]  }	 |j                  | |      }||u s|} ||}	 |D ]'  }||j                  v s|j                  |   }||vr|} n |||n|}t        |t         t        j"                  f      rd}|}nJt        |t$        t        j&                  f      rd}|}n%t        |t(              rd}|}nt+        |      rd}nd	}|	j                  t-        ||||             |
j/                  |       U |	S # t        $ r Y w xY w# t        $ r Y w xY w)
Nc              3   >   K   | ]  }|t         t        fvs|  y wr   )r   r   ).0clss     r   	<genexpr>z'classify_class_attrs.<locals>.<genexpr>  s     H7Cc$.GC7s   rv   z)__dict__ is special, don't want the proxy__objclass__zstatic methodzclass methodpropertymethoddata)rH   r   tupler   rv   r   r~   r   r   fgetr   r   	Exceptionr   __getattr__r   staticmethodBuiltinMethodTypeclassmethodClassMethodDescriptorTyper  rb   r   r   )r  r   metamroclass_bases	all_basesr   r   r   r   resultr   r   homeclsget_objdict_objlast_clssrch_clssrch_objr   kinds                       r   r'   r'   x  sz   4 +CT#YGH7HHG&3,Kg%IHE MM'')DAq!U889aff>PQ *  FI y +:%#$OPP!#t, "'>7C+- #G#H$/#*8T4#@#w.'/H %0
 %,%'/';';C'FH $w.'/H %,  +"*Dt}}$==.')"G  ?  ,g(hu/F/F GH"DC;0O0O"PQ!DC(+DCs^DDidGS9:dI J MC  . %$%%  s$   H!H	HH!	H-,H-c                     	 | j                   S r   )__mro__)r  s    r   rH   rH     s    N;;r   stopc                j   	 | }t        |      |i}t        j                         }t        | t              s~t        | d      rr| ||       r	 | S | j                  } t        |       }||v st        |      |k\  rt        dj                  |            | ||<   t        | t              st        | d      rr| S )Nr{   z!wrapper loop when unwrapping {!r})
idr   getrecursionlimitr~   r   r   r{   lenr   format)r   r$  r   memorecursion_limitid_funcs         r   rh   rh     s     	A qE1:D++-Ot$})ET
 K T(tOTo!=@GGJKKW t$})E Kr   c                 n    	 | j                         }t        |      t        |j                               z
  S r   )
expandtabsr(  lstrip)lineexplines     r   rM   rM     s,    LooGw<#gnn.///r   c                     t         j                  j                  | j                        }|y | j                  j                  d      d d D ]  }t        ||      } t        |      sy |S )N.)r   r   rw   ry   __qualname__splitr   rS   )r   r  r   s      r   
_findclassr7    s]    
++//$//
*C
{!!'',Sb1c4  23<Jr   c                 r   t        |       r.| j                  D ]  }|t        us	 |j                  }||c S  y t        |       rb| j                  j                  }| j                  }t        |      r't        t        ||d       d      | j                  u r|}nR|j                  }nDt        |       r)| j                  }t        |       }|t        ||      | ury t        |       rR| j                  }| j                  }t        |      r"|j                  dz   |z   | j                  k(  r|}n|j                  }nt        | t               r4| j"                  }|j                  }t        |      }|t        ||      | urpy t%        |       st'        |       rX| j                  }| j(                  }t        ||      | ury t+        |       r't        |dd       }t        |t,              r
||v r||   S y |j                  D ]  }	 t        ||      j                  }||c S  y # t        $ r Y w xY w# t        $ r Y >w xY w)Nr   r3  	__slots__)rS   r"  r   __doc__r   r^   r   r   __self__r   	__class__rY   r7  rR   r5  r~   r  r  r_   rW   r
  r]   r   )r   r   docr   selfr  r   slotss           r   _finddocr@  !  s   s|KKD6!,,C ?J   }||$$||DMGD$-z:cllJC..C	C||o;'#t,C7	3||||DM#d*c.>.>>C..C	C	"xx}};'#t,C7	C	 $4S$9||3S(c"Cd3E%&45=T{"	$%--C ?J  m & d  		s#   H;H*	H'&H'*	H65H6c                     	 	 | j                   }|	 t        |       }t	        |t
              sy t        |      S # t        $ r Y y w xY w# t        t        f$ r Y y w xY wr   )r:  r   r@  r   r~   r   r(   )r   r=  s     r   r<   r<   _  sq    B
nn {	6"C c3C=  
 	* 		s    9 A 	AAAAc                 B   	 	 | j                         j                  d      }t        j                  }|dd  D ]8  }t	        |j                               }|st	        |      |z
  }t        ||      }: |r|d   j                         |d<   |t        j                  k  r%t        dt	        |            D ]  }||   |d  ||<    |r|d   s|j                          |r|d   s|r|d   s|j                  d       |r|d   sdj                  |      S # t        $ r Y y w xY w)N
   rj   r4  )r.  r6  r   maxsizer(  r/  minrangepopjoinUnicodeError)r=  linesmarginr0  contentindentis          r   r(   r(   r  s     &&t,
 !"ID$++-(GTW,VV,	  Qx(E!HCKK1c%j)eAhvw6G58)E"IIIK E"IE!HIIaL E!Hyy)  s   D 	DDc                    	 t        |       r3t        | dd       r| j                  S t        dj	                  |             t        |       rt        | d      r\t        j                  j                  | j                        }t        |dd       r|j                  S | j                  dk(  rt        d      t        dj	                  |             t        |       r| j                  } t        |       r| j                  } t!        |       r| j"                  } t%        |       r| j&                  } t)        |       r| j*                  S t        dj	                  t-        |       j.                              )N__file__z{!r} is a built-in modulery   __main__source code not availablez{!r} is a built-in classzVmodule, class, method, function, traceback, frame, or code object was expected, got {})ra   r   rQ  r   r)  rS   r   r   r   rw   ry   OSErrorr^   r   rY   r   rc   tb_framerX   f_coderT   co_filenamer   r   )r   r   s     r   r=   r=     s)   J6:t,??"3::6BCCv6<([[__V%6%67Fvz40&  J.9::299&ABB&6vf~!!!
 77=vL))8+, ,r   c                     	 t         j                  j                  |       }t        j                  j                         D cg c]  }t        |       |f }}|j                          |D ]  \  }}|j                  |      s|d | c S  y c c}w r   )	ospathbasename	importlib	machineryall_suffixesr(  r   endswith)rZ  fnamesuffixsuffixesneglens        r   rG   rG     s    ;GGT"E #,"5"5"B"B"DF"D f+v&"D  FMMO">>&!&>! # Fs   Bc                 p   	 t        |       t        j                  j                  d d  }|t        j                  j                  d d  z  }t        fd|D              rAt        j                  j                        d   t        j                  j                  d   z   n-t        fdt        j                  j                  D              ry t        j                  v rS t        j                  j                        rS t        |       }t        |dd       S t        t        |dd       dd       S y )Nc              3   @   K   | ]  }j                  |        y wr   r_  r  sfilenames     r   r	  z getsourcefile.<locals>.<genexpr>  s     
?)>A8Q)>   rj   c              3   @   K   | ]  }j                  |        y wr   rf  rg  s     r   r	  z getsourcefile.<locals>.<genexpr>  s$      97 '(Xq!7rj  
__loader____spec__loader)r=   r\  r]  DEBUG_BYTECODE_SUFFIXESOPTIMIZED_BYTECODE_SUFFIXESanyrY  rZ  splitextSOURCE_SUFFIXESEXTENSION_SUFFIXES	linecachecacheexistsrF   r   )r   all_bytecode_suffixesr   ri  s      @r   rK   rK     s    vH%//GGJY00LLQOO

?)>
??GG$$X.q1''77:;	 9$$779 
99??"	ww~~hvx(Fv|T*6	T2Hd	C	O 
Pr   c                     	 |t        |       xs t        |       }t        j                  j	                  t        j                  j                  |            S r   )rK   r=   rY  rZ  normcaseabspath)r   	_filenames     r   r/   r/     sD    2 !&)<WV_	77BGGOOI677r   c                    	 t        |       r| S t        | d      r)t        j                  j	                  | j
                        S |.|t        v r&t        j                  j	                  t        |         S 	 t        | |      }|t        v r&t        j                  j	                  t        |         S t        j                  j                         j                         D ]  \  }}t        |      st        |d      s|j                  }|t        j	                  |d       k(  rE|t        |<   t        |      }|j                  xt        |<   t        t        j                   j#                  |      <    |t        v r&t        j                  j	                  t        |         S t        j                  d   }t        | d      sy t        || j                        rt%        || j                        }|| u r|S t        j                  d   }t        || j                        rt%        || j                        }	|	| u r|S y y # t        t        f$ r Y y w xY w)Nry   rQ  rR  r   builtins)ra   r   r   r   rw   ry   modulesbyfiler/   r   FileNotFoundErrorcopyr   rQ  _filesbymodnamer   rY  rZ  realpathr   )
r   r|  filemodnamer   r   main
mainobjectbuiltinbuiltinobjects
             r   rF   rF     s   Kv|${{v0011m!;{{}Y788&), }{{}T233 ;;++-335F
 ;AO''66'(OG$6"A (.7M!}  # % 6 }{{}T233;;z"D6:&tV__%T6??3
Kkk*%Gw(9F"N # ); () s   5H6 6IIc                       e Zd Zy)r   Nr   ry   r5  r}   r   r   r   r     s    r   r   c                   "    e Zd Zd Zd ZeZd Zy)_ClassFinderc                      g | _         || _        y r   )rf   qualname)r>  r  s     r   __init__z_ClassFinder.__init__  s    
 r   c                    | j                   j                  |j                         | j                   j                  d       | j                  |       | j                   j	                          | j                   j	                          y )Nz<locals>)rf   r   r   generic_visitrH  )r>  nodes     r   visit_FunctionDefz_ClassFinder.visit_FunctionDef  sT    

$))$

*%4 



r   c                 x   | j                   j                  |j                         | j                  dj	                  | j                         k(  rB|j
                  r|j
                  d   j                  }n|j                  }|dz  }t        |      | j                  |       | j                   j                          y )Nr3  rj   rD  )
rf   r   r   r  rI  decorator_listlinenor   r  rH  )r>  r  line_numbers      r   visit_ClassDefz_ClassFinder.visit_ClassDef  s    

$))$==CHHTZZ00"""11!4;;"kk 1K%k224 

r   N)r   ry   r5  r  r  visit_AsyncFunctionDefr  r}   r   r   r  r    s    ! /r   r  c                    	 t        |       }|rt        j                  |       n8t        |       }|j	                  d      r|j                  d      st        d      t        | |      }|r!t        j                  ||j                        }nt        j                  |      }|st        d      t        |       r|dfS t        |       rZ| j                  }dj                  |      }t        j                  |      }t!        |      }	 |j#                  |       t        d      t)        |       r| j*                  } t-        |       r| j.                  } t1        |       r| j2                  } t5        |       r| j6                  } t9        |       rkt;        | d      st        d	      | j<                  d
z
  }
t?        j@                  d      }|
dkD  r'	 ||
   }|jE                  |      r	 ||
fS |
d
z
  }
|
dkD  r'||
fS t        d      # t$        $ r}|j&                  d   }	||	fcY d }~S d }~ww xY w# tB        $ r t        d      w xY w)N<>rS  zcould not get source coderj    zcould not find class definitionco_firstlinenoz"could not find function definitionrD  z>^(\s*def\s)|(\s*async\s+def\s)|(.*(?<!\w)lambda(:|\s))|^(\s*@)zlineno is out of boundszcould not find code object)#rK   ru  
checkcacher=   
startswithr_  rT  rF   getlinesrv   ra   rS   r5  rI  astparser  visitr   argsr^   r   rY   r   rc   rU  rX   rV  rT   r   r  recompile
IndexErrormatch)r   r  r   rK  r  sourcetreeclass_finderer  lnumpatr0  s                r   r*   r*   .  s    9  DT"v $s);566vt$F""49""4(122axv&&yy #H-	=t$
 ;<<&6vf~v/0>??$$q(jjZ[Qh9T{ yyd{ !8D Qh d{
.
//9 # 	&&&)K+%%	&,  97889s*   G? 
H( ?	H%H H% H%(H=c                 ,   	 	 t        |       \  }}t        |       rd}|r|d   d d dk(  rd}|t	        |      k  r>||   j                         dv r)|dz   }|t	        |      k  r||   j                         dv r)|t	        |      k  r{||   d d dk(  rog }|}|t	        |      k  rL||   d d dk(  rA|j                  ||   j                                |dz   }|t	        |      k  r||   d d dk(  rAdj                  |      S y y |dkD  rwt        ||         }|dz
  }|dk\  r]||   j                         d d dk(  rBt        ||         |k(  r/||   j                         j                         g}|dkD  r|dz
  }||   j                         j                         }|d d dk(  r]t        ||         |k(  rL|g|d d |dz
  }|dk  rn;||   j                         j                         }|d d dk(  rt        ||         |k(  rL|r4|d   j                         dk(  rg |d d |r|d   j                         dk(  r|r4|d   j                         dk(  rg |dd  |r|d   j                         dk(  rdj                  |      S y y y y # t        t        f$ r Y y w xY w)	Nrj      z#!rD  )r  #r  r  r4  )r*   rT  r   ra   r(  stripr   r.  rI  rM   r/  )r   rK  r  startcommentsendrN  comments           r   r9   r9   r  s    (t U1Xbq\T)15c%j U5\%7%7%9Y%FAIE c%j U5\%7%7%9Y%F3u:%,r"2c"9HCE
"uSz"1~'<c
 5 5 78Ag E
"uSz"1~'< 778$$ #: 
E$K(Qh!8c
))+BQ/36uSz"f,c
--/6689HQwAg*//188:bqkS(Zc
-Cv-M$+9HRaL'CQw#Cj335<<>G	 bqkS(Zc
-Cv-M
 x{002c9!! x{002c9x|113s: " x|113s:778$$ - 78 
% Y s   J JJc                       e Zd Zy)r   Nr  r}   r   r   r   r     s    r   r   c                       e Zd Z	 d Zd Zy)r	   c                 f    d| _         d| _        d| _        d| _        d| _        d| _        d | _        y )Nrj   FrD  )rN  islambdastartedpasslineindecoratorlast	body_col0r>  s    r   r  zBlockFinder.__init__  s4     	r   c                 R   | j                   s?| j                  s3|dk(  rd| _        d| _        y |dv r|dk(  rd| _        d| _         d| _        y |t        j
                  k(  r8d| _        |d   | _        | j                  rt        | j                  rd| _        y y | j                  ry |t        j                  k(  r>| j                  | j                   r
|d   | _	        | j                  dz   | _
        d| _        y |t        j                  k(  r*| j                  dz
  | _
        | j                  dk  rt        y |t        j                  k(  r+| j                  |d   | j                  k\  r|d   | _        y y y | j                  dk(  r)|t        j                  t        j                  fvrt        y y )N@T)defclasslambdar  Frj   rD  )r  r  r  r  tokenizeNEWLINEr  r   INDENTr  rN  DEDENTCOMMENTNL)r>  r   tokensrowcolerowcolr0  s         r   
tokeneaterzBlockFinder.tokeneater  s   ||D$4$4|#'  !DM	 44H$$(DM# DMX%%%!DM
DI}}   #(   ]]X__$~~%$,,!(++/DK DMX__$++/DK {{a    X%%%~~)gajDNN.J#AJ	 /K) [[A$x/?/?.M"M  #Nr   N)r   ry   r5  r  r  r}   r   r   r	   r	     s    J)r   r	   c                    	 t               }	 t        j                  t        |       j                        }|D ]  } |j
                  |   	 | d |j                   S # t        t        f$ r Y  t        $ rW}d|j                  vr|d ^}}	  |j
                  t        j                  g|  n# t        t        f$ r Y nw xY wY d }~zd }~ww xY w)N	unmatched)r	   r  generate_tokensiter__next__r  r   IndentationErrorSyntaxErrormsgr  r  )rK  blockfindertokens_tokenr  __token_infos          r   r5   r5     s    J-K))$u+*>*>?F"K""F+  "+""## ()  aee# K	"K""8#3#3BkB,- 		sA   >A C,C4C
!B,+C,B>;C=B>>CCc                     	 t        |       } t        |       \  }}t        |       r| j                  } t	        |       s$t        |       r| j                  j                  dk(  r|dfS t        ||d        |dz   fS )Nz<module>rj   rD  )	rh   r*   rc   rU  ra   rX   rV  co_namer5   r   rK  r  s      r   rL   rL     sv    6 F^FV$KE46 		V]]22j@axde%tax//r   c                 B    	 t        |       \  }}dj                  |      S )Nr  )rL   rI  r  s      r   rJ   rJ     s&    A
 !(KE4775>r   c                     	 g }| j                  t        dd             | D ]C  }|j                  ||j                  f       ||v s%|j                  t	        ||   ||             E |S )Nry   r   r   )r   rl   r   r   ri   )classeschildrenparentr   cs        r   ri   ri   	  se    7GLLZj9L:1;;'(=NN8HQK1=>  Nr   c                 0   	 i }g }| D ]c  }|j                   r?|j                   D ]/  }||vrg ||<   |||   vr||   j                  |       |s*|| v s/ L N||vsS|j                  |       e |D ]  }|| vs|j                  |        t        ||d       S r   )r   r   ri   )r  uniquer  rootsr  r  s         r   r7   r7     s    E HE;;++)')HV$HV,,V$++A.f/ & e^LLO   LL   E8T**r   r   zargs, varargs, varkwc                    	 t        |       st        dj                  |             | j                  }| j                  }| j
                  }t        |d |       }t        ||||z          }||z  }d }| j                  t        z  r| j                  |   }|dz   }d }| j                  t        z  r| j                  |   }t        ||z   ||      S )Nz{!r} is not a code objectrD  )rT   r   r)  co_varnamesco_argcountco_kwonlyargcountlistr   r   r   r   )cor   nargsnkwargsr  
kwonlyargsvarargsvarkws           r   r0   r0   0  s     ":3::2>??NNENNE""GfuDeE%-01J	WEG	{{Z..'	E	{{^#u%TJ&77r   r   zGargs, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotationsc           	         	 	 t        | ddt        d      }g }d }d }g }g }i }d}	i }
|j                  |j
                  ur|j                  |d<   |j                  j                         D ]  }|j                  }|j                  }|t        u r:|j                  |       |j                  |j
                  ur|	|j                  fz  }	n|t        u r:|j                  |       |j                  |j
                  urg|	|j                  fz  }	nV|t        u r|}nK|t        u r9|j                  |       |j                  |j
                  ur|j                  |
|<   n
|t         u r|}|j"                  |j
                  us|j"                  ||<   ! |
sd }
|	sd }	t%        ||z   |||	||
|      S # t        $ r}t        d      |d }~ww xY w)NF)follow_wrapper_chainsskip_bound_argsigclsrt   zunsupported callabler}   return)_signature_from_callabler$   r  r   return_annotationempty
parametersvaluesr   r   _POSITIONAL_ONLYr   default_POSITIONAL_OR_KEYWORD_VAR_POSITIONAL_KEYWORD_ONLY_VAR_KEYWORD
annotationr   )r   sigexr  r  r  posonlyargsr  annotationsdefaults
kwdefaultsr   r   r   s                 r   r?   r?   N  s   8" 't=B6;.705	7 DGEKJKHJ
CII- # 5 5H&&(zzzz##t$}}EKK/U]],,++KK}}EKK/U]],,_$G]"d#}}EKK/#(==
4 \!E5;;. % 0 0K- )0 
{T)7E8!:{< <g  8
 ./R78s   F& &	G /F;;G r   zargs varargs keywords localsc                 f    	 t        | j                        \  }}}t        |||| j                        S r   )r0   rV  r   f_locals)framer  r  r  s       r   r1   r1     s3    = #5<<0D'54%88r   c                 X   t        | dd       dk(  r#d }t        j                  d|t        |             S t	        | t
        j                        rt        |       S t	        | t              r8| j                  d|fv r| j                  S | j                  dz   | j                  z   S t        |       S )Nry   typingc                 D    | j                         }|j                  d      S )Nztyping.)groupremoveprefix)r  texts     r   replzformatannotation.<locals>.repl  s    ;;=D$$Y//r   z[\w\.]+r~  r3  )r   r  subreprr~   r   GenericAliasr   r   ry   r5  )r  base_moduler  s      r   r+   r+     s    z<.(:	0 vvj$Z(899*e001:*d#  Z$==***$$S()@)@@@
r   c                 ,    t        | dd       fd}|S )Nry   c                     t        |       S r   )r+   )r  r   s    r   _formatannotationz5formatannotationrelativeto.<locals>._formatannotation  s    
F33r   )r   )r   r  r   s     @r   r,   r,     s    V\40F4r   c                     d| z   S )N*r}   r   s    r   r   r     s    sTzr   c                     d| z   S )N**r}   r   s    r   r   r     s    TD[r   c                     dt        |       z   S )N=)r  )r   s    r   r   r     s    cDK.?r   c                 >   	 |||fd}g }	t        t        |             D ]  }
|	j                   || |
                 |r#|	j                   ||       |||         z          |r#|	j                   ||       |||         z          ddj                  |	      z   dz   S )Nc                 *     ||        |||          z   S r   r}   )r   rs   	formatargformatvalues       r   convertz formatargvalues.<locals>.convert  s    VD\!:::r   (, ))rG  r(  r   rI  )r  r  r  rs   r'  formatvarargsformatvarkwr(  r)  specsrO  s              r   r-   r-     s    
M $#; E3t9WT!W%& ]7+k&/.JJK['+fUm*DDE5!!C''r   c                 .   |D cg c]  }||vst        |       }}t        |      }|dk(  r|d   }n@|dk(  r dj                  | }n+ dj                  |dd   }|dd = dj                  |      |z   }t	        d| ||rd	nd
|dk(  rdnd|fz        c c}w )NrD  rj   r  z	{} and {}z, {} and {}r+  z*%s() missing %i required %s argument%s: %s
positionalkeyword-onlyr  rh  )r  r(  r)  rI  r   )	f_nameargnamesposr  r   r   missingrh  tails	            r   _missing_argumentsr9    s    $,CHDF0BT$ZHEC%jG!|!H	AK&#}##U23Z0"#JIIet#
@W&)l~#qLbc166 7 7 Ds
   	BBc           
      v   t        |      |z
  }t        |D cg c]	  }||v s| c}      }	|r|dk7  }
d|fz  }n7|rd}
d|t        |      fz  }n"t        |      dk7  }
t        t        |            }d}|	rd}||dk7  rdnd|	|	dk7  rdndfz  }t        d| ||
rdnd|||dk(  r|	s	d	fz        d
fz        c c}w )NrD  zat least %dTzfrom %d to %dr  z7 positional argument%s (and %d keyword-only argument%s)rh  z5%s() takes %s positional argument%s but %d%s %s givenwaswere)r(  r   r   )r4  r  kwonlyr  defcountgivenr  atleastargkwonly_givenpluralr  
kwonly_sigr  s                 r   	_too_manyrE    s	   $i("Gv?vv?@LAwj(	#d) 44Ta#d)nJGEQJSB$0A$5S2? ?

KS#R
qjUCC D D;ACC D D @s
   	B6B6c          	      R   	 t        |       }|\  }}}}}}	}
| j                  }i }t        |       r| j                  | j                  f|z   }t	        |      }t	        |      }|rt	        |      nd}t        ||      }t        |      D ]  }||   |||   <    |rt        ||d        ||<   t        ||z         }|ri ||<   |j                         D ]=  \  }}||vr|st        |d|      |||   |<   %||v rt        |d|      |||<   ? ||kD  r|st        |||||||       ||k  rH|d ||z
   }|D ]  }||vst        ||d|        t        |||z
  d        D ]  \  }}||vs||   ||<    d}|D ]  }||vs|	r||	v r	|	|   ||<   |dz  } |rt        ||d|       |S )Nrj   z&() got an unexpected keyword argument z$() got multiple values for argument TrD  F)r?   r   r^   r;  r(  rF  rG  r  r   r   r   rE  r9  	enumerate)r   r2  namedspecr  r  r  r  r  kwonlydefaultsr   r4  	arg2valuenum_posnum_argsnum_defaultsnrO  possible_kwargskwr   reqrA  r7  kwargs                            r   r6   r6     s/   -
 $DFJCD'5(J]]FI ~$--3mm%
2
*oG4yH$,3x=!LGXA1X']	$q' ":ab>2	'$+,O	%[[]	E_$!'!- . .#(IeR ?#R) * *	" # '&$
G\I	'+H|+,C)#"63i@   X%<%= >?FAs)#!)!	# @ G	!%>"9#1%#8	% 1  6:ui@r   r   z"nonlocals globals builtins unboundc                 \   	 t        |       r| j                  } t        |       st        dj	                  |             | j
                  }| j                  i }n=t        |j                  | j                        D ci c]  \  }}||j                   }}}| j                  }|j                  dt        j                        }t        |      r|j                  }i }i }t               }	t               }
t!        j"                  |      D ]H  }|j$                  }|j&                  }|dk(  r|	j)                  |       2|dk(  s8|
j)                  |       J |
D ]  }	 ||   ||<    t-        ||||	      S c c}}w # t*        $ r- 	 ||   ||<   n # t*        $ r |	j)                  |       Y nw xY wY Ww xY w)N{!r} is not a Python function__builtins__	LOAD_ATTRLOAD_GLOBAL)r^   r   rY   r   r)  r   __closure__zipco_freevarscell_contentsrz   rw   r~  rv   ra   r   disget_instructionsopnameargvalr   KeyErrorr   )r   codenonlocal_varsvarcell	global_ns
builtin_nsglobal_varsbuiltin_varsunbound_namesglobal_namesinstructionr_  r   s                 r   r8   r8   F  s    ~}}d7>>tDEE==D  !!1!143C3CD	D	T $$$$D 	 	   I~x/@/@AJ
((
KLEM5L++D1##!![ d#}$T" 2 	( )$K  }k#]4 4?	2  	((%/%5T" (!!$'(	(s<   <E/E55	F+?FF+F%"F+$F%%F+*F+
_Tracebackz+filename lineno function code_context indexc                   *     e Zd Zdd fd
Zd Z xZS )r&   N	positionsc                >    t         |   | |||||      }||_        |S r   super__new__rp  )	r  ri  r  functioncode_contextindexrp  instancer<  s	           r   rt  zTraceback.__new__  s)    7?3&(LRWX&r   c                     dj                  | j                  | j                  | j                  | j                  | j
                  | j                        S )NzcTraceback(filename={!r}, lineno={!r}, function={!r}, code_context={!r}, index={!r}, positions={!r}))r)  ri  r  ru  rv  rw  rp  r  s    r   __repr__zTraceback.__repr__  s@    @@Ft{{DMM4;L;L

DNNA,	-r   r   ry   r5  rt  rz  __classcell__r<  s   @r   r&   r&     s    SW 
-r   r&   c                 ^    | j                   j                  | j                  }}t        ||      S r   )rU  rV  tb_lasti_get_code_position)tbrb  instruction_indexs      r   _get_code_position_from_tbr    s(     kk00"++
Dd$566r   c                 t    |dk  ry| j                         }t        t        j                  ||dz  d             S )Nrj   )NNNNr  )co_positionsnext	itertoolsislice)rb  r  positions_gens      r   r  r    s;    1'%%'M	  0AQ0FMNNr   c           
         	 t        |       r$t        |       }| j                  }| j                  } n,| j                  }t        | j                  | j                        }|d   | |g|dd  ^} }n| g|^} }|d   }t        |       st        dj                  |             t        |       xs t        |       }|dkD  rM|dz
  |dz  z
  }	 t        |       \  }}t        dt        |t!        |      |z
              }||||z    }|dz
  |z
  }nd x}}t%        ||| j                  j&                  ||t)        j*                  |       S # t"        $ r d x}}Y Dw xY w)Nrj   rD  z'{!r} is not a frame or traceback objectr  ro  )rc   r  	tb_linenorU  f_linenor  rV  f_lastirX   r   r)  rK   r=   r*   maxrF  r(  rT  r&   r  r]  	Positions)	r  contextrp  r  ri  r  rK  r  rw  s	            r   r>   r>     sv   > 5.u5	&u||U]]C	|"F;Yqr];	"/Y/	q\F5>AHHOPPU#5wu~H{
WaZ'	'$U+KE4 3uc%j7&:;<E%g.EQJ&EXvu||';';UcmmY&?A A  	!  EE	!s   
E EEc                     	 | j                   S r   )r  r  s    r   rC   rC     s    M>>r   
_FrameInfor  c                   *     e Zd Zdd fd
Zd Z xZS )r   Nro  c          	      @    t         	|   | ||||||      }||_        |S r   rr  )
r  r  ri  r  ru  rv  rw  rp  rx  r<  s
            r   rt  zFrameInfo.__new__  s+    7?3x<Y^_&r   c           	          dj                  | j                  | j                  | j                  | j                  | j
                  | j                  | j                        S )NzoFrameInfo(frame={!r}, filename={!r}, lineno={!r}, function={!r}, code_context={!r}, index={!r}, positions={!r}))r)  r  ri  r  ru  rv  rw  rp  r  s    r   rz  zFrameInfo.__repr__  sG    @@F

DMM4;;!!4::t~~A?	@r   r{  r}  s   @r   r   r     s    Z^ 
@r   r   c                     	 g }| rEt        | |      }| f|z   }|j                  t        |d|j                  i       | j                  } | rE|S Nrp  )r>   r   r   rp  f_back)r  r  	framelisttraceback_info	frameinfos        r   rI   rI     s^    G I
%eW5H~-	IR9Q9QRS	 
 r   c                     	 g }| rOt        | |      }| j                  f|z   }|j                  t        |d|j                  i       | j
                  } | rO|S r  )r>   rU  r   r   rp  tb_next)r  r  r  r  r  s        r   rB   rB     sb    G I
%b'2[[N^3	IR9Q9QRSZZ	 
 r   c                  R    	 t        t        d      rt        j                  d      S d S )N	_getframerD  )r   r   r  r}   r   r   r)   r)     s"    I&sK83==BdBr   c                 B    	 t        t        j                  d      |       S )NrD  )rI   r   r  )r  s    r   rf   rf     s    J#--*G44r   c                 d    	 t        j                         }|d n|j                  }t        ||       S r   )r   	exception__traceback__rB   )r  excr  s      r   rg   rg     s.    M
--/C#"3"3B"g&&r   r"  rv   c                     i }	 t         j                  | d      }t        j	                  ||t
              S # t        $ r Y &w xY wNrv   )r   __getattribute__r   r   rw   	_sentinel)r   attrinstance_dicts      r   _check_instancer    sG    M//Z@ 88M433  s   5 	A Ac                     t        |       D ]<  }t        t        |            t        u s||j                  v s-|j                  |   c S  t        S r   )_static_getmro_shadowed_dictr   r  rv   )klassr  entrys      r   _check_classr    sD    &$u+&)38N>>$'' ' r   c                      | D ]Z  } |       }t        |      }d|v s|d   }t        |      t        j                  u r|j                  dk(  r|j
                  |u rX|c S  t        S r  )_get_dunder_dict_of_classr   r   r   r   r
  r  )weakref_mroweakref_entryr  dunder_dict
class_dicts        r   %_shadowed_dict_from_weakref_mro_tupler    sn    $ /6$$Z0J$(B(BB'':5++u4!! % r   c                 \    t        t        |       D cg c]  }t        |       c} S c c}w r   )r  r  make_weakref)r  r  s     r   r  r  (  s2     1+9%+@	A+@%,u
+@	A 	As   )c                    	 t         }t        |       }t        t        |      vr=|}t        |      }|t         u st        |      t        j
                  u rt        | |      }n| }t        ||      }|t         ur[|t         urSt        t        |      d      t         ur8t        t        |      d      t         ust        t        |      d      t         ur|S |t         ur|S |t         ur|S | |u rSt        t        |            D ]<  }t        t        |            t         u s||j                  v s-|j                  |   c S  |t         ur|S t        |      )Nr   r   r   )
r  r   r  r  r   r   r  r  rv   r   )	r   r  r  instance_resultobjtyper  	dict_attrklass_resultr  s	            r   r4   r4   5  s7   	  O3iG>'**"5)	"Ou999-c48Ot,Li'L	,I\*I6iGl+Y7yHD.=YNi'9$
e|#DK0EtE{+y8ENN*~~d++ 1 i

r   r    r!   r"   r   c                 |    	 | j                   rt        S | j                  rt        S | j                  t
        S t        S r   )
gi_runningr!   gi_suspendedr"   gi_framer   r    )	generators    r   rA   rA   n  s?     !r   c                     	 t        |       st        dj                  |             t        | dd       }|| j                  j
                  S i S )Nz{!r} is not a Python generatorr  )rZ   r   r)  r   r  r  )r  r  s     r   r@   r@     sS     y!8??	JKKIz40E!!***	r   r   r   r   r   c                 |    	 | j                   rt        S | j                  rt        S | j                  t
        S t        S r   )
cr_runningr   cr_suspendedr   cr_framer   r   )	coroutines    r   r;   r;     s?     !r   c                 >    	 t        | dd       }||j                  S i S )Nr  )r   r  )r  r  s     r   r:   r:     s,    
 Iz40E~~	r   r   r   r   r   c                 |    	 | j                   rt        S | j                  rt        S | j                  t
        S t        S r   )
ag_runningr   ag_suspendedr   ag_framer   r   )agens    r   r3   r3     s;     }}r   c                     	 t        |       st        | d      t        | dd       }|| j                  j                  S i S )Nz  is not a Python async generatorr  )rO   r   r   r  r  )r  r  s     r   r2   r2     sM     d4("BCDDD*d+E}}%%%	r   c                     	 |dk(  rt        | |d       }nt        | |d       }|t        |t              ry |dk7  rt	        ||       }|S )Nrt  )r   r4   r~   _NonUserDefinedCallables_descriptor_get)r  method_namemeths      r   "_signature_get_user_defined_methodr    sZ     isK.c;5|z$(@A itS)Kr   c                 >   	 | j                   }t        |j                               }|j                  xs d}|j                  xs i }|r||z   }	  | j
                  |i |}d}
|j                         D ]K  \  }}	 |j                  |   }|j                  t        u r|j                  |       ;|j                  t        u r8||v rd}
|j                  |      ||<   n|j                  |j                         |j                  t         u r|j                  |      ||<   	 |
s|j                  t        u r0||   j                  t               }|||<   |j%                  |       |j                  t         t&        fv r|j%                  |       |j                  t(        u s1|j                  |j                         N | j                  |j+                               S # t        $ r"}dj                  |      }	t        |	      |d }~ww xY w# t"        $ r Y w xY w)Nr}   z+partial object {!r} has incorrect argumentsFT)r  r   r  )r  rn   r   r  keywordsbind_partialr   r)  r   	argumentsr   r   rH  r  replacer   r  ra  move_to_endr  r  r  )wrapped_sigr   
extra_args
old_params
new_paramspartial_argspartial_keywordsbar  r  transform_to_kwonly
param_namer   	arg_value	new_params                  r   _signature_get_partialr     s   
 ''JZ--/0J<<%2L''-2!L0&%[%%|H7GH  '--/
E#	JZ0I zz-- z*zz33!11 +/'-2]]9]-MJz* NN5::.zz]*).y)I
:& zz33&z2:::N	)2
:&&&z2|<<&&z2.uzz*a 0d **;*;*=>>q  &;BB7Ko2%&  		s*   G" ;H"	H+HH	HHc                 *   	 t        | j                  j                               }|r|d   j                  t        t
        fv rt        d      |d   j                  }|t        t        fv r|dd  }n|t        urt        d      | j                  |      S )Nrj   zinvalid method signaturerD  zinvalid argument typer  )r  r  r  r   r  r  r   r  r   r  r  )r  paramsr   s      r   _signature_bound_methodr  L  s     3>>((*+FVAY^^m'DD344!9>>D&(899 & 455 ;;&;))r   c                     	 t        |       xs1 t        |       xs$ t        | t              xs | t        u xs | t
        u S r   )rR   r_   r~   r  r   r   r   s    r   _signature_is_builtinr  f  sN     cN )s#)s45) 4K) &=*r   c                    	 t        |       rt        |       ryt        | dd       }t        | dd       }t        | dt              }t        | dt              }t        | dd       }t	        |t
        j                        xrX t	        |t              xrF |d u xs t	        |t              xr. |d u xs t	        |t              xr t	        |t              xs |d u S )NFr   r   __defaults____kwdefaults__rx   )
r   rS   r   _voidr~   r   r   r   r  r   )r   r   rb  r  r  r
  s         r   r   r   t  s     C=GCL 3
D)D3
D)DsNE2H.6J#0$7KtU^^, EtS!E<He!<E 4?:j$#?E d,Ct0C	Gr   c                 P   	 | s| d fS d }| j                  d      D cg c]  }|s|j                  d       }}t        |      j                  }t	        j                  |      }g }|j
                  }d}t        j                  }	t        j                  }
t        |      }|D ]L  }|j                  |j                  }}||	k(  r
|dk(  r|dz  }||	k(  r|dk(  r|}7 ||       |dk(  sE |d       N dj                  |      j                         j                  dd      }||fS c c}w )	NrC  asciirj   ,rD  $ r  )r6  encoder  r  r  r   r  OP
ERRORTOKENr  r   stringrI  r  r  )re   self_parameterlrK  r  token_streamr  r   current_parameterr  r  tr   r  clean_signatures                  r   "_signature_strip_non_python_syntaxr    s.    $N(1(=C(=1QXXg(=ECU$$I$$Y/LD
++C	B!!J 	\A vvqxxf2:}!Q&!BJVs].NFcMH  ggdm))+33D"=ON**? Ds
   D#D#Tc                    	 | j                   t        |      \  }}d|z   dz   }	 t        j                  |      }t        |t        j                        st        dj                              |j                  d   }g j                  d }i t        dd       }	|	r.t        j                  j                  |	d       }|r|j                  t        j                  j!                         d fd G fdd	t        j"                        ffd
	}
t%        |j&                  j(                        t%        |j&                  j&                        z   }|t%        |j&                  j*                        z
  }t-        j.                  t-        j0                  d |      |j&                  j*                        }j2                  t5        |j&                  j(                  |      D ]  \  }} |
||        j6                  t5        |j&                  j&                  |      D ]  \  }} |
||        |j&                  j8                  r)j:                   |
|j&                  j8                         j<                  t5        |j&                  j>                  |j&                  j@                        D ]  \  }} |
||        |j&                  jB                  r)jD                   |
|j&                  jB                         |Xt        dd       }|d u}tG        |      }|r|s|rjI                  d       n$d   jK                  j2                        }
|
d<    | | j                        S # t        $ r d }Y Ew xY w)Nzdef fooz: pass"{!r} builtin has invalid signaturerj   ry   c                 H    | j                   t        d      | j                  S )Nz'Annotations are not currently supported)r  r   rA  )r  s    r   
parse_namez&_signature_fromstr.<locals>.parse_name  s!    ??&FGGxxr   c                    	 t        |       }t        |t        t
        t        t        t        t        d       f      rt        j                  |      S t        # t        $ r$ 	 t        |       }n# t        $ r t        w xY wY vw xY wr   )r   	NameErrorr   r~   r   intfloatbytesr   r   r  Constant)rh  r   module_dictsys_module_dicts     r   
wrap_valuez&_signature_fromstr.<locals>.wrap_value  s    	!K(E ec3udDJGH<<&&  	!!Q0 !  ! 	!s)   A 	B#A0/B0B  BBc                   (    e Zd Z fdZ fdZd Zy),_signature_fromstr.<locals>.RewriteSymbolicsc                 ~   g }|}t        |t        j                        rB|j                  |j                         |j
                  }t        |t        j                        rBt        |t        j                        st        |j                  |j                         dj                  t        |            } |      S )Nr3  )r~   r  r   r   r  r   Namer   r&  rI  reversed)r>  r  arO  r   r  s        r   visit_Attributez<_signature_fromstr.<locals>.RewriteSymbolics.visit_Attribute  s    AAQ. GG Q. a*  HHQTTNHHXa[)Ee$$r   c                     t        |j                  t        j                        s
t	                |j
                        S r   )r~   ctxr  Loadr   r&  )r>  r  r  s     r   
visit_Namez7_signature_fromstr.<locals>.RewriteSymbolics.visit_Name  s,    dhh1 l"dgg&&r   c                    | j                  |j                        }| j                  |j                        }t        |t        j
                        rt        |t        j
                        st        t        |j                  t        j                        r,t	        j
                  |j                  |j                  z         S t        |j                  t        j                        r,t	        j
                  |j                  |j                  z
        S t        |j                  t        j                        r,t	        j
                  |j                  |j                  z        S t        r   )r  leftrightr~   r  r  r   opAddr   SubBitOr)r>  r  r  r   s       r   visit_BinOpz8_signature_fromstr.<locals>.RewriteSymbolics.visit_BinOp	  s     ::dii(DJJtzz*EdCLL1E3<<9X  $''377+||DJJ$<==DGGSWW-||DJJ$<==DGGSYY/||DJJ$<==r   N)r   ry   r5  r  r  r%  )r  s   r   RewriteSymbolicsr    s    
	%	'
	r   r&  c                     
|       }|r4|t         ur,	         j                  |      }t        j                  |      }	j                   ||             y # t        $ r t	        dj                              d w xY w)Nr  r  r  )_emptyr  r  literal_evalr   r)  r   )	name_nodedefault_noder  r   r#   r&  r  r   r   r  r	  s       r   pz_signature_fromstr.<locals>.p	  s    )$L6]/177E**<8 	)D$ERS  ] !E!L!LS!QRX\\]s   +A %Br;  r  r  )&_parameter_clsr  r  r  r  r~   Moduler   r)  bodyr  r   r   r   rw   rv   r  NodeTransformerr(  r  r	  r  r  chainrepeatPOSITIONAL_ONLYrZ  POSITIONAL_OR_KEYWORDvarargVAR_POSITIONALKEYWORD_ONLYr  kw_defaultsrS  VAR_KEYWORDra   rH  r  )r  r   rh  r  r  r  programr   r   r   r-  total_non_kw_argsrequired_non_kw_argsr  r   r  _selfself_isboundself_ismoduler#   r&  r  r   r  r  r	  r  r  s    `                 @@@@@@@@@r   _signature_fromstrrB    s    ""I&H&K#O^/)H4G7# fcjj)=DDSIJJAAJOOEFK#|T2Kd3 //Kkk&&(O3.. B ,1 T T AFF../#affkk2BB,s166??/CCy//6JKQVV__]H$$Dqvv118<w	$ = **Dqvv{{H5w	$ 6 	vv}}''	!&&-- !!DQVV..0B0BCg	$ D 	vv||$$	!&&,,! Z.D( ]nNN1 1%%9+D+D%EAJqMzSYY77  s   M; ;N
	N
c                     	 t        |      st        dj                  |            t        |dd       }|st	        dj                  |            t        | |||      S )Nz%{!r} is not a Python builtin function__text_signature__z#no signature found for builtin {!r})r  r   r)  r   r   rB  )r  r   r  rh  s       r   _signature_from_builtinrE  M	  sh     !& ##)6$<1 	1 	*D1A>EEdKLLc4N;;r   c           
         	 d}t        |      s(t        |      rd}nt        dj                  |            t	        |dd       }|rt        | |||      S | j                  }|j                  }	|	j                  }
|	j                  }|	j                  }|d |
 }|	j                  }||
|
|z    }t        ||||      }|j                  }|j                  }|rt        |      }nd}g }|
|z
  }|}|d | D ]H  }|rt         nt"        }|j%                  |t&              }|j)                   ||||             |sD|dz  }J t+        ||d        D ]O  \  }}|rt         nt"        }|j%                  |t&              }|j)                   ||||||   	             |sK|dz  }Q |	j,                  t.        z  r<||
|z      }|j%                  |t&              }|j)                   |||t0                     |D ]U  }t&        }||j%                  |t&              }|j%                  |t&              }|j)                   |||t2        |	             W |	j,                  t4        z  rV|
|z   }|	j,                  t.        z  r|dz  }||   }|j%                  |t&              }|j)                   |||t6                      | ||j%                  d
t&              |      S )NFTrU  rD  rq   rj   )r  r   rD  )r  r   r  r  r  __validate_parameters__)rY   r   r   r)  r   rB  r/  r   r  r  co_posonlyargcountr  r.   r  r  r(  r   r  rw   r)  r   rG  r   r   r  r  r   r  )r  r   r  rr   rs   rt   is_duck_functionrh  r#   	func_code	pos_count	arg_namesposonly_countr2  keyword_only_countkeyword_onlyr
  r  r  pos_default_countr  non_default_countposonly_leftr   r   r  offsetr  rw  s                                r   _signature_from_functionrU  ]	  s    Md%d+# ;BB4HII*D1A!#tQ??""I I%%I%%I00M:I&J"44Yy3E'EFL!$QYZK  H$$JMJ!$55 L --.#/5K __T62
)DZ)-/ 	0AL / "*->-?"@A#/5K __T62
)DZ)-,4V,<> 	? AL B J&%778 __T62
)DZ)8: 	; ! nnT62G __T62
)DZ)6,35 	6  N*..
*QJE __T62
)DZ)57 	8
 z!,6!B'79 9r   c                     t        |       r| S t        t        |       dt              }|t        u r| S  || |t        |            S )Nr   )rS   r   r   r  )
descriptorr   rw   s      r   r  r  	  sD    z
$z"Iy
9C
iz3S	**r   )r  r  rr   rs   rt   c          	      b   	 t        j                  t        ||||||      }t        |       st	        dj                  |             t        | t        j                        r! || j                        }|rt        |      S |S |r0t        | d       } t        | t        j                        r ||       S 	 | j                  }|s|}	t        |t        t        f      st        |      r |       }t        |t              rt        || |      }t        |t              st	        dj                  |	            |S 	 | j"                  }
t        |
t         j$                        r ||
j&                        }t)        ||
d      }t+        |j,                  j/                               d   }|j0                  t2        j4                  u r|S t+        |j,                  j/                               }|f|z   }|j7                  |      S t9        |       st;        |       rt=        || ||||	      S t?        |       rtA        || |
      S t        | t         j                        r || j&                        }t)        ||       S t        | tB              r7tE        tC        |       d      }| ||      S tE        | d      }tE        | d      }| jF                  D ]F  }|'d|jH                  v r ||      }|rt        |      }|c S |/d|jH                  v s> ||      c S  | jF                  d d D ]   }	 |jJ                  }|st        |||      c S  tB        | jF                  vr| jL                  tN        jL                  u r1| jP                  tN        jP                  u r|jS                  tN              S tU        dj                  |             tW        tC        |       dd       }|tY        ||       } ||      S tU        dj                  |             # t         $ r Y w xY w# t         $ r Y "w xY w# t         $ r Y w xY w)N)r  r  rr   rs   r  rt   z{!r} is not a callable objectc                 R    t        | d      xs t        | t        j                        S )N__signature__)r   r~   r   r   r   s    r   r   z*_signature_from_callable.<locals>.<lambda>	  s'    '!_*E +C#-a1A1A#B+Cr   r#  z1unexpected object {!r} in __signature__ attributer   rj   r  )r  rr   rs   rt   )r  __call__rt  r  r4  z(no signature found for builtin type {!r}z+callable {!r} is not supported by signature)-r   r   r  r   r   r)  r~   r   r   r   r  rh   rZ  r$   r   rB  r   _partialmethodpartialmethodr   r  r  r  r  r   r#   r8  r  rY   r   rU  r  rE  r   r  r"  rv   rD  r  r   rt  from_callabler   r4   r  )r   r  r  rr   rs   rt   r  _get_signature_ofr  o_sigr]  r  first_wrapped_param
sig_paramsr  callnewinitr   text_sigs                       r   r  r  	  s#    "))*B6K/=(/'-'-)13 C=7>>sCDD#u''(  -*3//J  S !C Ec5++, %S)) ? EcIs#34#e#s#(c:c9-  &u/ / J:** mY%<%<= ,M,>,>?K(mWMC"'(>(>(E(E(G"H"K"''9+C+CC 
"3>>#8#8#:;
 23j@
{{j{99#4S9 (7E07QY[ 	[ S!&vs6DF 	F #y(()'1%k377#t
 2$s)ZH$T**0i@1#zB KKD9#=',!1#6C
!jDMM&A(..   KK$DF22  .fdHEE! %* s{{" /v~~-++F33 >EEcJL L
 d3iT:"4-D$T**
BII#N
OOA  (  ^ " s6   5P 7P #P!	PP	PP!	P.-P.c                       e Zd Zy)r  Nr  r}   r   r   r  r  w
  s    ;r   r  c                       e Zd Zy)r)  Nr  r}   r   r   r)  r)  {
  s    @r   r)  c                   ,    e Zd ZdZdZdZdZdZd Zd Z	y)	_ParameterKindzpositional-onlyzpositional or keywordzvariadic positionalr3  zvariadic keywordc                 x    t        | j                        }t        j                  | |      }||_        ||_        |S r   )r(  __members__r  rt  _value_description)r  rn  r   members       r   rt  z_ParameterKind.__new__
  s4    COO$S%((r   c                     | j                   S r   r   r  s    r   __str__z_ParameterKind.__str__
  s    yyr   N)
r   ry   r5  r5  r6  r8  r9  r;  rt  rq  r}   r   r   rj  rj  
  s&    'O3*N!L$Kr   rj  c                       e Zd Z	 dZeZeZeZ	e
ZeZeZeeddZd Zd Zed        Zed        Zed        Zed	        Zeeeed
dZd Zd Zd Zd Zy)r#   )_name_kind_default_annotationr(  c                d   	 t        |      | _        |t        urJ| j                  t        t
        fv r2d}|j                  | j                  j                        }t        |      || _        || _	        |t        u rt        d      t        |t              s/dj                  t        |      j                        }t        |      |d   dk(  rw|dd  j                         rd| j                  t         k7  r2d	}|j                  | j                  j                        }t        |      t"        | _        d
j                  |dd        }t%        |      xr | j                  t"        u}|s|j'                         st        dj                  |            || _        y # t        $ r t        d|d      w xY w)Nzvalue z is not a valid Parameter.kindz({} parameters cannot have default valuesz*name is a required attribute for Parameterzname must be a str, not a {}rj   r3  rD  zLimplicit arguments must be passed as positional or keyword arguments, not {}z
implicit{}z"{!r} is not a valid parameter name)rj  rt  r   r)  r  r  r)  rn  ru  rv  r~   r   r   r   r   isdigitr  r   rk   isidentifierrs  )r>  r   r   r  r  r  
is_keywords          r   r  zParameter.__init__
  s   	N'-DJ & zzo|<<@jj!7!78 o%%6>IJJ$$077T
8K8KLCC. 7c>d12h..0
 zz33>  jj!7!78 o%)DJ&&tABx0D t_K;K)K
T..0AHHNOO
M  	NvdX-KLMM	Ns   F F/c                 x    t        |       | j                  | j                  f| j                  | j                  dfS )Nru  rv  )r   rs  rt  ru  rv  r  s    r   
__reduce__zParameter.__reduce__
  s8    T
TZZ(!]] $ 0 023 	3r   c                 ,    |d   | _         |d   | _        y )Nru  rv  r|  r>  states     r   __setstate__zParameter.__setstate__
  s    j) /r   c                     | j                   S r   )rs  r  s    r   r   zParameter.name
      zzr   c                     | j                   S r   )ru  r  s    r   r  zParameter.default
  s    }}r   c                     | j                   S r   )rv  r  s    r   r  zParameter.annotation
      r   c                     | j                   S r   )rt  r  s    r   r   zParameter.kind
  r  r   )r   r   r  r  c                    	 |t         u r| j                  }|t         u r| j                  }|t         u r| j                  }|t         u r| j                  } t        |       ||||      S )Nr(  )r  rs  rt  rv  ru  r   )r>  r   r   r  r  s        r   r  zParameter.replace
  s`    95=::D5=::D))JemmGtDz$g*MMr   c                    | j                   }| j                  }| j                  t        ur%dj	                  |t        | j                              }| j                  t        ur]| j                  t        ur&dj	                  |t        | j                              }n%dj	                  |t        | j                              }|t        k(  rd|z   }|S |t        k(  rd|z   }|S )Nz{}: {}z{} = {}z{}={}r  r"  )
r   rs  rv  r)  r)  r+   ru  r  r  r  )r>  r   	formatteds      r   rq  zParameter.__str__  s    yyJJ	 6) 	'78H8H'IKI ==&v-%,,YT]]8KL	#NN9d4==6IJ	?"iI  \!y(Ir   c                 N    dj                  | j                  j                  |       S )Nz	<{} "{}">r)  r<  r   r  s    r   rz  zParameter.__repr__$  s    !!$.."9"94@@r   c                 p    t        | j                  | j                  | j                  | j                  f      S r   )hashrs  rt  rv  ru  r  s    r   __hash__zParameter.__hash__'  s(    TZZT-=-=t}}MNNr   c                    | |u ryt        |t              st        S | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j
                  |j
                  k(  xr | j                  |j                  k(  S NT)r~   r#   NotImplementedrs  rt  ru  rv  r>  others     r   __eq__zParameter.__eq__*  sv    5=%+!!

ekk) 6

ekk)6/6   E$5$55	7r   N)r   ry   r5  r9  r   r5  r  r6  r  r8  r  r9  r  r;  r)  r  r  r}  r  r  r   r  r  r   r  r  rq  rz  r  r  r}   r   r   r#   r#   
  s    * >I.O4-N+L*KE.4 )V30           $% %N$,AO7r   r#   c                   f    e Zd Z	 dZd Zed        Zed        Zed        Zd Z	d Z
d Zd	 Zd
 Zy)r
   )r  
_signature__weakref__c                      || _         || _        y r   )r  r  )r>  re   r  s      r   r  zBoundArguments.__init__H  s    "#r   c                     | j                   S r   )r  r  s    r   re   zBoundArguments.signatureL  s    r   c                 |   g }| j                   j                  j                         D ]o  \  }}|j                  t        t
        fv r t        |      S 	 | j                  |   }|j                  t        k(  r|j                  |       _|j                  |       q t        |      S # t        $ r Y  t        |      S w xY wr   )r  r  r   r   r  r  r  r  extendr   ra  r  )r>  r  r  r   rA  s        r   r  zBoundArguments.argsP  s    !%!;!;!A!A!CJzzlM::  T{%nnZ0 ::0KK$ KK$! "D$ T{    T{s   B$$	B;:B;c                 Z   i }d}| j                   j                  j                         D ]p  \  }}|s,|j                  t        t
        fv rd}n|| j                  vrd}4|s7	 | j                  |   }|j                  t        k(  r|j                  |       l|||<   r |S # t        $ r Y w xY w)NFT)	r  r  r   r   r  r  r  updatera  )r>  kwargskwargs_startedr  r   rA  s         r   r  zBoundArguments.kwargsg  s    !%!;!;!A!A!CJ!::,!>>%)N!7)- !
-nnZ0 ::-MM#& *-F:&- "D0   s   !B	B*)B*c                    	 | j                   }g }| j                  j                  j                         D ]  \  }}	 |j	                  |||   f        t        |      | _         y # t
        $ ra |j                  t        ur|j                  }n,|j                  t        u rd}n|j                  t        u ri }nY |j	                  ||f       Y w xY w)Nr}   )r  r  r  r   r   ra  r  r)  r   r  r  r   )r>  r  new_argumentsr   r   vals         r   apply_defaultszBoundArguments.apply_defaults  s    	 NN	??55;;=KD%2$$dIdO%<= > m,  2==.--CZZ?2CZZ</C $$dC[12s   A$$AC8CCc                     | |u ryt        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r  )r~   r
   r  re   r  r  s     r   r  zBoundArguments.__eq__  sF    5=%0!!%//1 2%//1	3r   c                 ,    |d   | _         |d   | _        y )Nr  r  r  r  r  s     r   r  zBoundArguments.__setstate__  s    -{+r   c                 4    | j                   | j                  dS )Nr  r  r  s    r   __getstate__zBoundArguments.__getstate__  s    "ooDNNKKr   c                     g }| j                   j                         D ]&  \  }}|j                  dj                  ||             ( dj                  | j                  j
                  dj                  |            S )Nz{}={!r}z	<{} ({})>r+  )r  r   r   r)  r<  r   rI  )r>  r  rA  r   s       r   rz  zBoundArguments.__repr__  s`    ....0JCKK	((e45 1!!$.."9"9499T?KKr   N)r   ry   r5  r9  r  r  re   r  r  r  r  r  r  rz  r}   r   r   r
   r
   5  sj      ;I$    ,  :-83,LLr   r
   c                       e Zd Z	 dZeZeZeZ	dedddZ
edddddd       Zed	        Zed
        ZeeddZd Zd Zd ZdddZd Zd Zd Zd Zd Zd Zy)r$   )_return_annotation_parametersNTrG  c                   	 |t               }n|rt               }t        }d}|D ]  }|j                  }|j                  }	||k  r3d}
|
j	                  |j
                  |j
                        }
t        |
      ||kD  r|}|t        t        fv r#|j                  t        u r|rd}
t        |
      d}|	|v rdj	                  |	      }
t        |
      |||	<    nt        d |D              }t        j                  |      | _        || _        y )NFz7wrong parameter order: {} parameter before {} parameterz-non-default argument follows default argumentTzduplicate parameter name: {!r}c              3   8   K   | ]  }|j                   |f  y wr   r   r  r   s     r   r	  z%Signature.__init__.<locals>.<genexpr>  s     $QjUejj%%8js   )rn   r   r   r   r)  rn  r   r  r  r)  r   MappingProxyTyper  r  )r>  r  r  rH  r  top_kindseen_defaultr   r   r   r  s              r   r  zSignature.__init__  s   	  ]F&$+$'E ::D ::Dh(  "jj)=)=)-)9)9;(o-#' 02HII ==F2+'1&0o 5 ,0Lv~>EEdK(o-#(F4L? (B %$Qj$QQ 11&9"3r   Ffollow_wrappedrr   rs   rt   c                &    	 t        || ||||      S )N)r  r  rr   rs   rt   )r  )r  r   r  rr   rs   rt   s         r   r^  zSignature.from_callable	  s&     	B'C>L07QY[ 	[r   c                     | j                   S r   )r  r  s    r   r  zSignature.parameters  r  r   c                     | j                   S r   r  r  s    r   r  zSignature.return_annotation  s    &&&r   )r  r  c                    	 |t         u r| j                  j                         }|t         u r| j                  } t	        |       ||      S )Nr.  )r  r  r  r  r   )r>  r  r  s      r   r  zSignature.replace  sO    	
 //1J% $ 7 7tDz*,=? 	?r   c                    t        d | j                  j                         D              }| j                  j                         D ci c]"  }|j                  t        k(  r|j
                  |$ }}||| j                  fS c c}w )Nc              3   F   K   | ]  }|j                   t        k7  r|  y wr   )r   r  r  s     r   r	  z(Signature._hash_basis.<locals>.<genexpr>)  s$      =*B %

m ; *Bs   !)r  r  r  r   r  r   r  )r>  r  r   
kwo_paramss       r   _hash_basiszSignature._hash_basis(  s     =$//*@*@*B = = 6:__5K5K5M H5ME+0::+F jj%'5M
 H z4#9#999Hs   'A?c                 x    | j                         \  }}}t        |j                               }t        |||f      S r   )r  	frozensetr  r  )r>  r  r  r  s       r   r  zSignature.__hash__1  s>    040@0@0B-
-z0023
VZ):;<<r   c                 z    | |u ryt        |t              st        S | j                         |j                         k(  S r  )r~   r$   r  r  r  s     r   r  zSignature.__eq__6  s9    5=%+!!!U%6%6%888r   r   c          	         	 i }t        | j                  j                               }d}t        |      }g }	 	 t        |      }		 t        |      }
|
j                  t
        t        fv rt        d      d |
j                  t        k(  r-|	g}|j                  |       t        |      ||
j                  <   nW|
j                  |v r9|
j                  t        k7  r&t        dj                  |
j                              d |	||
j                  <   d }t%        j&                  ||      D ]O  }
|
j                  t
        k(  r|
}|
j                  t        k(  r-|
j                  }	 |j)                  |      }	|	||<   Q |rr||||j                  <   n`|r1t        dj                  dj-                  d |D                          t        dj                  t        t        |                        | j/                  | |      S # t        $ r t        d      d w xY w# t        $ r 	 t        |      }
|
j                  t        k(  rY 5|
j                  |v rY|
j                  t        k(  r@|
j                  t         u rd|
j                  }t        |      |j#                  |
       Y j|
f}Y |
j                  t
        k(  s|
j                  t         ur|
f}Y |r|
f}Y |
j                  t        k(  rd}nd}d}|j                  |
j                  |	      }t        |      d # t        $ r Y Y w xY ww xY w# t*        $ rG |sA|
j                  t        k7  r.|
j                  t         u rt        d
j                  |            d Y ^w xY w)Nr}   ztoo many positional argumentsz$multiple values for argument {arg!r})rA  z-missing a required positional-only argument: z keyword-onlyr  z-missing a required{argtype} argument: {arg!r})rA  argtypez$missing a required argument: {arg!r}zGgot some positional-only arguments passed as keyword arguments: {arg!r}r+  c              3   4   K   | ]  }|j                     y wr   r   r  s     r   r	  z"Signature._bind.<locals>.<genexpr>  s      &)A "JJ)As   z*got an unexpected keyword argument {arg!r})r  r  r  r  r   r  r  r   r  r  r  r   r   r)  StopIterationr  r)  r   r  r3  rH  ra  rI  _bound_arguments_cls)r>  r  r  r   r  r  parameters_exarg_valspos_only_param_in_kwargsarg_valr   r  r  r  kwargs_paramr  s                   r   _bindzSignature._bind=  s   1	$//0023
:#% J4x.`4 ,E zzlM%BB (;=BFG zz_4 #*h/05f	%**-zzV+

>N0N'BII$)JJ J 016:; -4Iejj)[ b __]J?Ezz\)$zz_, J0 **Z0 )0	*%5 @8 '/5	,++,)117 II &)A&  28 2   @GG f. H 01 1 ((y99W % O#$CD$NOc ! ,;*; ,E zz_4 v- ::)99$}}6(UV[V`V`Uc&d&/n 4 5;;EB$).**405V0K */ #-2HM!$zz]:*9*,"QC"%**W*"MC"+C.d:Q %  	,;x  F
  EJJ/$A49MMV4K#$J$*FzF$:<AEFFsn   H G: L1:H
L.L)L.?AL. L.&(L.L.AL.	L*%L.)L**L.1AN Nc                (    	 | j                  ||      S r   r  r>  r  r  s      r   bindzSignature.bind  s    	 zz$''r   c                ,    	 | j                  ||d      S )NTr  r  r  s      r   r  zSignature.bind_partial  s    	 zz$z55r   c                 z    t        |       t        | j                  j                               fd| j                  ifS Nr  )r   r  r  r  r  r  s    r   r}  zSignature.__reduce__  s=    T
t''..013%t'>'>?A 	Ar   c                     |d   | _         y r  r  r  s     r   r  zSignature.__setstate__  s    "'(<"=r   c                 N    dj                  | j                  j                  |       S )Nz<{} {}>r  r  s    r   rz  zSignature.__repr__  s     7 7>>r   c                    g }d}d}| j                   j                         D ]u  }t        |      }|j                  }|t        k(  rd}n|r|j                  d       d}|t        k(  rd}n|t        k(  r|r|j                  d       d}|j                  |       w |r|j                  d       dj                  dj                  |            }| j                  t        ur)t        | j                        }|dj                  |      z  }|S )NFT/r  z({})r+  z -> {})r  r  r   r   r   r   r  r  r)  rI  r  r)  r+   )	r>  r  render_pos_only_separatorrender_kw_only_separatorr   r  r   renderedannos	            r   rq  zSignature.__str__  s    $)!#' __++-EE
I::D'',0)* c",1)& ,1(&+C c" ,1(MM)$5 .8 % MM#==6!23!!/#D$:$:;D--Hr   r   )r   ry   r5  r9  r#   r/  r
   r  r)  r  r  r  r^  r  r  r  r  r  r  r  r  r  r  r  r}  r  rz  rq  r}   r   r   r$   r$     s    , 6IN)E24V)-24h %)4u[ [     ' ' %*U ?:=
9 .3 L:\(6A
>?+r   r$   r  c                8    	 t         j                  | ||||      S )Nr  )r$   r^  )r   r  rr   rs   rt   s        r   re   re     s*    9""3~+26H # V Vr   c                       e Zd ZdZdZdZdZdez  Zdez  Zdez  Z	dez  Z
d	ez  Zeez  ZeZeez  ZeZeez  ez  Zeez  Zeez  ez  Zeez  Zd	Zd
Zy)r   rj   rD               @         i   N)r   ry   r5  SIMPLEWRITABLEFORMATNDSTRIDESC_CONTIGUOUSF_CONTIGUOUSANY_CONTIGUOUSINDIRECTCONTIG	CONTIG_ROSTRIDED
STRIDED_RORECORDS
RECORDS_ROFULLFULL_ROREADWRITEr}   r   r   r   r     s    FHF	BRiG'>L'>LG^NwH(]FI GJ 6)G6!Jh'DGDEr   r   c                  "   	 dd l } dd l}| j                         }|j                  dd       |j                  dddd	       |j	                         }|j
                  }|j                  d
      \  }}}	  |j                  |      x}}	|r&|j!                  d      }	}|D ]  }t#        ||      } 	j                  t        j$                  v r0t        dt        j                         t        j                  d       |j&                  rt        dj                  |             t        dj                  t)        |	                   t        dj                  |	j*                               |	u r^t        dj                  t-        |	j.                                     t1        |	d      rNt        dj                  |	j2                               n)	 t5        |      \  }}t        dj                  |             t        d       y t        t7                     y # t        $ ra}
dj                  |t        |
      j                  |
      }t        |t        j                         t        j                  d       Y d }
~
d }
~
ww xY w# t        $ r Y w xY w)Nrj   r   zCThe object to be analysed. It supports the 'module:qualname' syntax)helpz-dz	--details
store_truez9Display info about the module rather than its source code)actionr  :zFailed to import {} ({}: {}))r  r  r3  z#Can't get info for builtin modules.rD  z
Target: {}z
Origin: {}z
Cached: {}z
Loader: {}__path__zSubmodule search path: {}zLine: {}rC  )argparser\  ArgumentParseradd_argument
parse_argsr   	partitionimport_moduler  r)  r   r   printr   stderrexitr6  r   builtin_module_namesdetailsrK   
__cached__r  rl  r   r  r*   rJ   )r  r\  parserr  targetmod_name	has_attrsattrsr   r   r  r  partspart__r  s                   r   _mainr  .  s-   @$$&F
9  : k,H  J D[[F!'!1!1#!6Hi.y..x88f C D#t$C  #2223#**E||l!!&)*l!!-"789l!!&"3"345&=,%%d6+<+<&=>?vz*188IJ1'_
F j''/0dinG  ,33H48I4F4F479 	c

#8  s+   4H J 	I?AI::I?	JJrR  r   )F)rD  )r}   )T)TNNF)
__author____all__r   r  r]  collections.abcr   enumimportlib.machineryr\  r  ru  rY  r  r   r  r  r   r   r~  keywordrk   operatorrl   rm   rn   weakrefro   r  rr   mod_dictCOMPILER_FLAG_NAMESr   r   r   r%   r.   ra   rS   r^   r_   rW   r   r]   r\   rY   r   r[   r   r   r   rd   rV   rP   rO   rZ   rU   rQ   rc   rX   rT   rR   r`   rb   rN   r  rD   rE   r   r'   rH   rh   rM   r7  r@  r<   r(   r=   rG   rK   r/   r  r  rF   r  r   NodeVisitorr  r*   r9   r   r	   r5   rL   rJ   ri   r7   r   r0   r   r?   r   r1   r+   r,   r   r-   r9  rE  r6   r   r8   rm  r&   r  r  r>   rC   _fieldsr  r   rI   rB   r)   rf   rg   r  r   rv   r   r  r  r  r  	lru_cacher  r  r4   r    r!   r"   r   rA   r@   r   r   r   r   r;   r:   r   r   r   r   r3   r2   WrapperDescriptorTyper   r  r   r  r  r  r  r  r   r  rB  rE  rU  r  r  r  r)  IntEnumrj  r5  r   r6  r  r8  r  r9  r  r;  r  r#   r
   r$   re   IntFlagr   r  r   r}   r   r   <module>r$     s7  @9
iX  
 
      	 	 
        / ' 9##))+DAqHUQY ,q(   %) vt0$0A(? 5()> 5()>2	,- X JI383"3;3/.297(0(T3
: {$EF	ph  @0
<|& :,8
28 ,^	) 	3?? >B0H+%Z " !4 4l$&0*+6 {$:;	86 MOZ<z Y >
?9 ""9 8 ?	(.7 D*:x (LM54r &ST

-
 
-7O)AV
 j93D3D&DE

@
 
@C5' H	y)11 MM*5== 4  $
 '0 /h 
$& !$
 !$. "77!33!;;!557 $I?X*4*G2/+dK8\<  8<AF\9~+ 48,0%)$(&+oPd< <A AT\\ " *99 )?? )88)66)55[7 [7|L LDX Xv
 &*4u V$,, ,7t z	G r   