
    daf'                       	 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              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&                  }||}||	}|j)                         D ci c]%  \  }}|t        |t*              s|nt-        |||      ' }}}|S 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__)
isinstancetypegetattrhasattrrw   typesGetSetDescriptorTypesysmodulesdictvars
ModuleTypecallable	TypeError
ValueErrorr{   	functoolspartialfuncrz   itemsstreval)objrr   rs   rt   obj_dictannobj_globalsmodule_namemodule
obj_localsrh   keyvaluereturn_values                 "/root/Python-3.12.4/Lib/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~ ))+(C s+eWf1MN (L ( (s   *G>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^   ,  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_   0  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   D  sC     v(6*j.@	fB2y!>WR%>>r   MemberDescriptorTypec                 8    	 t        | t        j                        S r   )r|   r   r   r   s    r   r]   r]   T      	 &%"<"<==r   c                      	 yNF r   s    r   r]   r]   \      	 r   r   c                 8    	 t        | t        j                        S r   )r|   r   r   r   s    r   r\   r\   e  r   r   c                      	 yr   r   r   s    r   r\   r\   m  r   r   c                 8    	 t        | t        j                        S r   )r|   r   FunctionTyper   s    r   rY   rY   t  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~   r   r   s    r   _has_coroutine_markr     sA    
1+JJ 1+!!!$A1,d37KKKr   c                 N    	 t        | d      r| j                  } t        | _        | S )Nr   )r   r   r   )r   s    r   rd   rd     s)     tZ }} 4D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>Z  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   3  sN   GIKEvVn	(( ( MM//1 (DAq!!U%@%@AQ((  	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   ]  s    Gvy'22r   c                 &    	 t        | |t              S r   )r   r4   r   s     r   rE   rE   b  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     HCc$.GCHs   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'   r  s   4 +CT#YGH7HHG&3,Kg%IHE   MM'') 	 DAq!U889aff>PQ	   FI D y +:%#$OPP!#t, "'>7C+- #G#H$/ 0#*8T4#@#w.'/H0
 %, 0%'/';';C'FH $w.'/H0  +"* 	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D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   
_findclassr2    sb    
++//$//
*C
{!!'',Sb1 !c4 !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   r.  	__slots__)rS   r  r   __doc__r   r^   r   __name____self__r~   	__class__rY   r2  rR   r0  r|   r  r
  r_   rW   r  r]   r   )r   r   docr   selfr  r   slotss           r   _finddocr<    s   s|KK 	D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   )r5  r   r<  r   r|   r   r(   )r   r9  s     r   r<   r<   Y  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   r/  )r)  r1  r   maxsizer#  r*  minrangepopjoinUnicodeError)r9  linesmarginr+  contentindentis          r   r(   r(   l  s     &&t,
 !"I 	-D$++-(GTW,VV,		- Qx(E!HCKK1c%j)GeAhvw6G58G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~   rM  r   r$  rS   r   r   r   rw   ry   OSErrorr^   r   rY   r   rc   tb_framerX   f_coderT   co_filenamer}   r6  )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)rV  fnamesuffixsuffixesneglens        r   rG   rG     s    ;GGT"E #,"5"5"B"B"DF f+v& FH 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   rb  rc  s     r   r  z getsourcefile.<locals>.<genexpr>  s       9aXq! 9rf  
__loader____spec__loader)r=   rX  rY  DEBUG_BYTECODE_SUFFIXESOPTIMIZED_BYTECODE_SUFFIXESanyrU  rV  splitextSOURCE_SUFFIXESEXTENSION_SUFFIXES	linecachecacheexistsrF   r~   )r   all_bytecode_suffixesr   re  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=   rU  rV  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   rM  rN  r6  builtins)ra   r   r   r   rw   ry   modulesbyfiler/   r   FileNotFoundErrorcopyr   rM  _filesbymodnamer6  rU  rV  realpathr~   )
r   rx  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 
7F
 ;AO''66'(OG$6"A (.7M!}  # %
7 }{{}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r6  ry   r0  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_visitrD  )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 )Nr.  rj   r@  )
rf   r   r   r  rE  decorator_listlinenor   r  rD  )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)r6  ry   r0  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<>rO  zcould not get source coderj    zcould not find class definitionco_firstlinenoz"could not find function definitionr@  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   rq  
checkcacher=   
startswithr[  rP  rF   getlinesrv   ra   rS   r0  rE  astparser  visitr   argsr^   r   rY   r   rc   rQ  rX   rR  rT   r   r  recompile
IndexErrormatch)r   r  r   rG  r  sourcetreeclass_finderer  lnumpatr+  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#!r@  )r  #r  r  r/  )r*   rP  r   ra   r#  stripr   r)  rE  rM   r*  )r   rG  r  startcommentsendrJ  comments           r   r9   r9   l  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   Fr@  )rJ  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   r@  )r  r  r  r  tokenizeNEWLINEr  r   INDENTr  rJ  DEDENTCOMMENTNL)r:  r}   tokensrowcolerowcolr+  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)r6  ry   r0  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  )rG  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   r@  )	rh   r*   rc   rQ  ra   rX   rR  co_namer5   r   rG  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   rE  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   r6  r   )r   rl   r   r   ri   )classeschildrenparentr   cs        r   ri   ri     sj    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 	;;++ 7)')HV$HV,,V$++A.f/7 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 objectr@  )rT   r   r$  co_varnamesco_argcountco_kwonlyargcountlistr   r   r   r   )cor   nargsnkwargsr  
kwonlyargsvarargsvarkws           r   r0   r0   *  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
kwdefaultsparamr  r   s                 r   r?   r?   H  s   8" 't=B6;.705	7 DGEKJKHJ
CII- # 5 5H&&( 1zzzz##t$}}EKK/U]],,++KK}}EKK/U]],,_$G]"d#}}EKK/#(==
4 \!E5;;. % 0 0K-10 
{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   rR  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\.]+rz  r.  )r~   r  subreprr|   r   GenericAliasr   r}   ry   r0  )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
    sTz r   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   (, ))rC  r#  r   rE  )r  r  r  rs   r$  formatvarargsformatvarkwr%  r&  specsrK  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 )Nr@  rj   r  z	{} and {}z, {} and {}r(  z*%s() missing %i required %s argument%s: %s
positionalkeyword-onlyr  rd  )r  r#  r$  rE  r   )	f_nameargnamesposr  r   r   missingrd  tails	            r   _missing_argumentsr6    s    $,CDF0BT$ZCE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 )Nr@  zat least %dTzfrom %d to %dr  z7 positional argument%s (and %d keyword-only argument%s)rd  z5%s() takes %s positional argument%s but %d%s %s givenwaswere)r#  r   r   )r1  r  kwonlyr  defcountgivenr  atleastargkwonly_givenpluralr  
kwonly_sigr  s                 r   	_too_manyrB    s   $i("G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 Tr@  F)r?   r6  r^   r7  r#  rB  rC  r	  r   r   r   rB  r6  	enumerate)r   r/  namedspecr  r  r  r  r  kwonlydefaultsr   r1  	arg2valuenum_posnum_argsnum_defaultsnrK  possible_kwargskwr   reqr>  r4  kwargs                            r   r6   r6     sI   -
 $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|+, 	AC)#"63i@	A  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               }	|j                   D ]  }
|
dv r	 ||
   ||
<    t'        ||||	      S c c}}w # t"        $ r- 	 ||
   ||
<   n # t"        $ r |	j%                  |
       Y nw xY wY \w xY w)N{!r} is not a Python function__builtins__)NoneTrueFalse)r^   r   rY   r   r$  r   __closure__zipco_freevarscell_contentsrz   rw   rz  rv   ra   r   co_namesKeyErrorr   r   )r   codenonlocal_varsvarcell	global_ns
builtin_nsglobal_varsbuiltin_varsunbound_namesr   s              r   r8   r8   @  so    ~}}d7>>tDEE==D  !!1!143C3CD	T $$$$	 	   I~x/@/@AJ
((
KLEM (,, 	( )$K( }k#]4 47	*  	((%/%5T" (!!$'(	(s<   <D<D	E$D-,E-E
E	E

EE
_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__ri  )	r  re  r  functioncode_contextindexri  instancer8  s	           r   rm  zTraceback.__new__x  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$  re  r  rn  ro  rp  ri  r  s    r   __repr__zTraceback.__repr__}  s@    @@Ft{{DMM4;L;L

DNNA,	-r   r6  ry   r0  rm  rs  __classcell__r8  s   @r   r&   r&   w  s    SW 
-r   r&   c                 ^    | j                   j                  | j                  }}t        ||      S r   )rQ  rR  tb_lasti_get_code_position)tbr]  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)r]  r{  positions_gens      r   ry  ry    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   r@  z'{!r} is not a frame or traceback objectr  rh  )rc   r|  	tb_linenorQ  f_linenory  rR  f_lastirX   r   r$  rK   r=   r*   maxrB  r#  rP  r&   r  dis	Positions)	r  contextri  r  re  r  rG  r  rp  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   Nrh  c          	      @    t         	|   | ||||||      }||_        |S r   rk  )
r  r  re  r  rn  ro  rp  ri  rq  r8  s
            r   rm  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  re  r  rn  ro  rp  ri  r  s    r   rs  zFrameInfo.__repr__  sG    @@F

DMM4;;!!4::t~~A?	@r   rt  rv  s   @r   r   r     s    Z^ 
@r   r   c                     	 g }| rEt        | |      }| f|z   }|j                  t        |d|j                  i       | j                  } | rE|S Nri  )r>   r   r   ri  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>   rQ  r   r   ri  tb_next)rz  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	_getframer@  )r   r   r  r   r   r   r)   r)     s"    I&sK83==BdBr   c                 B    	 t        t        j                  d      |       S )Nr@  )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  excrz  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    sI    & ($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   r6  r  r  )weakref_mroweakref_entryr  dunder_dict
class_dicts        r   %_shadowed_dict_from_weakref_mro_tupler    ss    $ " /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    s,     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   +  s<   	  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0 	,EtE{+y8ENN*~~d++	, 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   d  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@   v  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 )Nrm  )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  rD  r  replacer   r   r\  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  '--/ 0+
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0+d **;*;*=>>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 signaturer@  zinvalid argument typer  )r	  r  r  r  r  r   r   r  r  r  r  )r  paramsr  s      r   _signature_bound_methodr  B  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  \  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 )NFr6  r   __defaults____kwdefaults__rx   )
r   rS   r~   _voidr|   r   r   r   r	  r   )r   r   r]  r  r  r  s         r   r   r   j  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 )	Nr?  asciirj   ,r@  $ r  )r1  encoder  r  r  r   r  OP
ERRORTOKENr  r}   stringrE  r  r  )re   self_parameterlrG  r  token_streamr  r   current_parameterr  r  tr}   r  clean_signatures                  r   "_signature_strip_non_python_syntaxr    s0    $N(1(=C1QXXgCE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   r>  )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)rd  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 )Nr.  )r|   r  r   r   r  r   Namer   r!  rE  reversed)r:  r  arL  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)r6  ry   r0  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r7  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_ONLYrX  POSITIONAL_OR_KEYWORDvarargVAR_POSITIONALKEYWORD_ONLYr  kw_defaultsrP  VAR_KEYWORDra   rD  r  )r  r   rd  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_fromstrr<    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	$ 	vv}}''	!&&-- !!DQVV..0B0BC g	$ 	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   r<  )r  r   r  rd  s       r   _signature_from_builtinr?  C	  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 )NFTrR  r>  rq   rj   )r  r  r@  )r  r  r  r  r  __validate_parameters__)rY   r   r   r$  r~   r<  r)  r   r  r  co_posonlyargcountr  r.   r  r  r#  r  r  rw   r#  r   rD  r   r   r  r   r   r  )r  r   r  rr   rs   rt   is_duck_functionrd  r#   	func_code	pos_count	arg_namesposonly_countr/  keyword_only_countkeyword_onlyr  r  r  pos_default_countr  non_default_countposonly_leftr   r  r  offsetr  rp  s                                r   _signature_from_functionrO  S	  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 J&%778 __T62
)DZ)8: 	;  6! nnT62G __T62
)DZ)6,35 	6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 r   r  z1unexpected object {!r} in __signature__ attributer   rj   r  )r  rr   rs   rt   )r  __call__rm  r  r/  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   rT  r$   r   r<  r   _partialmethodpartialmethodr   r  r	  r  r  r  r#   r2  r  rY   r   rO  r  r?  r}   r  r  rv   r>  r  r   rm  from_callabler   r4   r  )r   r  r  rr   rs   rt   r  _get_signature_ofr  o_sigrW  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 KK 		/D9#=',!1#6C
!jDMM&A(..		/ KK$ 	FDF22  .fdHEE!	F* 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  m
  s    ;r   r  c                       e Zd Zy)r#  Nr  r   r   r   r#  r#  q
  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 positionalr0  zvariadic keywordc                 x    t        | j                        }t        j                  | |      }||_        ||_        |S r   )r#  __members__r  rm  _value_description)r  rh  r   members       r   rm  z_ParameterKind.__new__|
  s4    COO$S%((r   c                     | j                   S r   r  r  s    r   __str__z_ParameterKind.__str__
  s    yyr   N)
r6  ry   r0  r/  r0  r2  r3  r5  rm  rk  r   r   r   rd  rd  u
  s&    'O3*N!L$Kr   rd  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   r.  r@  zLimplicit arguments must be passed as positional or keyword arguments, not {}z
implicit{}z"{!r} is not a valid parameter name)rd  rn  r   r#  r  r  r$  rh  ro  rp  r|   r   r}   r6  r   isdigitr  r  rk   isidentifierrm  )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ro  rp  )r}   rm  rn  ro  rp  r  s    r   
__reduce__zParameter.__reduce__
  s8    T
TZZ(!]] $ 0 023 	3r   c                 ,    |d   | _         |d   | _        y )Nro  rp  rv  r:  states     r   __setstate__zParameter.__setstate__
  s    j) /r   c                     | j                   S r   )rm  r  s    r   r   zParameter.name
      zzr   c                     | j                   S r   )ro  r  s    r   r  zParameter.default
  s    }}r   c                     | j                   S r   )rp  r  s    r   r  zParameter.annotation
      r   c                     | j                   S r   )rn  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  rm  rn  rp  ro  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  rm  rp  r#  r$  r+   ro  r  r  r  )r:  r  	formatteds      r   rk  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$  r8  r6  r  s    r   rs  zParameter.__repr__  s    !!$.."9"94@@r   c                 p    t        | j                  | j                  | j                  | j                  f      S r   )hashrm  rn  rp  ro  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#   NotImplementedrm  rn  ro  rp  r:  others     r   __eq__zParameter.__eq__   sv    5=%+!!

ekk) 6

ekk)6/6   E$5$55	7r   N)r6  ry   r0  r4  r  r/  r  r0  r  r2  r   r3  r  r5  r#  r  r  rw  r{  r  r   r  r  r  r  r  rk  rs  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__>  s    "#r   c                     | j                   S r   )r  r  s    r   re   zBoundArguments.signatureB  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   r\  r	  )r:  r  r  r	  r>  s        r   r  zBoundArguments.argsF  s    !%!;!;!A!A!C 	%JzzlM::  T{%nnZ0 ::0KK$ KK$!	%$ 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  updater\  )r:  kwargskwargs_startedr  r	  r>  s         r   r  zBoundArguments.kwargs]  s    !%!;!;!A!A!C 	-J!::,!>>%)N!7)- !
-nnZ0 ::-MM#& *-F:&-	-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   r\  r  r#  r  r  r  r   )r:  r  new_argumentsr   r	  vals         r   apply_defaultszBoundArguments.apply_defaults{  s    	 NN	??55;;= 	2KD%2$$dIdO%<=	2 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  ry  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$  r8  r6  rE  )r:  r  r>  r   s       r   rs  zBoundArguments.__repr__  se    ....0 	6JCKK	((e45	6!!$.."9"9499T?KKr   N)r6  ry   r0  r4  r  r  re   r  r  r  r  r{  r  rs  r   r   r   r
   r
   +  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_parametersNTrA  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     $QUejj%%8$Qs   )rn   r  r  r   r$  rh  r   r  r  r#  r   MappingProxyTyper  r  )r:  r  r  rB  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   rX  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#      = %

m ;  =s   !)r	  r  r  r  r   r   r  )r:  r  r	  
kwo_paramss       r   _hash_basiszSignature._hash_basis  s     =$//*@*@*B = = 6:__5K5K5M HE+0::+F jj%' H
 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__'  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__,  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 4|
j                  |v r-|
j                  t        k(  r|j                  |
       Y =|
f}Y o|
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 1w xY w)Nr   ztoo many positional argumentsz$multiple values for argument {arg!r})r>  z keyword-onlyr  z-missing a required{argtype} argument: {arg!r})r>  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      & % "JJ&s   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  r-  rD  r\  rE  _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._bind3  s~   1	$//0023
:#% G4x.Z4 ,E zzlM%BB (;=BFG zz_4 #*h/05f	%**-zzV+

>N0N'BII$)JJ J 016:; -4Iejj)U \ __]J? 	0Ezz\)$zz_, J0 **Z0 )0	*%5	08 '/5	,++,)117 II &)A&  28 2   @GG f. H 01 1 ((y99W % O#$CD$NO] ! );'; ,E zz_4 v- ::)99 5;;EB$).**405V0K */ #-2HM!$zz]:*9*,"QC"%**W*"MC"+C.d:K %  	);r  F
  EJJ/$A49MMV4K#$J$*FzF$:<AEFFsm   H G: L:H	LK/(L>2L3L9(L$L,AL/	K=8L<K==LAMM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   rw  zSignature.__reduce__  s=    T
t''..013%t'>'>?A 	Ar   c                     |d   | _         y r  r  ry  s     r   r{  zSignature.__setstate__  s    "'(<"=r   c                 N    dj                  | j                  j                  |       S )Nz<{} {}>r  r  s    r   rs  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$  rE  r  r#  r+   )	r:  r  render_pos_only_separatorrender_kw_only_separatorr	  r  r  renderedannos	            r   rk  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   )r6  ry   r0  r4  r#   r)  r
   r  r#  r  r  r  rX  r  r  r  r  r  r  r  r  r  r  r  rw  r{  rs  rk  r   r   r   r$   r$     s    , 6IN)E24V)-24h %)4u[ [     ' ' %*U ?:=
9 .3 I:V(6A
>?+r   r$   r  c                8    	 t         j                  | ||||      S )Nr  )r$   rX  )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   r@               @         i   N)r6  ry   r0  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  r.  z#Can't get info for builtin modules.r@  z
Target: {}z
Origin: {}z
Cached: {}z
Loader: {}__path__zSubmodule search path: {}zLine: {}r?  )argparserX  ArgumentParseradd_argument
parse_argsr   	partitionimport_moduler  r$  r}   r6  printr   stderrexitr1  r~   builtin_module_namesdetailsrK   
__cached__r  rh  r   r  r*   rJ   )r  rX  parserr  targetmod_name	has_attrsattrsr   r   r  r  partspart__r  s                   r   _mainr  !  s2   @$$&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rN  r   )F)r@  )r   )T)TNNF)
__author____all__r   r  r  collections.abcr   enumimportlib.machineryrX  r  rq  rU  r  r   r  r  r   r   rz  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   r2  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-   r6  rB  r6   r   r8   rf  r&   r|  ry  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  r<  r?  rO  r  r  r  r#  IntEnumrd  r/  r  r0  r  r2  r  r3  r   r5  r  r#   r
   r$   re   IntFlagr   r  r6  r   r   r   <module>r     s<  @9
iX  
 
      	 	 
        / ' 9##))+ DAqHUQYq(   %) ph0$0A(? 5()> 5()>2	,- x L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14j &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U Up
 &*4u V$,, ,7t z	G r   