
    ,hhpr                        S SK r S SKrS SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
Jr  S SKJr  / SQr\" \5       " S S5      5       r\" S	S
9 " S S5      5       r\" S	S
9 " S S5      5       r " S S5      r " S S5      rS rS rS rS rS rS rS r\S:X  a  S SKr S SKr " S S\R>                  5      r \!" \ RD                  5      S:  a  \ RD                  S   r#OSr# \ " \#5      r$\ RD                  SS  H  r%\$RM                  \%5        M     \'" S\$RP                  S 9  \$RS                  5         \'" S!\$RP                  S 9  gg! \ a     Nf = f! \* a     gf = f)"    N)StrEnum_simple_enum)
cmp_to_key)	dataclass)Dict)StatsSortKeyFunctionProfileStatsProfilec                   >    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rS rSrg)r	   $   )callsncalls)
cumulativecumtime)filenamemodulelinenamenflpcallsstdname)timetottimec                     US   n[         R                  X5      nX#l        USS   H  nX0R                  U'   M     Xl        U$ Nr      )str__new___value__value2member_map__all_values)clsvaluesvalueobjother_values        //opt/python-3.13.8/usr/lib/python3.13/pstats.pyr   SortKey.__new__0   sF    q	kk#%!!":K25"";/ & 
     N)__name__
__module____qualname____firstlineno__CALLS
CUMULATIVEFILENAMELINENAMENFLPCALLSSTDNAMETIMEr   __static_attributes__r+   r*   r(   r	   r	   $   s4    E(J#HDD
CFGDr*   r	   T)unsafe_hashc                   \    \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   S	rg
)r
   :   r   r   percall_tottimer   percall_cumtime	file_nameline_numberr+   N)	r,   r-   r.   r/   r   __annotations__floatintr9   r+   r*   r(   r
   r
   :   s(    KNNNr*   r
   c                   4    \ rS rSr% \\S'   \\\4   \S'   Sr	g)r   D   total_ttfunc_profilesr+   N)
r,   r-   r.   r/   rB   rA   r   r   r
   r9   r+   r*   r(   r   r   D   s     O_,--r*   r   c                       \ rS rSrSS.S jrS rS rS rS rS	 r	S
S
SSSSSSSSSSSS.r
S rS rS rS rS rS rS rS rS rS rS rS rS$S  jrS! rS" rS#rg)%r   J   N)streamc                    U=(       d    [         R                  U l        [        U5      (       d  S nO
US   nUSS  nU R	                  U5        U R
                  " U6   g r   )sysstdoutrJ   leninitadd)selfrJ   argsargs       r(   __init__Stats.__init__l   sJ    *

4yyCq'C8D		#$r*   c                 p   S U l         / U l        S U l        SU l        SU l        SU l        SU l        [        5       U l        0 U l	        0 U l
        U R                  U5         U R                  5         g ! [         a9    [        SU R                  (       a  U R                  S   OS-  U R                  S9  e f = f)Nr   zInvalid timing data %s file)all_calleesfilesfcn_listrF   total_calls
prim_callsmax_name_lenset	top_levelstatssort_arg_dict
load_statsget_top_level_stats	ExceptionprintrJ   )rQ   rS   s     r(   rO   
Stats.initv   s    

	$$& 	*%)ZZ4::b>R9?C{{L	s   !A2 2AB5c                 .   Uc  0 U l         g [        U[        5      (       av  [        US5       n[        R
                  " U5      U l         S S S 5         [        R                  " U5      n[        R                  " UR                  5      S-   U-   nU/U l        O9[        US5      (       a(  UR                  5         UR                   U l         0 Ul         U R                   (       d  [        SU R                  < SU< 35      eg ! , (       d  f       N= f!    N= f)Nrbz    create_statszCannot create or construct a z object from )rc   
isinstancer   openmarshalloadosstatr   ctimest_mtimer\   hasattrrl   	TypeError	__class__)rQ   rS   f
file_statss       r(   re   Stats.load_stats   s    ;DJS!!c4A$\\!_
 !WWS\
jj!4!45>D DJS.))DJCIzz#~~s4 5 5 !
s   C?<D ?
DDc                    U R                   R                  5        H  u  nu  p#pEnU =R                  U-  sl        U =R                  U-  sl        U =R                  U-  sl        SU;   a  U R
                  R                  U5        [        [        U5      5      U R                  :  d  M  [        [        U5      5      U l	        M     g )N)jprofiler   profiler)
rc   itemsr^   r_   rF   rb   rP   rN   func_std_stringr`   )rQ   funcccncttctcallerss          r(   rf   Stats.get_top_level_stats   s    /3zz/?/?/A+D+227"OO"OMM"M*g5""4(?4()D,=,==$'(=$>! 0Br*   c                     U(       d  U $ [        U5       GHd  n[        U 5      [        U5      :w  a  [        U5      nU =R                  UR                  -  sl        U =R                  UR                  -  sl        U =R
                  UR
                  -  sl        U =R                  UR                  -  sl        UR                   H  nU R                  R                  U5        M      U R                  UR                  :  a  UR                  U l	        S U l
        UR                  R                  5        HC  u  p4X0R                  ;   a  U R                  U   nOSSSS0 4n[        XT5      U R                  U'   ME     GMg     U $ Nr   )reversedtyper   r\   r^   r_   rF   rb   rP   r`   r]   rc   r~   add_func_stats)rQ   arg_listitemr   rr   old_func_stats         r(   rP   	Stats.add   s%   KX&DDzT$Z'T{JJ$**$J 0 00OOt.OMMT]]*M""4( '   4#4#44$($5$5! DM"jj..0
::%$(JJt$4M%&1a$5M#1-#F

4  1 '* r*   c                     [        US5       n[        R                  " U R                  U5        S S S 5        g ! , (       d  f       g = f)Nwb)rn   ro   dumprc   )rQ   r   rx   s      r(   
dump_statsStats.dump_stats   s,    (D!QLLQ' "!!s	   "8
A)))r   rW   z
call count)))   rW   zcumulative time))   r   z	file name))   r   zline number))   r   zfunction name))r   r   r   zname/file/line)))r   rW   zprimitive call count)))   r   zstandard name)))   rW   zinternal time)r   r   r   r   r   r   r   r   r   r   r   r   r   c                     U R                   (       da  0 =U l         n0 nU R                  R                  5        H-  u  p4UnU(       d  M  XQ;   a  SX%'   M  XAU'   US S nU(       a  M  M/     U H  nX	 M     U R                   $ )Nr   rW   )rd   sort_arg_dict_defaultr~   )rQ   dictbad_listwordtupfragments         r(   get_sort_arg_defsStats.get_sort_arg_defs   s    !!(**DH!77==?	h'-.*%(N'}H h @ !J !!!!r*   c                 .   U(       d	  SU l         U $ [        U5      S:X  a'  [        US   [        5      (       a  SSSSS.US      /nOA[        U5      S:  a2  USS   H)  n[	        U5      [	        US   5      :w  d  M   [        S	5      e   U R                  5       nS
nSU l        SnU HM  n[        U[        5      (       a  UR                  nXCU   S   -   nU =R                  XSU   S   -   -  sl        SnMO     / nU R                  R                  5        H.  u  nu  ppnUR                  XX4U-   [        U5      U4-   5        M0     UR                  [        [!        U5      R"                  5      S9  / =U l         nU H  nUR                  US   5        M     U $ )Nr   r   r   r   r   r   )rW   r   r   r   r   zCan't have mixed argument typer+   rX   z, )keyrW   )r]   rN   rm   rC   r   rv   r   	sort_typer	   r%   rc   r~   appendr   sortr   	TupleCompcompare)rQ   fieldrS   sort_arg_defs
sort_tuple	connectorr   
stats_listr   r   r   r   r   r   r]   tuples                   r(   
sort_statsStats.sort_stats   s   DMKu:?z%(C88$"!') */q3 5E Z1_QRy9U1X.#$DEE ! ..0
	D$((zz#D&9!&<<JNNi*=a*@@@NI  
/3zz/?/?/A+D+227rr.5.t4d;< = 0B 	Jy'<'D'DEF#%%EOOE"I&  r*   c                 \    U R                   (       a  U R                   R                  5         U $ N)r]   reverserQ   s    r(   reverse_orderStats.reverse_order  s    ==MM!!#r*   c           	         U R                   n0 =U l         nSnUR                  5        H  u  nu  pVpxn	[        U5      n
[        [	        U
5      5      U:  a  [        [	        U
5      5      n0 nU	R                  5        H  u  pX[        U5      '   M     X;   a  [        X*   XVXxU45      X*'   M  XVXxU4X*'   M     U R                  n[        5       =U l        nU H  nUR                  [        U5      5        M     X0l	        S U l
        S U l        U $ r   )rc   r~   func_strip_pathrN   r   r   rb   ra   rP   r`   r]   r[   )rQ   oldstatsnewstatsr`   r   r   r   r   r   r   newfunc
newcallersfunc2callerold_topnew_tops                   r(   
strip_dirsStats.strip_dirs  s   :: ""
X/7~~/?+D+227%d+G?7+,|;"?7#;<J!(5;?512 "1 "$2(0(9)+(D%F! &(RZ$@! 0@ ..#&5(DKK-.  )r*   c                     U R                   (       a  g 0 =U l         nU R                  R                  5        H<  u  nu  p4pVnX!;  a  0 X'   UR                  5        H  u  pX;  a  0 X'   XU   U'   M     M>     g r   )r[   rc   r~   )
rQ   r[   r   r   r   r   r   r   r   r   s
             r(   calc_calleesStats.calc_callees4  s    )++;/3zz/?/?/A+D+227&$&!!(+)+K&,2E"4( "1 0B 	r*   c                    Un[        U[        5      (       aU   [        R                  " U5      n/ nU H5  nUR                  [        U5      5      (       d  M$  UR                  U5        M7     Or[        U5      n[        U[        5      (       a&  SUs=::  a  S:  a  O  O[        Xq-  S-   5      nUS U nO,[        U[        5      (       a  SUs=::  a  U:  a
  O  OUnUS U n[        U5      [        U5      :w  a$  US[        U5      < S[        U5      < SU< S	3-  nXC4$ ! [        R                   a    USU-  -  nXC4s $ f = f)
Nz#   <Invalid regular expression %r>
g        g      ?g      ?r   z   List reduced from z to z due to restriction <z>
)rm   r   recompilePatternErrorsearchr   r   rN   rB   rC   )rQ   sellistmsgnew_listrexr   counts           r(   eval_print_amountStats.eval_print_amountG  s%   c3%jjo H::od344OOD)  IE#u%%#*:s*:EK",-<C%%!s*:U*:<t9H%D	3x=#/ /C }' ?? %=CC}$%s   D E ?E c           
         U R                   (       a  U R                   S S  O"[        U R                  R                  5       5      nU(       d  [	        S0 5      $ [        [        U R                  5      5      n0 n[	        X#5      nU H  nU R                  U   u  pgpn
Uu  pnXv:X  a  [        U5      O[        U5      S-   [        U5      -   n[        [        U5      5      nUS:X  a  SO[        [        X-  5      5      n[        [        U	5      5      nUS:X  a  SO[        [        X-  5      5      n[        UUUUUUU5      nUX='   M     U$ )Nr   /rW   )
r]   r   rc   keysr   rB   f8rF   r   r
   )rQ   	func_listrF   rG   stats_profiler   r   r   r   r   r   r?   r@   	func_namer   r   r=   r   r>   func_profiles                       r(   get_stats_profileStats.get_stats_profilea  s     )-DMM!$4

@Q;R	2&&DMM*+$X=D&*jj&6#BBG04-II "SWs2w}s2w/FFBrFmG$&!Gbr"%y1AOBrFmG$&!Gbr"%y1AO*L (4M$# & r*   c                    U R                   nU R                  (       a"  U R                  S S  nSU R                  -   S-   nO%[        U R                  R                  5       5      nSnU H  nU R                  XSU5      u  p4M     [        U5      nU(       d  SU4$ [        X@R                  S9  U[        U R                  5      :  a9  SnU H1  n[        [        U5      5      U:  d  M  [        [        U5      5      nM3     US-   U4$ )Nz   Ordered by: 
z!   Random listing order was used
r   rY   r   )r`   r]   r   r   rc   r   r   rN   rh   rJ   r   )rQ   sel_listwidth	stat_listr   	selectionr   r   s           r(   get_print_listStats.get_print_list  s    !!==a(I#dnn4t;CTZZ__./I6C!I!33I#NNIs " Ii<c$3tzz?"E!-.6 56E " Qw	!!r*   c                    U R                    H  n[        X R                  S9  M     U R                   (       a  [        U R                  S9  SnU R                   H!  n[        U[	        U5      U R                  S9  M#     [        X0R
                  SSU R                  S9  U R
                  U R                  :w  a"  [        SU R                  -  SU R                  S9  [        SU R                  -  U R                  S9  [        U R                  S9  U R                  U5      u  pVU(       aP  U R                  5         U H  nU R                  U5        M     [        U R                  S9  [        U R                  S9  U $ )NrY           zfunction calls endrZ   z(%d primitive calls)zin %.3f seconds)r\   rh   rJ   rb   func_get_function_namer^   r_   rF   r   print_title
print_line)rQ   amountr   indentr   r   r   s          r(   print_statsStats.print_stats  s   

H(- #::t{{#NND&06T[[I # 	f&&(8cTt.(4??:$++V$--/dkkB4;;))&1% t{{#t{{#r*   c                 `   U R                  U5      u  p#U(       a  U R                  5         U R                  US5        U HE  nX@R                  ;   a!  U R	                  X$U R                  U   5        M3  U R	                  X$0 5        MG     [        U R                  S9  [        U R                  S9  U $ )Nz	called...rY   )r   r   print_call_headingr[   print_call_linerh   rJ   )rQ   r   r   r   r   s        r(   print_calleesStats.print_callees  s    ))&1##E;7+++((d6F6Ft6LM((b9	 
 t{{#t{{#r*   c                    U R                  U5      u  p#U(       ag  U R                  US5        U H)  nU R                  U   u  pVpxn	U R                  X$U	S5        M+     [	        U R
                  S9  [	        U R
                  S9  U $ )Nzwas called by...z<-rY   )r   r   rc   r   rh   rJ   )
rQ   r   r   r   r   r   r   r   r   r   s
             r(   print_callersStats.print_callers  sx    ))&1##E+=>*.**T*:'$$U'4@  t{{#t{{#r*   c                 X   [        SR                  U5      U-   U R                  S9  SnU R                  R	                  5        HB  u  pEpgnU(       d  M  [        [        UR	                  5       5      5      n	[        U	[        5      n  O   U(       a  [        SU-  S-   U R                  S9  g g )Nz	Function rY   Fr   z    ncalls  tottime  cumtime)	rh   ljustrJ   rc   r$   nextiterrm   r   )
rQ   	name_sizecolumn_title	subheaderr   r   r   r   r   r%   s
             r(   r   Stats.print_call_heading  s    k	*\9L	'+zz'8'8':#BBGwT'.."234&ue4		 (;
 #i-"@@t{{S r*   c           	      r   [        [        U5      R                  U5      U-   SU R                  S9  U(       d  [        U R                  S9  g [	        UR                  5       5      nSnU H  n[        U5      nX7   n	[        U	[        5      (       a^  U	u  ppX:w  a  SX4-  nOSU
4-  nUR                  SS[        U5      -  -   5      < S[        U5      < S[        U5      < S	U< 3nUS
-   nO+U< SU	< S[        U R                  U   S   5      < 3nUS-   n[        Xo-  U-   U R                  S9  SnM     g )Nr   r   rY   rX   z%d/%dz%dr   r   z  r   (z) r   )rh   r   r   rJ   sortedr   rm   r   rjustrN   r   rc   )rQ   r  source	call_dictarrowclistr   r   r   r%   r   r   r   r   substats
left_widths                   r(   r   Stats.print_call_line  s   of%++I6>CdkkZt{{#y~~'(D"4(DOE%''!&8&"1H#re|H-5^^AaFmO-L-/VRVTC&]
*.r$**T:J1:M7NO&]
&#h.T[[AF! r*   c                 V    [        SSU R                  S9  [        SU R                  S9  g )Nz-   ncalls  tottime  percall  cumtime  percallr   r   zfilename:lineno(function)rY   rh   rJ   r   s    r(   r   Stats.print_title  s"    =3T[[Y)<r*   c                 V   U R                   U   u  p#pEn[        U5      nX2:w  a  US-   [        U5      -   n[        UR                  S5      SU R                  S9  [        [        U5      SU R                  S9  US:X  a  [        SSU R                  S9  O [        [        XC-  5      SU R                  S9  [        [        U5      SU R                  S9  US:X  a  [        SSU R                  S9  O [        [        XR-  5      SU R                  S9  [        [        U5      U R                  S9  g )Nr   	   r   r   r   r   rY   )rc   r   rh   r	  rJ   r   r   )rQ   r   r   r   r   r   r   cs           r(   r   Stats.print_line  s    "&**T"2G8C#b'!Aaggajc4bf#DKK07%St{{3"RU)4;;7bf#DKK07%St{{3"RU)4;;7od#$++6r*   )r[   r]   r\   r`   r_   rd   r   rc   rJ   rb   r^   rF   )z->)r,   r-   r.   r/   rT   rO   re   rf   rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r+   r*   r(   r   r   J   s    D &* &,?4( DCHHBDBFGMFFF ""%N
:&4!F"0.	
T2=7r*   r   c                        \ rS rSrS rS rSrg)r   i  c                     Xl         g r   comp_select_list)rQ   r  s     r(   rT   TupleComp.__init__  s     0r*   c                 d    U R                    H   u  p4X   nX#   nXV:  a  U* s  $ XV:  d  M  Us  $    gr   r  )rQ   leftrightindex	directionlrs          r(   r   TupleComp.compare  s@     $ 5 5EAAu!z!u   !6 r*   r  N)r,   r-   r.   r/   rT   r   r9   r+   r*   r(   r   r     s    1r*   r   c                 N    U u  pn[         R                  R                  U5      X#4$ r   )rq   pathbasename)r   r   r   r   s       r(   r   r   !  s&    $HD77H%t11r*   c                     U S   $ )Nr   r+   )r   s    r(   r   r   %  s    7Nr*   c                     U S S S:X  a;  U S   nUR                  S5      (       a  UR                  S5      (       a  SUSS -  $ U$ SU -  $ )	Nr   )~r   <>z{%s}r   rW   z	%s:%d(%s))
startswithendswith)r   r   s     r(   r   r   (  sW    !} |??3DMM#$6$6D2J&&KY&&r*   c                 J    Uu  p#pEnU u  pxpnX'-   X8-   XI-   XZ-   [        X5      4$ r   )add_callers)targetr
  r   r   r   r   r   t_cct_nct_ttt_ct	t_callerss               r(   r   r   9  s=    $BBG(.%DIGRWbgrw)-/ /r*   c           	         0 nU R                  5        H	  u  p4XBU'   M     UR                  5        HS  u  p4X2;   aE  [        U[        5      (       a"  [        S [        XBU   5       5       5      X#'   MA  X#==   U-  ss'   MO  XBU'   MU     U$ )Nc              3   .   #    U  H  u  pX-   v   M     g 7fr   r+   ).0ijs      r(   	<genexpr>add_callers.<locals>.<genexpr>I  s     )[<ZDA!%<Zs   )r~   rm   r   zip)r1  r
  new_callersr   r   s        r(   r0  r0  @  s    K"D '&%(($))[CTXHY<Z)[$[! !V+! & ' r*   c                 @    SnU R                  5        H  nX-  nM	     U$ r   )r$   )r   r   r   s      r(   count_callsrA  Q  s$    	
B!
 "Ir*   c                     SU -  $ )Nz%8.3fr+   )xs    r(   r   r   \  s    Q;r*   __main__c                       \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)ProfileBrowserij  Nc                     [         R                  R                  U 5        SU l        S U l        [
        R                  U l        Ub  U R                  U5        g g )N% )	cmdCmdrT   promptrc   rL   rM   rJ   do_read)rQ   profiles     r(   rT   ProfileBrowser.__init__k  sD    GGT"DKDJ**DK"W% #r*   c                    UR                  5       n/ nU H  n UR                  [        U5      5        M      U R                  (       a  [        U R                  U5      " U6   g[        SU R                  S9  g! [         a     Of = f [	        U5      nUS:  d  US:  a  [        SU R                  S9  M  UR                  U5        M  ! [         a     Of = fUR                  U5        M  )Nr   r   z#Fraction argument must be in [0, 1]rY   No statistics object is loaded.)	splitr   rC   
ValueErrorrB   rh   rJ   rc   getattr)rQ   fnr   rR   	processedtermfracs          r(   genericProfileBrowser.generics  s    ::<DI$$SY/   zz

B'3  7dkkJ! "  ;Dax4!8C$++V $$T*!   &s)   A77
BB+C5C
CCc                     [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  g )NzArguments may be:rY   z0* An integer maximum number of entries to print.z:* A decimal fractional number between 0 and 1, controllingz-  what fraction of selected entries to print.z8* A regular expression; only entries with function namesz  that match it are printed.r  r   s    r(   generic_helpProfileBrowser.generic_help  sb    %DKK8D4;;WNUYU`U`aATLSWS^S^_0t{{Cr*   c                     U R                   (       a   U R                   R                  U5        g[        SU R                  S9  g! [         a&  n[        SU< SU< 3U R                  S9   S nAgS nAff = f)NzFailed to load statistics for z: rY   rP  r   )rc   rP   OSErrorrh   rJ   )rQ   r   es      r(   do_addProfileBrowser.do_add  sg    zz`JJNN4(
  7dkkJ	  `D!LSWS^S^_ 	`s   A 
A4A//A4c                 ,    [        SU R                  S9  g )Nz>Add profile info from given file to current statistics object.rY   r  r   s    r(   help_addProfileBrowser.help_add  s    RY]YdYder*   c                 &    U R                  SU5      $ )Nr   rX  rQ   r   s     r(   
do_calleesProfileBrowser.do_callees      <<66r*   c                 L    [        SU R                  S9  U R                  5         g )Nz6Print callees statistics from the current stat object.rY   rh   rJ   r[  r   s    r(   help_calleesProfileBrowser.help_callees       JQUQ\Q\]r*   c                 &    U R                  SU5      $ )Nr   rf  rg  s     r(   
do_callersProfileBrowser.do_callers  rj  r*   c                 L    [        SU R                  S9  U R                  5         g )Nz6Print callers statistics from the current stat object.rY   rl  r   s    r(   help_callersProfileBrowser.help_callers  ro  r*   c                 ,    [        SU R                  S9  g)NrX   rY   r   r  rg  s     r(   do_EOFProfileBrowser.do_EOF  s    "4;;'r*   c                 ,    [        SU R                  S9  g NzLeave the profile browser.rY   r  r   s    r(   help_EOFProfileBrowser.help_EOF      .T[[Ar*   c                     g)Nr   r+   rg  s     r(   do_quitProfileBrowser.do_quit  s    r*   c                 ,    [        SU R                  S9  g rz  r  r   s    r(   	help_quitProfileBrowser.help_quit  r}  r*   c                    U(       a   [        U5      U l        US-   U l	        g[        U R                  5      S:  a!  U R                  S S nU R                  U5        g[        SU R
                  S9  g! [         a+  n[        UR                  S   U R
                  S9   S nAg S nAf[         a5  n[        UR                  R                  S-   X R
                  S9   S nAg S nAff = f)	Nr   rY   :rH  r   z1No statistics object is current -- cannot reload.r   )r   rc   r^  rh   rR   rJ   rg   rw   r,   rK  rN   rL  )rQ   r   errs      r(   rL  ProfileBrowser.do_read  s    !&tDJ #Tk  T[[!A%{{3B'T"  IPTP[P[\  #((1+DKK8  #--0036++Ns#   A3 3
C%=!B##C%0+C  C%c                 T    [        SU R                  S9  [        SU R                  S9  g )Nz+Read in profile data from a specified file.rY   z*Without argument, reload the current file.r  r   s    r(   	help_readProfileBrowser.help_read  s     ?dkkR>T[[Qr*   c                     U R                   (       a  U R                   R                  5         g[        SU R                  S9  g)NrP  rY   r   )rc   r   rh   rJ   rg  s     r(   
do_reverseProfileBrowser.do_reverse  s2    zz

((*  7dkkJr*   c                 ,    [        SU R                  S9  g )Nz/Reverse the sort order of the profiling report.rY   r  r   s    r(   help_reverseProfileBrowser.help_reverse  s    C$++Vr*   c                   ^ U R                   (       d  [        SU R                  S9  g U R                   R                  5       mU(       aP  [	        U4S jUR                  5        5       5      (       a(  U R                   R                  " UR                  5       6   g[        SU R                  S9  [        R                  R                  5        H#  u  p#[        U< SUS   < 3U R                  S9  M%     g)NrP  rY   c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r+   )r9  rC  abbrevss     r(   r<  )ProfileBrowser.do_sort.<locals>.<genexpr>  s     ALq'\Ls   z/Valid sort keys (unique prefixes are accepted):z -- r   r   )
rc   rh   rJ   r   allrQ  r   r   r   r~   )rQ   r   r   r%   r  s       @r(   do_sortProfileBrowser.do_sort  s    ::7dkkJjj224GADJJLAAA

%%tzz|4
  GdkkZ$)$?$?$E$E$GLSU1X6T[[I %Hr*   c                 T    [        SU R                  S9  [        SU R                  S9  g )Nz.Sort profile data according to specified keys.rY   z3(Typing `sort' without arguments lists valid keys.)r  r   s    r(   	help_sortProfileBrowser.help_sort  s     BUGdkkZr*   c                 |    [         R                   Vs/ s H  o3R                  U5      (       d  M  UPM     sn$ s  snf r   )r   r   r-  )rQ   textrR   as       r(   complete_sortProfileBrowser.complete_sort  s+    $::Q:!ll4>PA:QQQs   99c                 &    U R                  SU5      $ )Nr   rf  rg  s     r(   do_statsProfileBrowser.do_stats  s    <<t44r*   c                 L    [        SU R                  S9  U R                  5         g )Nz.Print statistics from the current stat object.rY   rl  r   s    r(   
help_statsProfileBrowser.help_stats  s    BUr*   c                     U R                   (       a  U R                   R                  5         g [        SU R                  S9  g )NrP  rY   )rc   r   rh   rJ   rg  s     r(   do_stripProfileBrowser.do_strip  s(    zz

%%'7dkkJr*   c                 ,    [        SU R                  S9  g )Nz<Strip leading path information from filenames in the report.rY   r  r   s    r(   
help_stripProfileBrowser.help_strip  s    PW[WbWbcr*   c                 ,    [        SU R                  S9  g )NzShow help for a given command.rY   r  r   s    r(   	help_helpProfileBrowser.help_help  s    2Er*   c                     U(       a  U$ g r   r+   )rQ   stopr   s      r(   postcmdProfileBrowser.postcmd  s    r*   )rK  rc   rJ   r   )r,   r-   r.   r/   rT   rX  r[  r`  rc  rh  rm  rq  rt  rw  r{  r  r  rL  r  r  r  r  r  r  r  r  r  r  r  r  r9   r+   r*   r(   rF  rF  j  s    	&	0	D		f	7	 	7	 		B		B	"	R		W		[	R	5	 	K
	d	F	r*   rF  r   r   z*Welcome to the profile statistics browser.rY   zGoodbye.)+rL   rq   r   ro   r   enumr   r   	functoolsr   dataclassesr   typingr   __all__r	   r
   r   r   r   r   r   r   r   r0  rA  r   r,   rI  readlineImportErrorrJ  rF  rN   argvinitprofilebrowserrM  r`  rh   rJ   cmdloopKeyboardInterruptr+   r*   r(   <module>r     s  .  	   	 &   ! 
Ag  * t   t. . .
|7 |7| 22	'"/" zP Pd 388}qhhqk -xx|GNN7# $:Pjw~~.G   @  s%   "E $A!E EEEE