File: //lib/python3.12/__pycache__/tracemalloc.cpython-312.pyc
�
    )!�hF  �                   �\  � d dl mZmZ d dlmZ d dlZd dlZd dlZd dl	Z	d dl
� d dl
mZmZ d� Z
 G d� d�      Z G d	� d
�      Zd� Ze G d� d
�      �       Ze G d� de�      �       Zd� Z G d� d�      Z G d� de�      Zd� Z G d� d�      Z G d� de�      Z G d� de�      Z G d� d�      Zd� Zy)�    )�Sequence�Iterable)�total_orderingN)�*)�_get_object_traceback�_get_tracesc                 �   � dD ]U  }t        | �      dk  r|dk7  r|r	d| |fz  c S d| |fz  c S t        | �      dk  s|dk(  r|r	d| |fz  c S d	| |fz  c S | d
z  } �W y )N)�B�KiB�MiB�GiB�TiB�d   r
   z%+.1f %sz%.1f %si (  r   z%+.0f %sz%.0f %si   )�abs)�size�sign�units      �"/usr/lib/python3.12/tracemalloc.py�_format_sizer   
   s   � �1� 
���t�9�s�?�t�s�{��!�T�4�L�0�0� �D�$�<�/�/��t�9�y� �D�E�M��!�T�4�L�0�0� �D�$�<�/�/�����
�    c                   �8   � e Zd ZdZdZd� Zd� Zd� Zd� Zd� Z	d� Z
y	)
�	StatisticzS
    Statistic difference on memory allocations between two Snapshot instance.
    ��	tracebackr   �countc                 �.   � || _         || _        || _        y �Nr   )�selfr   r   r   s       r   �__init__zStatistic.__init__%   s   � �"�����	���
r   c                 �Z   � t        | j                  | j                  | j                  f�      S r   )�hashr   r   r   �r   s    r   �__hash__zStatistic.__hash__*   s    � ��T�^�^�T�Y�Y��
�
�;�<�<r   c                 ��   � t        |t        �      st        S | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r   )�
isinstancer   �NotImplementedr   r   r   �r   �others     r   �__eq__zStatistic.__eq__-   sQ   � ��%��+�!�!����%�/�/�1� .��I�I����+�.��J�J�%�+�+�-�	/r   c                 ��   � d| j                   t        | j                  d�      | j                  fz  }| j                  r+| j                  | j                  z  }|dt        |d�      z  z
  }|S )Nz%s: size=%s, count=%iF�, average=%s)r   r   r   r   �r   �text�averages      r   �__str__zStatistic.__str__4   sc   � �'��N�N� ����E�2��J�J� � �� �:�:��i�i�$�*�*�,�G��N�\�'�5�%A�A�A�D��r   c                 �N   � d| j                   | j                  | j                  fz  S )Nz)<Statistic traceback=%r size=%i count=%i>r   r"