
    	^c&                     |    d dl Z d dlZddlmZ e j        Z ee dd          ZddgZd Z G d d	          Zi Z	d
 Z
dS )    N   getattrprofiler_entrys   profiles   Statsc                     t                      }|                    dd           	  | |i | |                                 n# |                                 w xY wt          |                                          S )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dS )
r   r   c                     || _         d S N)data)selfr   s     r   __init__zStats.__init__   s    			    
inlinetimec                 `   t           r!t           j        vrt          dz            n5| j        r.t	          | j        d         d          st          dz            | j                            fdd           | j        D ](}|j        r|j                            fdd           )dS )r   s   Can't sort by %sr   Nc                 $    t          |           S r   r   xcrits    r   <lambda>zStats.sort.<locals>.<lambda>(   s    WQ%5%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      	9>222 !4t!;<<< 3Y 	9wty|T4@@ 	9047888	5555tDDD 	K 	KAw K!;!;!;!;TJJJ	K 	Kr   Nc                 *   |t           j        }| j        }|
|d|         }d}d}|                    |dz             d}|D ]}	|                    ||	j        |	j        |	j        |	j        t          |	j	                  fz             |dz  }|	||k    r dS d}
|rw|	j
        rp|	j
        D ]h}|                    ||j        |j        |j        |j        dt          |j	                  z  fz             |dz  }|
dz  }
|
||k    r  dS ||
|k    r nidS )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   r   s       %s)sysstdoutr   write	callcountreccallcount	totaltimer   labelcoder*   )r   topfilelimitclimitdcolshcolscountr+   ccountses               r   pprintzStats.pprint-   s   <:DI?$3$A1,

		
 		
 		
   	  	AJJKNKL!&MM	 	 	 QJE Ue^^F !' '  BJJLOLM%bg6	 	 	 QJEaKF(Ue^^)f.>.>A 	  	r   c                 8   t          t          | j                            D ]}| j        |         }t          |j        t
                    s> t          |          t          |j                  f|dd         z             | j        |<   |j        rt          t          |j                            D ]g}|j        |         }t          |j        t
                    s> t          |          t          |j                  f|dd         z             |j        |<   hdS )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.freezec   s   
 s49~~&& 	J 	JA	!Aafc** A&tAwwaf'7!ABB%'?@@	!w Js17||,, J JAB%bgs33 J%-T"XXuRW~~.?"QRR&.H%I%I
	J 	Jr   )r   )NNNN)__name__
__module____qualname____doc__r   r)   r?   rH    r   r   r   r      sj          K K K K4 4 4 4lJ J J J Jr   r   c           	      4   t          | t                    r|                     d          S 	 t          | j                 }n# t
          $ r t          t          j        	                                          D ]_\  }}|t          t          |dd           t                    s-|j                            | j                  r|x}t          | j        <    n`d| j        z  x}t          | j        <   Y nw xY wd|| j        | j        fz  }|                    d          S )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   v   s-   $ &{{9%%%J() 
J 
J 
J**,,-- 		J 		JDAqygaT::C@@ z$$T%566 455 01 179I0IIEGD,-
J  3T\B
BC::i   s   ? B.C0/C0)_lsprofr-   pycompatr   r   r   __all__r   r   rQ   r3   rM   r   r   <module>ra      s     



       "2D99x
   WJ WJ WJ WJ WJ WJ WJ WJt ! ! ! ! !r   