MINI MINI MANI MO
3
  \A                 @   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 dZdd
 ZeG dd dZeG dd deZdd ZG dd dZG dd deZdd ZG dd dZG dd deZG dd deZG d d! d!Zd"d# ZdS )$    )SequenceIterable)total_orderingN)*)_get_object_traceback_get_tracesc             C   sz   xtd
D ]l}t | dk r:|dkr:|r.d| |f S d| |f S t | dk sN|dkrj|r^d| |f S d| |f S | d
 } qW d S )NBKiBMiBGiBTiBd   z%+.1f %sz%.1f %s
   i   z%+.0f %sz%.0f %s)r   r	   r
   r   r   i (  )abs)sizeZsignZunit r   #/usr/lib64/python3.6/tracemalloc.py_format_size
   s    
r   c               @   sD   e Zd ZdZdZdd Zdd Zd	d
 Zdd Zd
d Z	dd Z
dS )	StatisticzS
    Statistic difference on memory allocations between two Snapshot instance.
    	tracebackr   countc             C   s   || _ || _|| _d S )N)r   r   r   )selfr   r   r   r   r   r   __init__%   s    zStatistic.__init__c             C   s   t | j| j| jfS )N)hashr   r   r   )r   r   r   r   __hash__*   s    zStatistic.__hash__c             C   s$   | j |j ko"| j|jko"| j|jkS )N)r   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=%iFz, average=%s)r   r   r   r   )r   textaverager   r   r   __str__2   s    
zStatistic.__str__c             C   s   d| j | j| jf S )Nz)<Statistic traceback=%r size=%i count=%i>)r   r   r   )r   r   r   r   __repr__<