a
XC?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@|r0d| |f S d| |f S t | �dk sT|dkrx|rhd| |f S d | |f S | d
} qd S )N)�BZKiBZMiBZGiB�TiB�d r z%+.1f %sz%.1f %si ( r z%+.0f %sz%.0f %si )�abs)�sizeZsignZunit� r
�0/opt/alt/python39/lib64/python3.9/tracemalloc.py�_format_size
s r c @ sD 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__* s zStatistic.__hash__c C s2 t |t�stS | j|jko0| j|jko0| 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 �textZaverager
r
r �__str__4 s
��zStatistic.__str__c C s d| j | j| jf S )Nz)r r r
r
r �__repr__> s �zStatistic.__repr__c C s | j | j| jfS r )r r r r r
r
r � _sort_keyB s zStatistic._sort_keyN��__name__�
__module__�__qualname__�__doc__� __slots__r r r r" r# r$ r
r
r
r r s
r c @ sD e Zd ZdZdZdd� Zdd� Zdd� Zd d
� Zdd� Z d
d� Z
dS )�
StatisticDiffzd
Statistic difference on memory allocations between an old and a new
Snapshot instance.
�r r � size_diffr �
count_diffc C s" || _ || _|| _|| _|| _d S r r, )r r r r- r r. r
r
r r M s
zStatisticDiff.__init__c C s t | j| j| j| j| jf�S r )r r r r- r r. r r
r
r r T s �zStatisticDiff.__hash__c C sJ t |t�stS | j|jkoH| j|jkoH| j|jkoH| j|jkoH| j|jkS r )r r+ r r r r- r r. r r
r
r r X s
�
�
�
�zStatisticDiff.__eq__c C sP d| j t| jd�t| jd�| j| jf }| jrL| j| j }|dt|d� 7 }|S )Nz %s: size=%s (%s), count=%i (%+i)FTr )r r r r- r r. r r
r
r r" a s
��zStatisticDiff.__str__c C s d| j | j| j| j| jf S )Nz9r, r r
r
r r# m s
��zStatisticDiff.__repr__c C s t | j�| jt | j�| j| jfS r )r r- r r. r r r r
r
r r$ r s �zStatisticDiff._sort_keyNr% r
r
r
r r+ F s r+ c C s� g }|� � D ]d\}}| �|d �}|d urNt||j|j|j |j|j|j �}nt||j|j|j|j�}|�|� q| � � D ]*\}}t|d|j d|j �}|�|� qz|S �Nr )�items�popr+ r r �append)� old_group� new_group�
statisticsr �statZpreviousr
r
r �_compare_grouped_statsx s" ��r7 c @ s\ e Zd ZdZdZdd� Zedd� �Zedd� �Zd d
� Z dd� Z
d
d� Zdd� Zdd� Z
dS )�Framez
Frame of a traceback.
��_framec C s
|| _ d S r r9 �r �framer
r
r r � s zFrame.__init__c C s
| j d S r/ r9 r r
r
r �filename� s zFrame.filenamec C s
| j d S �N� r9 r r
r
r �lineno� s zFrame.linenoc C s t |t�stS | j|jkS r �r r8 r r: r r
r
r r � s
zFrame.__eq__c C s t |t�stS | j|jk S r rA r r
r
r �__lt__� s
zFrame.__lt__c C s
t | j�S r )r r: r r
r
r r � s zFrame.__hash__c C s d| j | jf S )Nz%s:%s�r= r@ r r
r
r r" � s z
Frame.__str__c C s d| j | jf S )NzrC r r
r
r r# � s zFrame.__repr__N)r&