File: //usr/lib64/python3.8/__pycache__/cProfile.cpython-38.pyc
U
    e5db  �                   @   s�   d Z dddgZddlZddlZddlZddd�Zddd�Zejj e_ ejj e_ G d	d� dej�Z	d
d� Z
dd
� Zedkr~e�  dS )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   � /usr/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 Zd ZdZddd�Zdd� Zdd� Zd	d
� Zdd� Zd
d� Z	dd� Z
de
_dd� Zdd� Z
dS )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$   dd l }|�| ��� �|���  d S �Nr   )�pstats�StatsZ
strip_dirsZ
sort_stats�print_stats)�selfr   r   r   r   r
   r   )   s    zProfile.print_statsc              	   C   s8   dd 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    zProfile.dump_statsc                 C   s   | � �  | ��  d S r   )�disable�snapshot_stats�r   r   r   r
   r   3   s    zProfile.create_statsc              
   C   s,  | � � }i | _i }|D ]P}t|j�}|j}||j }|j}|j}i }	|	|t|j�<