B
    i\0                 @   s  d dl mZ d dl mZ d dlZd dlZd dlZd dlmZ e ata	dd Z
dd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zed#krd dlZd dlZd dlZd$d% Ze Ze  Z!xd&D ]Z"e#e!e"rP qW d'e!_$e!j%Z%e!j&Z&e!j'Z'e!j$r<dZ(dZ)nje!j*rNdZ(dZ)nXe!j+r`dZ(dZ)nFe!j,rrdZ(dZ)n4e!j-rdZ(dZ)n"e!j.rd Z(d"Z)ne!j/rdZ(d
Z)e
d( e!j0re!jre1e2e(d) d* e3d*Z4e45  e46d+d, e!j7re48  n
e48d- ne9e(d)  e!j:re!jr~e1e)d) d. e3d.Z4e45  e46d+d, e!j7rre;d/ e48  n
e48d- ne9e)d)  dS )0    )print_function)absolute_importN)rangec       
   	   C   sD  dt   }t|}x|D ]}|dr<t| d }q|drXt| d }q|drtt| d }q|drt| d }q|drt| d }q|drt| d }	qW W d Q R X td	|   td
||f  td||f  td||	f  tdt t dd tdt t	  t a	d S )Nz/proc/%s/statuszVmSize:   zVmRSS:zVmData:zVmStk:zVmExe:zVmLib:z!
Memory usage: ******* %s *******zVmSize: %7s kB	VmRSS: %7s kBzVmData: %7s kB	VmStk: %7s kBzVmExe:  %7s kB	VmLib: %7s kBzWallClock time: )endz  Delta time:)
osgetpidopen
startswithintsplitprinttimetreftrel)
ZexplainfilenamefdlineZvmsizeZvmrssZvmdataZvmstkZvmexeZvmlib r   7lib/python3.7/site-packages/tables/tests/check_leaks.pyshow_mem   s,    







r   c             C   sn   xht |D ]\}tj| dd}x,t |D ] }||jdt| d|  q&W td|  |  td q
W d S )Nw)modegroupz	child: %dzAfter creating. Iter %szAfter close)r   tables	open_fileZcreate_grouprootstrr   close)r   	nchildrenniterifilehchildr   r   r   write_group+   s    r%   c             C   st   xnt |D ]b}tj| dd}x2t |D ]&}||jdt| }|d k	s&tq&W td|  |  td q
W d S )Nr)r   r   zAfter reading metadata. Iter %szAfter close)	r   r   r   get_noder   r   AssertionErrorr   r   )r   r    r!   r"   r#   r$   noder   r   r   
read_group6   s    r*   c          	   C   st   xnt |D ]b}tj| dd}x2t |D ]&}||jdt| ddgd|  q&W td|  |  td q
W d S )Nr   )r   arrayr   z	child: %dzAfter creating. Iter %szAfter close)r   r   r   Zcreate_arrayr   r   r   r   )r   r    r!   r"   r#   r$   r   r   r   write_arrayD   s    r,   c             C   s   xzt |D ]n}tj| dd}x>t |D ]2}||jdt| }|d d  }|d k	s&tq&W td|  |  td q
W d S )Nr&   )r   r+   zAfter reading data. Iter %szAfter close)	r   r   r   r'   r   r   r(   r   r   )r   r    r!   r"   r#   r$   r)   datar   r   r   
read_arrayO   s    r.   c          
   C   sv   xpt |D ]d}tj| dd}x4t |D ](}||jdt| t dd|  q&W td|  |  td q
W d S )Nr   )r   r+   )   z	child: %dzAfter creating. Iter %szAfter close)	r   r   r   Zcreate_carrayr   r   IntAtomr   r   )r   r    r!   r"   r#   r$   r   r   r   write_carrayc   s    r1   c             C   s   xzt |D ]n}tj| dd}x>t |D ]2}||jdt| }|d d  }|d k	s&tq&W td|  |  td q
W d S )Nr&   )r   r+   zAfter reading data. Iter %szAfter close)	r   r   r   r'   r   r   r(   r   r   )r   r    r!   r"   r#   r$   r)   r-   r   r   r   read_carrayn   s    r2   c          	   C   s   xt |D ]v}tj| dd}xFt |D ]:}|j|jdt| t dd| d}|ddd	g q&W td
|  |	  td q
W d S )Nr   )r   r+   )r   z	child: %d)shapetitler   r/      zAfter creating. Iter %szAfter close)
r   r   r   Zcreate_earrayr   r   r0   appendr   r   )r   r    r!   r"   r#   r$   Zear   r   r   write_earray|   s    r7   c             C   s   xzt |D ]n}tj| dd}x>t |D ]2}||jdt| }|d d  }|d k	s&tq&W td|  |  td q
W d S )Nr&   )r   r+   zAfter reading data. Iter %szAfter close)	r   r   r   r'   r   r   r(   r   r   )r   r    r!   r"   r#   r$   r)   r-   r   r   r   read_earray   s    r8   c          	   C   s   x~t |D ]r}tj| dd}xBt |D ]6}||jdt| t d| }|dddg q&W td|  |	  td	 q
W d S )
Nr   )r   r+   z	child: %dr   r/   r5   zAfter creating. Iter %szAfter close)
r   r   r   Zcreate_vlarrayr   r   r0   r6   r   r   )r   r    r!   r"   r#   r$   Zvlr   r   r   write_vlarray   s    r9   c             C   s   xzt |D ]n}tj| dd}x>t |D ]2}||jdt| }|d d  }|d k	s&tq&W td|  |  td q
W d S )Nr&   )r   r+   zAfter reading data. Iter %szAfter close)	r   r   r   r'   r   r   r(   r   r   )r   r    r!   r"   r#   r$   r)   r-   r   r   r   read_vlarray   s    r:   c          	   C   s   G dd dt j}x|t|D ]p}t j| dd}x@t|D ]4}||jdt| |d| }|ddd	gg q8W td
|  |	  td qW d S )Nc               @   s2   e Zd ZejddZejdddZejddZ	dS )zwrite_table.<locals>.Recordr   )posr/   )lengthr;   r5   N)
__name__
__module____qualname__r   IntColvar1	StringColvar2FloatColvar3r   r   r   r   Record   s   rF   r   )r   tablez	child: %dr   2g      @zAfter creating. Iter %szAfter close)
r   IsDescriptionr   r   create_tabler   r   r6   r   r   )r   r    r!   rF   r"   r#   r$   tr   r   r   write_table   s    rL   c             C   s   xzt |D ]n}tj| dd}x>t |D ]2}||jdt| }|d d  }|d k	s&tq&W td|  |  td q
W d S )Nr&   )r   rG   zAfter reading data. Iter %szAfter close)	r   r   r   r'   r   r   r(   r   r   )r   r    r!   r"   r#   r$   r)   r-   r   r   r   
read_table   s    rM   c          	   C   s   G dd dt j}xt|D ]|}t j| dd}xLt|D ]@}||jdt| |d| }|ddd	gg |jj	
  q8W td
|  |  td qW d S )Nc               @   s2   e Zd ZejddZejdddZejddZ	dS )zwrite_xtable.<locals>.Recordr   )r;   r/   )r<   r;   r5   N)
r=   r>   r?   r   r@   rA   rB   rC   rD   rE   r   r   r   r   rF      s   rF   r   )r   rG   z	child: %dr   rH   g      @zAfter creating. Iter %szAfter close)r   rI   r   r   rJ   r   r   r6   ZcolsrA   Zcreate_indexr   r   )r   r    r!   rF   r"   r#   r$   rK   r   r   r   write_xtable   s    rN   c             C   sj   xdt |D ]X}tj| dd}x&t |D ]}||jdt| }q&W td|  |  td ~q
W d S )Nr&   )r   rG   zAfter reading data. Iter %szAfter close)r   r   r   r'   r   r   r   r   )r   r    r!   r"   r#   r$   r)   r   r   r   read_xtable   s    rO   __main__c              C   s  t jdd} | jddddd | jdd	dd
d | jddddd | jddddd | jddddd | jddddd | jddddd | jdddddd | jdd dd!d | jd"d#dd$d | jd%d&dd'd | jd(d)td*d+d, | jd-d.td/d0d, | jd1d2d3 | S )4Nz Check for PyTables memory leaks.)Zdescriptionz-vz	--verbose
store_truezenable verbose mode)actionhelpz-pz	--profileprofilez-az--arrayzcreate/read arrays (default)z-cz--carrayzcreate/read carraysz-ez--earrayzcreate/read earraysz-lz	--vlarrayzcreate/read vlarraysz-tz--tablezcreate/read tablesz-xz--indexed-tablextablezcreate/read indexed-tables)rR   destrS   z-gz--groupzcreate/read groupsz-rz--readzonly read testz-wz--writezonly write testz-nz--nchildreni  z/number of children (%(default)d is the default))typedefaultrS   z-iz--niterr5   z+number of iterations (default: %(default)d)r   zHDF5 file name)rS   )argparseArgumentParseradd_argumentr   )parserr   r   r   _get_parser   s<    











r]   )carrayearrayvlarrayrG   rU   r   TzBefore openz(filename, nchildren, niter)zwrite_file.profr   Zcalls   zread_file.profzprofile -verbose)<Z
__future__r   r   r   r   r   Z	six.movesr   r   r   r   r%   r*   r,   r.   r1   r2   r7   r8   r9   r:   rL   rM   rN   rO   r=   ZpstatsrY   rT   Zprofr]   r\   
parse_argsargsnamegetattrr+   r   r    r!   ZfwriteZfreadr^   r_   r`   rG   rU   r   writerunr   ZStatsZstatsZ
strip_dirsZ
sort_statsverboseZprint_statsevalreadr   r   r   r   r   <module>   s   
#





