
    q&f                     l    d dl Z d dlZe j                  Z ee dd      ZddgZd Z G d d      Zi Zd Z	y)	    Nprofiler_entrys   profiles   Statsc                     t               }|j                  dd       	  | |i | |j                          t        |j	                               S # |j                          w xY w)XXX docstringT)subcallsbuiltins)ProfilerenabledisableStatsgetstats)fargskwdsps       2/usr/lib/python3/dist-packages/mercurial/lsprof.pyprofiler      sR    
AHHdTH*	44			 	
		s   A A"c                   ,    e Zd ZdZd ZddZddZd Zy)	r   r   c                     || _         y N)data)selfr   s     r   __init__zStats.__init__   s	    	    c                 v   t         r t         j                  vrBt        dz        | j                  r(t	        | j                  d   d      st        dz        | j                  j                  fdd       | j                  D ]/  }|j                  s|j                  j                  fdd       1 y)r   s   Can't sort by %sr   Nc                     t        |       S r   getattrxcrits    r   <lambda>zStats.sort.<locals>.<lambda>&   s    WQ%5 r   T)keyreversec                     t        |       S r   r   r   s    r   r!   zStats.sort.<locals>.<lambda>)   s    71d+; r   )r   __dict__
ValueErrorr   r   sortcalls)r   r    es    ` r   r'   z
Stats.sort   s     >222 !4t!;<<YYwtyy|T4@04788		5tD 	KAww!;TJ	Kr   Nc                    |t         j                  }| j                  }||d| }d}d}|j                  |dz         d}|D ]  }	|j                  ||	j                  |	j
                  |	j                  |	j                  t        |	j                        fz         |dz  }|||k(  r yd}
|sj|	j                  sw|	j                  D ]w  }|j                  ||j                  |j
                  |j                  |j                  dt        |j                        z  fz         |dz  }|
dz  }
|||k(  r  y|q|
|k(  sw   y)r   Ns   % 12d %12d %11.4f %11.4f   %s
s   % 12s %12s %12s %12s %s
)s	   CallCounts	   Recursives   Total(s)s	   Inline(s)s   module:lineno(function)r      s       %s)sysstdoutr   write	callcountreccallcount	totaltime
inlinetimelabelcoder(   )r   topfilelimitclimitdcolshcolscountr)   ccountses               r   pprintzStats.pprint+   sU   <::DII?$3A1,

		
   	AJJKKNNKKLL!&&M	 QJE Ue^F!'''' BJJLLOOLLMM%bgg6	 QJEaKF(Ue^)f.>!! 	r   c                 0   t        t        | j                              D ]  }| j                  |   }t        |j                  t
              s8 t        |      t        |j                        f|dd z         | j                  |<   |j                  sqt        t        |j                              D ]d  }|j                  |   }t        |j                  t
              r- t        |      t        |j                        f|dd z         |j                  |<   f  y)zwReplace all references to code objects with string
        descriptions; this makes it possible to pickle the instance.r+   N)	rangelenr   
isinstancer4   strtyper3   r(   )r   ir)   jr>   s        r   freezezStats.freezea   s    
 s499~& 	JA		!Aaffc*&tAwaff'7!AB%'?@		!wws177|, JAB%bggs3%-T"XuRWW~.?"QR&.H%I
J	Jr   )r2   )NNNN)__name__
__module____qualname____doc__r   r'   r?   rH    r   r   r   r      s    K4lJr   r   c           	      <   t        | t              r| j                  d      S 	 t        | j                     }d|| j                  | j                  fz  }|j                  d      S # t
        $ r t        t        j                  j                               D ]`  \  }}|	t        t        |dd       t              s%|j                  j                  | j                        sK|x}t        | j                  <    n# d| j                  z  x}t        | j                  <   Y w xY w)Nzlatin-1__file__z<%s>z	%s:%d(%s))rC   rD   encode_fn2modco_filenameKeyErrorlistr,   modulesitemsr   rO   
startswithco_firstlinenoco_name)r4   mnamekvress        r   r3   r3   t   s   ${{9%%J(()  3 3T\\B
BC::i    
J**,- 		JDAqygaT:C@zz$$T%5%56455 0 01		J 179I9I0IIEGD,,-
Js   A# #A:D:DD)
_lsprofr,   r   r   r   __all__r   r   rQ   r3   rM   r   r   <module>r`      sQ     
 "2D9x
 WJ WJt !r   