File: //lib64/python3.9/__pycache__/cProfile.cpython-39.pyc
a
    �DOg�  �                   @   s�   d Z g d�ZddlZddlZddlZddd�Zddd�Zejj e_ ejj e_ G d	d
� d
ej�Z	dd� Z
d
d� 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.9/cProfile.pyr      s    r   c                 C   s   t �t��| ||||�S r   )r   r   r   r   )r	   �globals�localsr
   r   r   r   r
   r      s    �r   c                   @   sZ   e Zd ZdZddd�Zdd� Zdd� Zd	d
� Zdd� Zd
d� Z	dd� Z
dd� Zdd� ZdS )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   sL   dd l }t|d��&}| ��  |�| j|� W d   � n1 s>0    Y  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�<