File: //lib/python3.10/__pycache__/tracemalloc.cpython-310.pyc
o
    E�hF  �                   @   s  d dl mZmZ d dlmZ d dlZd dlZd dlZd dl	Z	d dl
T d dl
mZmZ dd� Z
G dd	� d	�ZG d
d� d�Zdd
� ZeG dd� d��ZeG dd� de��Zdd� ZG dd� d�ZG dd� de�Zdd� ZG dd� d�ZG dd� de�ZG dd� de�ZG d d!� d!�Zd"d#� ZdS )$�    )�Sequence�Iterable)�total_orderingN)�*)�_get_object_traceback�_get_tracesc                 C   s�   dD ]>}t | �dk r |dkr |rd| |f   S d| |f   S t | �dk s*|dkr<|r4d| |f   S d	| |f   S | d
 } qd S )N)�B�KiB�MiB�GiB�TiB�d   r   z%+.1f %sz%.1f %si (  r   z%+.0f %sz%.0f %si   )�abs)�size�sign�unit� r   �"/usr/lib/python3.10/tracemalloc.py�_format_size
   s   
�r   c                   @   �D   e Zd ZdZdZdd� Zdd� Zdd� Zd	d
� Zdd� Z	d
d� Z
dS )�	StatisticzS
    Statistic difference on memory allocations between two Snapshot instance.
    ��	tracebackr   �countc                 C   s   || _ || _|| _d S �Nr   )�selfr   r   r   r   r   r   �__init__%   s   
zStatistic.__init__c                 C   s   t | j| j| jf�S r   )�hashr   r   r   �r   r   r   r   �__hash__*   �   zStatistic.__hash__c                 C   s2   t |t�stS | j|jko| j|jko| j|jkS r   )�
isinstancer   �NotImplementedr   r   r   �r   �otherr   r   r   �__eq__-   s   
�
�zStatistic.__eq__c                 C   sB   d| j t| jd�| jf }| jr| j| j }|dt|d� 7 }|S )Nz%s: size=%s, count=%iF�, average=%s)r   r   r   r   �r   �text�averager   r   r   �__str__4   s   
��zStatistic.__str__c                 C   s   d| j | j| jf S )Nz)<Statistic traceback=%r size=%i count=%i>r   r   r   r   r   �__repr__>