
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,ac  ã                   @   sz   d Z dddgZddlZddlZddd„Zddd„Zejj e_ ejj e_ G d	d„ dejƒZd
d„ Z	dd„ Z
edkrve
ƒ  dS )zUPython interface for the 'lsprof' profiler.
   Compatible with the 'profile' module.
ÚrunÚrunctxÚProfileé    Néÿÿÿÿc                 C   s   t  t¡ | ||¡S ©N)Ú
_pyprofileÚ_Utilsr   r   )Ú	statementÚfilenameÚsort© r   ú-/opt/alt/python38/lib64/python3.8/cProfile.pyr      s    c                 C   s   t  t¡ | ||||¡S r   )r   r   r   r   )r	   ÚglobalsÚlocalsr
   r   r   r   r   r      s     ÿc                   @   s`   e Zd 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e
_dd„ Zdd„ ZdS )r   a`  Profile(timer=None, timeunit=None, subcalls=True, builtins=True)

    Builds a profiler object using the specified timer function.
    The default timer is a fast built-in one based on real time.
    For custom timer functions returning integers, timeunit can
    be a float specifying a scale (i.e. how long each integer unit
    is, in seconds).
    r   c                 C   s$   dd l }| | ¡ ¡  |¡ ¡  d S ©Nr   )ÚpstatsÚStatsZ
strip_dirsZ
sort_statsÚprint_stats)Úselfr   r   r   r   r   r   (   s    zProfile.print_statsc              	   C   s8   dd l }t|dƒ�}|  ¡  | | j|¡ W 5 Q R X d S )Nr   Úwb)ÚmarshalÚopenÚcreate_statsÚdumpÚstats)r   Úfiler   Úfr   r   r   Ú
dump_stats,   s    zProfile.dump_statsc                 C   s   |   ¡  |  ¡  d S r   )ÚdisableÚsnapshot_stats©r   r   r   r   r   2   s    zProfile.create_statsc              
   C   s,  |   ¡ }i | _i }|D ]P}t|jƒ}|j}||j }|j}|j}i }	|	|t|jƒ< |||||	f| j|< q|D ]º}|j	rlt|jƒ}|j	D ]ž}
z|t|
jƒ }	W n t
k
r´   Y q†Y nX |
j}||
j }|
j}|
j}||	k�r|	| }||d 7 }||d 7 }||d 7 }||d 7 }||||f|	|< q†qld S )Nr   é   é   é   )Zgetstatsr   ÚlabelÚcodeZ	callcountZreccallcountZ
inlinetimeZ	totaltimeÚidZcallsÚKeyError)r   ÚentriesZcallersdictsÚentryÚfuncZncZccZttZctZcallersZsubentryÚprevr   r   r   r   6   s>    






zProfile.snapshot_statsc                 C   s   dd l }|j}|  |||¡S r   )Ú__main__Ú__dict__r   )r   Úcmdr,   Údictr   r   r   r   \   s    zProfile.runc                 C   s(   |   ¡  zt|||ƒ W 5 |  ¡  X | S r   )Úenabler   Úexec)r   r.   r   r   r   r   r   r   a   s
    
zProfile.runctxc                  O   s”   t | ƒdkr| ^}}} nV| s&tdƒ‚nHd|krZ| d¡}| ^}} dd l}|jdtdd� ntdt | ƒd  ƒ‚| ¡  z|| |ŽW ¢S | ¡  X d S )	Nr"   z:descriptor 'runcall' of 'Profile' object needs an argumentr*   r   z0Passing 'func' as keyword argument is deprecated)Ú
stacklevelz7runcall expected at least 1 positional argument, got %dr!   )ÚlenÚ	TypeErrorÚpopÚwarningsÚwarnÚDeprecationWarningr0   r   )ÚargsÚkwr   r*   r6   r   r   r   Úruncallj   s&    

 ÿ
ÿzProfile.runcallz($self, func, /, *args, **kw)c                 C   s   |   ¡  | S r   )r0   r    r   r   r   Ú	__enter__�   s    zProfile.__enter__c                 G   s   |   ¡  d S r   )r   )r   Úexc_infor   r   r   Ú__exit__…   s    zProfile.__exit__N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r;   Ú__text_signature__r<   r>   r   r   r   r   r      s   
&	c                 C   s(   t | tƒrdd| fS | j| j| jfS d S )Nú~r   )Ú
isinstanceÚstrÚco_filenameÚco_firstlinenoÚco_name)r%   r   r   r   r$   Š   s    

r$   c               
   C   s¶  dd l } dd l}dd l}dd l}ddlm} d}||d�}d|_|jdddd	d d
� |jdddddt|j	j
ƒd� |jdddddd� |jdd … s¦| ¡  | d¡ | ¡ \}}||jd d …< |jd k	rÚ| j |j¡|_t|ƒdk�rª|j�rd}	|j|d dœ}
nR|d }|j d| j |¡¡ t|dƒ�}t| ¡ |dƒ}	W 5 Q R X |dd d dœ}
zt|	|
d |j|jƒ W n6 tk
�r¦ } zd |_| |j¡ W 5 d }~X Y nX n| ¡  |S )Nr   )ÚOptionParserzNcProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ...)ÚusageFz-oz	--outfileÚoutfilezSave stats to <outfile>)ÚdestÚhelpÚdefaultz-sz--sortr   z?Sort order when printing to stdout, based on pstats.Stats classr   )rM   rN   rO   Úchoicesz-mÚmoduleÚ
store_truezProfile a library module)rM   ÚactionrN   rO   r!   r"   z(run_module(modname, run_name='__main__'))Ú
run_moduleÚmodnameÚrbr1   r,   )Ú__file__r?   Ú__package__Ú
__cached__)ÚosÚsysÚrunpyr   ZoptparserJ   Zallow_interspersed_argsZ
add_optionÚsortedr   Zsort_arg_dict_defaultÚargvZprint_usageÚexitÚ
parse_argsrL   ÚpathÚabspathr3   rQ   rT   ÚinsertÚdirnamer   ÚcompileÚreadr   r   ÚBrokenPipeErrorÚstdoutÚerrno)rZ   r[   r\   r   rJ   rK   ÚparserZoptionsr9   r%   ZglobsZprognameÚfpÚexcr   r   r   Úmain’   sd    

 ÿ

ý
 ÿ

þü rm   r,   )Nr   )Nr   )rB   Ú__all__Z_lsprofZprofiler   r   r   ZProfilerr   r$   rm   r?   r   r   r   r   Ú<module>   s   




o;