<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]g                 @   s  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 g Z Gd d   d  Z Gd d   d  Z	 d d   Z
 d	 d
   Z d d   Z d d   Z d d   Z d d   Z d d   Z e d k rd  d l Z y d  d l Z Wn e k
 rYn XGd d   d e j  Z e e  j  d k rJe  j d Z n d Z yk e e  Z x( e  j d d  D] Z e j e  qsWe d d e j e j   e d d e j Wn e  k
 rYn Xd S)    N)
cmp_to_keyStatsc               @   sc  e  Z d  Z d d d d  Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z d dN d dR d dV d dZ d d] d d` d dc d df d di d" dn d$ dr d' du d* dy d- d} i Z	 d. d/   Z
 d0 d1   Z d2 d3   Z d4 d5   Z d6 d7   Z d8 d9   Z d: d;   Z d< d=   Z d> d?   Z d@ dA   Z dB dC   Z dD dE dF  Z dG dH   Z dI dJ   Z d S)~r   streamNc            G   s_   | p t  j |  _ t |  s' d  } n | d } | d d   } |  j |  |  j |   d  S)Nr      )sysstdoutr   leninitadd)selfr   argsarg r   +/opt/alt/python35/lib64/python3.5/pstats.py__init__A   s    	
zStats.__init__c             C   s   d  |  _  g  |  _ d  |  _ d |  _ d |  _ d |  _ d |  _ t   |  _ i  |  _	 i  |  _
 |  j |  y |  j   WnB t k
 r t d |  j r |  j d n d d |  j   Yn Xd  S)Nr   zInvalid timing data %sr    file)all_calleesfilesfcn_listtotal_tttotal_calls
prim_callsmax_name_lenset	top_levelstatssort_arg_dict
load_statsget_top_level_stats	Exceptionprintr   )r   r   r   r   r   r	   K   s"    									'z
Stats.initc             C   s   | d  k r i  |  _  d  St | t  r t | d   } t j |  |  _  Wd  QRXy- t j |  } t j	 | j
  d | } Wn Yn X| g |  _ n. t | d  r | j   | j  |  _  i  | _  |  j  s t d |  j | f   d  S)Nrbz    create_statsz.Cannot create or construct a %r object from %r)r   
isinstancestropenmarshalloadosstattimectimest_mtimer   hasattrr$   	TypeError	__class__)r   r   fZ
file_statsr   r   r   r   ^   s(    	
		zStats.load_statsc             C   s   x |  j  j   D] \ } \ } } } } } |  j | 7_ |  j | 7_ |  j | 7_ d | k rt |  j j |  t t |   |  j	 k r t t |   |  _	 q Wd  S)Njprofiler   profiler)r3   r   r4   )
r   itemsr   r   r   r   r
   r   func_std_stringr   )r   funcccncttctcallersr   r   r   r    t   s    +zStats.get_top_level_statsc             G   sF  | s
 |  Sx5t  |  D]'} t |   t |  k rA t |  } |  j | j 7_ |  j | j 7_ |  j | j 7_ |  j | j 7_ x! | j D] } |  j j |  q W|  j	 | j	 k  r | j	 |  _	 d  |  _
 xg | j j   D]V \ } } | |  j k r|  j | } n d d d d i  f } t | |  |  j | <q Wq W|  S)Nr   )reversedtyper   r   r   r   r   r   r
   r   r   r   r5   add_func_stats)r   arg_listitemr7   r+   Zold_func_statr   r   r   r
   ~   s(    	z	Stats.addc          
   C   s0   t  | d   } t j |  j |  Wd  QRXd  S)Nwb)r'   r(   dumpr   )r   filenamer2   r   r   r   
dump_stats   s    zStats.dump_statscallsr   
call countZncallsZcumtime   cumulative time
cumulativer      	file namerD   line   line numbermodulename   function nameZnflname/file/lineZpcallsr   primitive call countstdname   standard namer,      internal timeZtottimec             C   s   |  j  s i  |  _  } i  } xh |  j j   D]W \ } } | } xB | r | sN P| | k re d | | <P| | | <| d  d  } qA Wq, Wx | D] } | | =q W|  j  S)Nr   r   r   )r   sort_arg_dict_defaultr5   )r   dictZbad_listwordtupZfragmentr   r   r   get_sort_arg_defs   s     		

zStats.get_sort_arg_defsc             G   sz  | s d |  _  |  St |  d k ra t | d t  ra d d d d d d d d i | d g } |  j   } f  } d |  _ d } xA | D]9 } | | | d } |  j | | | d 7_ d	 } q Wg  } xY |  j j   D]H \ } \ } }	 }
 } } | j | |	 |
 | f | t	 |  | f  q W| j
 d
 t t |  j   g  |  _  } x | D] } | j | d  q[W|  S)Nr   r   rV   rF   r,   rY   rJ   r   z, keyr   r   )r   r   r%   intr_   	sort_typer   r5   appendr6   sortr   	TupleCompcompare)r   ZfieldZsort_arg_defsZ
sort_tupleZ	connectorr]   Z
stats_listr7   r8   r9   r:   r;   r<   r   tupler   r   r   
sort_stats   s2    	%	
+zStats.sort_statsc             C   s   |  j  r |  j  j   |  S)N)r   reverse)r   r   r   r   reverse_order   s    	zStats.reverse_orderc             C   s[  |  j  } i  |  _  } d } x | j   D] \ } \ } } } } }	 t |  }
 t t |
   | k rz t t |
   } i  } x* |	 j   D] \ } } | | t |  <q W|
 | k r t | |
 | | | | | f  | |
 <q) | | | | | f | |
 <q) W|  j } t   |  _ } x! | D] } | j t |   qW| |  _	 d  |  _
 d  |  _ |  S)Nr   )r   r5   func_strip_pathr   r6   r?   r   r   r
   r   r   r   )r   ZoldstatsZnewstatsr   r7   r8   r9   r:   r;   r<   ZnewfuncZ
newcallersfunc2callerZold_topZnew_topr   r   r   
strip_dirs   s.    	(				zStats.strip_dirsc       
      C   s   |  j  r d  Si  |  _  } x |  j j   D]r \ } \ } } } } } | | k r[ i  | | <x> | j   D]0 \ } }	 | | k r i  | | <|	 | | | <qh Wq* Wd  S)N)r   r   r5   )
r   r   r7   r8   r9   r:   r;   r<   rl   rm   r   r   r   calc_callees  s    	+

zStats.calc_calleesc             C   sx  | } t  | t  r y t j |  } Wn- t j k
 rW | d | 7} | | f SYn Xg  } x | D]( } | j t |   re | j |  qe Wn t |  } t  | t	  r d | k o d k  n r t
 | | d  } | d  |  } nA t  | t
  r3d | k o| k  n r3| } | d  |  } t |  t |  k rn| d t |  t |  | f 7} | | f S)Nz#   <Invalid regular expression %r>
g        g      ?g      ?r   z6   List reduced from %r to %r due to restriction <%r>
)r%   r&   recompileerrorsearchr6   rc   r   floatra   )r   ZsellistmsgZnew_listZrexr7   countr   r   r   eval_print_amount  s,    ++zStats.eval_print_amountc             C   s  |  j  } |  j r9 |  j d  d   } d |  j d } n t |  j j    } d } x) | D]! } |  j | | |  \ } } q[ Wt |  } | s d | f St | d |  j	 | t |  j  k  rd } x8 | D]0 } t t
 |   | k r t t
 |   } q W| d | f S)Nz   Ordered by: 
z!   Random listing order was used
r   r   rY   )r   r   rb   ru   r   keysrx   r   r"   r   r6   )r   Zsel_listwidthZ	stat_listrv   Z	selectionrw   r7   r   r   r   get_print_list2  s$    		
zStats.get_print_listc             G   s[  x$ |  j  D] } t | d |  j q
 W|  j  r@ t d |  j  d } x- |  j D]" } t | t |  d |  j qP Wt | |  j d d d d |  j |  j |  j k r t d |  j d d d |  j t d |  j d |  j t d |  j  |  j |  \ } } | rW|  j	   x | D] } |  j
 |  q Wt d |  j  t d |  j  |  S)	Nr       zfunction callsendz(%d primitive calls)zin %.3f secondsz        )r   r"   r   r   func_get_function_namer   r   r   r|   print_title
print_line)r   amountrD   indentr7   r{   ru   r   r   r   print_statsJ  s(    	 " 
zStats.print_statsc             G   s   |  j  |  \ } } | r |  j   |  j | d  xM | D]E } | |  j k rn |  j | | |  j |  q< |  j | | i   q< Wt d |  j  t d |  j  |  S)Nz	called...r   )r|   ro   print_call_headingr   print_call_liner"   r   )r   r   r{   ru   r7   r   r   r   print_calleesa  s    
zStats.print_calleesc       
      G   s   |  j  |  \ } } | r |  j | d  x@ | D]8 } |  j | \ } } } } }	 |  j | | |	 d  q2 Wt d |  j  t d |  j  |  S)Nzwas called by...z<-r   )r|   r   r   r   r"   r   )
r   r   r{   ru   r7   r8   r9   r:   r;   r<   r   r   r   print_callersp  s    zStats.print_callersc       
      C   s   t  d j |  | d |  j d } xT |  j j   D]C \ } } } } } | r6 t t | j     }	 t |	 t  } Pq6 W| r t  d | d d |  j d  S)Nz	Function r   Fr}   z    ncalls  tottime  cumtime)	r"   ljustr   r   valuesnextiterr%   rg   )
r   	name_sizeZcolumn_titleZ	subheaderr8   r9   r:   r;   r<   valuer   r   r   r   {  s     %zStats.print_call_headingz->c             C   sk  t  t |  j |  | d d d |  j | sF t  d |  j  d  St | j    } d } x| D] } t |  } | | }	 t |	 t  r|	 \ }
 } } } |
 | k r d |
 | f } n d |
 f } d | j d d	 t	 |   t
 |  t
 |  | f } | d
 } n. d | |	 t
 |  j | d  f } | d } t  | | | d |  j d } qe Wd  S)Nr   r}   r   r   z%d/%dz%dz%s %s %s  %srW   rY   r   z	%s(%r) %srH   )r"   r6   r   r   sortedrz   r%   rg   rjustr   f8r   )r   r   sourceZ	call_dictZarrowZclistr   r7   rQ   r   r9   r8   r:   r;   ZsubstatsZ
left_widthr   r   r   r     s*    ,
$
zStats.print_call_linec             C   s0   t  d d d d |  j t  d d |  j d  S)Nz-   ncalls  tottime  percall  cumtime  percallr   r}   r   zfilename:lineno(function))r"   r   )r   r   r   r   r     s    zStats.print_titlec             C   s[  |  j  | \ } } } } } t |  } | | k rH | d t |  } t | j d  d d d |  j t t |  d d d |  j | d k r t d d d d |  j n# t t | |  d d d |  j t t |  d d d |  j | d k rt d	 d d d |  j n# t t | |  d d d |  j t t |  d |  j d  S)
N/	   r   r}   r   r   r~   z        z        )r   r&   r"   r   r   r   r6   )r   r7   r8   r9   r:   r;   r<   cr   r   r   r     s    "##zStats.print_liner   r   r   r   )r   rG   r   r   r   r   )r   rG   r   rH   r   r   )r   rI   r   rH   r   r   )r   rI   rK   r   r   )r   rL   rK   r   r   )r   rL   rN   r   r   )r   rO   rK   r   r   )r   rL   rR   r   r   )r   rS   rR   r   rK   r   rN   r   r   r   r   )r   rT   r   r   r   r   )r   rU   rW   r   r   )r   rX   r   rY   r   r   )r   rZ   r   rY   r   r   )r   rZ   )__name__
__module____qualname__r   r	   r   r    r
   rE   r[   r_   rh   rj   rn   ro   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r       sD   !

 c               @   s(   e  Z d  Z d d   Z d d   Z d S)re   c             C   s   | |  _  d  S)N)comp_select_list)r   r   r   r   r   r     s    zTupleComp.__init__c             C   sS   xL |  j  D]A \ } } | | } | | } | | k  r; | S| | k r
 | Sq
 Wd S)Nr   )r   )r   leftrightindex	directionlrr   r   r   rf     s    

zTupleComp.compareN)r   r   r   r   rf   r   r   r   r   re     s   re   c             C   s(   |  \ } } } t  j j |  | | f S)N)r*   pathbasename)	func_namerD   rM   rQ   r   r   r   rk     s    rk   c             C   s   |  d S)NrY   r   )r7   r   r   r   r     s    r   c             C   sc   |  d  d  d	 k rW |  d } | j  d  rP | j d  rP d | d d
  S| Sn d |  Sd  S)NrY   ~r   <>z{%s}r   z	%s:%d(%s))r   r   r   )
startswithendswith)r   rQ   r   r   r   r6     s    
r6   c             C   sV   | \ } } } } } |  \ } } }	 }
 } | | | | | |	 | |
 t  | |  f S)N)add_callers)targetr   r8   r9   r:   r;   r<   Zt_ccZt_ncZt_ttZt_ctZ	t_callersr   r   r   r?     s    r?   c             C   s   i  } x$ |  j    D] \ } } | | | <q Wx} | j    D]o \ } } | | k r t | t  r t d d   t | | |  D  | | <q | | | 7<q: | | | <q: W| S)Nc             S   s"   g  |  ] } | d  | d  q S)r   r   r   ).0ir   r   r   
<listcomp>  s   	 zadd_callers.<locals>.<listcomp>)r5   r%   rg   zip)r   r   Znew_callersr7   rm   r   r   r   r     s    !r   c             C   s+   d } x |  j    D] } | | 7} q W| S)Nr   )r   )r<   r9   rF   r   r   r   count_calls   s    r   c             C   s   d |  S)Nz%8.3fr   )xr   r   r   r     s    r   __main__c               @   sK  e  Z d  Z d d d  Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d  d!   Z d" d#   Z d$ d%   Z d& d'   Z d( d)   Z d* d+   Z d, d-   Z d. d/   Z d0 d1   Z d2 d3   Z d4 d5   Z d S)6ProfileBrowserNc             C   sK   t  j j |   d |  _ d  |  _ t j |  _ | d  k	 rG |  j |  d  S)Nz% )	cmdCmdr   promptr   r   r   r   do_read)r   profiler   r   r   r     s    		zProfileBrowser.__init__c             C   s   | j    } g  } x | D] } y | j t |   w Wn t k
 rM Yn XyN t |  } | d k su | d k  r t d d |  j w | j |  w Wn t k
 r Yn X| j |  q W|  j r t |  j |  |   n t d d |  j d S)Nr   r   z#Fraction argument must be in [0, 1]r   zNo statistics object is loaded.)	splitrc   ra   
ValueErrorrt   r"   r   r   getattr)r   fnrM   r   Z	processedZtermZfracr   r   r   generic"  s,    	zProfileBrowser.genericc             C   sv   t  d d |  j t  d d |  j t  d d |  j t  d d |  j t  d d |  j t  d d |  j d  S)NzArguments may be:r   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   )r   r   r   r   generic_help:  s    zProfileBrowser.generic_helpc             C   s|   |  j  re y |  j  j |  Wqx t k
 ra } z" t d | | f d |  j WYd  d  } ~ Xqx Xn t d d |  j d S)Nz$Failed to load statistics for %s: %sr   zNo statistics object is loaded.r   )r   r
   IOErrorr"   r   )r   rM   er   r   r   do_addB  s    	3zProfileBrowser.do_addc             C   s   t  d d |  j d  S)Nz>Add profile info from given file to current statistics object.r   )r"   r   )r   r   r   r   help_addK  s    zProfileBrowser.help_addc             C   s   |  j  d |  S)Nr   )r   )r   rM   r   r   r   
do_calleesN  s    zProfileBrowser.do_calleesc             C   s!   t  d d |  j |  j   d  S)Nz6Print callees statistics from the current stat object.r   )r"   r   r   )r   r   r   r   help_calleesP  s    zProfileBrowser.help_calleesc             C   s   |  j  d |  S)Nr   )r   )r   rM   r   r   r   
do_callersT  s    zProfileBrowser.do_callersc             C   s!   t  d d |  j |  j   d  S)Nz6Print callers statistics from the current stat object.r   )r"   r   r   )r   r   r   r   help_callersV  s    zProfileBrowser.help_callersc             C   s   t  d d |  j d S)Nr   r   r   )r"   r   )r   rM   r   r   r   do_EOFZ  s    zProfileBrowser.do_EOFc             C   s   t  d d |  j d  S)NzLeave the profile brower.r   )r"   r   )r   r   r   r   help_EOF]  s    zProfileBrowser.help_EOFc             C   s   d S)Nr   r   )r   rM   r   r   r   do_quit`  s    zProfileBrowser.do_quitc             C   s   t  d d |  j d  S)NzLeave the profile brower.r   )r"   r   )r   r   r   r   	help_quitb  s    zProfileBrowser.help_quitc             C   s  | r y t  |  |  _ Wn t k
 r^ } z# t | j d d |  j d  SWYd  d  } ~ XnI t k
 r } z) t | j j d | d |  j d  SWYd  d  } ~ Xn X| d |  _	 nK t
 |  j	  d k r |  j	 d  d  } |  j |  n t d d |  j d S)	Nr   r   :z% rY   z1No statistics object is current -- cannot reload.r   )r   r   OSErrorr"   r   r   r!   r1   r   r   r   r   )r   rM   errr   r   r   r   e  s     zProfileBrowser.do_readc             C   s*   t  d d |  j t  d d |  j d  S)Nz+Read in profile data from a specified file.r   z*Without argument, reload the current file.)r"   r   )r   r   r   r   	help_readv  s    zProfileBrowser.help_readc             C   s0   |  j  r |  j  j   n t d d |  j d S)NzNo statistics object is loaded.r   r   )r   rj   r"   r   )r   rM   r   r   r   
do_reversez  s    	zProfileBrowser.do_reversec             C   s   t  d d |  j d  S)Nz/Reverse the sort order of the profiling report.r   )r"   r   )r   r   r   r   help_reverse  s    zProfileBrowser.help_reversec                s   |  j  s  t d d |  j d  S|  j  j     | rs t   f d d   | j   D  rs |  j  j | j     nT t d d |  j x> t j j	   D]- \ } } t d | | d f d |  j q Wd S)	NzNo statistics object is loaded.r   c             3   s   |  ] } |   k Vq d  S)Nr   )r   r   )abbrevsr   r   	<genexpr>  s    z)ProfileBrowser.do_sort.<locals>.<genexpr>z/Valid sort keys (unique prefixes are accepted):z%s -- %sr   r   )
r   r"   r   r_   allr   rh   r   r[   r5   )r   rM   r`   r   r   )r   r   do_sort  s    	+%zProfileBrowser.do_sortc             C   s*   t  d d |  j t  d d |  j d  S)Nz.Sort profile data according to specified keys.r   z3(Typing `sort' without arguments lists valid keys.))r"   r   )r   r   r   r   	help_sort  s    zProfileBrowser.help_sortc                s     f d d   t  j D S)Nc                s%   g  |  ] } | j     r |  q Sr   )r   )r   a)textr   r   r     s   	 z0ProfileBrowser.complete_sort.<locals>.<listcomp>)r   r[   )r   r   r   r   )r   r   complete_sort  s    zProfileBrowser.complete_sortc             C   s   |  j  d |  S)Nr   )r   )r   rM   r   r   r   do_stats  s    zProfileBrowser.do_statsc             C   s!   t  d d |  j |  j   d  S)Nz.Print statistics from the current stat object.r   )r"   r   r   )r   r   r   r   
help_stats  s    zProfileBrowser.help_statsc             C   s0   |  j  r |  j  j   n t d d |  j d  S)NzNo statistics object is loaded.r   )r   rn   r"   r   )r   rM   r   r   r   do_strip  s    	zProfileBrowser.do_stripc             C   s   t  d d |  j d  S)Nz<Strip leading path information from filenames in the report.r   )r"   r   )r   r   r   r   
help_strip  s    zProfileBrowser.help_stripc             C   s   t  d d |  j d  S)NzShow help for a given command.r   )r"   r   )r   r   r   r   	help_help  s    zProfileBrowser.help_helpc             C   s   | r
 | Sd  S)Nr   )r   stoprM   r   r   r   postcmd  s    zProfileBrowser.postcmd)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s4   	r   r   rY   z*Welcome to the profile statistics browser.r   zGoodbye.)!r   r*   r,   r(   rp   	functoolsr   __all__r   re   rk   r   r6   r?   r   r   r   r   r   readlineImportErrorr   r   r   argvZinitprofileZbrowserr   r   r"   r   ZcmdloopKeyboardInterruptr   r   r   r   <module>   sF   	 
