File: //lib/python3.10/__pycache__/cProfile.cpython-310.pyc
o
    E�h�  �                   @   s�   d Z g d�ZddlZddlZddlZddd�Zddd�Zejj e_ ejj e_ G d	d
� d
ej�Z	dd� Z
d
d� Zedkr@e�  dS 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/lib/python3.10/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�Stats�
strip_dirs�
sort_stats�print_stats)�selfr   r   r   r   r
   r   )   s   zProfile.print_statsc                 C   sN   dd l }t|d��}| ��  |�| j|� W d   � d S 1 s w   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 ](}t|j�}|j}||j }|j}|j}i }	|	|t|j�<