ó
jˆú\c           @@ sX  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 j ƒ  a t a	 d „  Z
 d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d k rTd  d l Z d  d l Z d  d l Z d „  Z e ƒ  Z e j  ƒ  Z! x* d2 D] Z" e# e! e" ƒ rBPqBqBWe$ e! _% e! j& Z& e! j' Z' e! j( Z( e! j% r›d Z) d Z* n e! j+ r³d Z) d Z* nx e! j, rËd  Z) d! Z* n` e! j- rãd" Z) d# Z* nH e! j. rûd$ Z) d% Z* n0 e! j/ rd& Z) d' Z* n e! j0 r+d( Z) d) Z* n  e
 d* ƒ e! j1 rÁe! j r°e j2 e3 e) ƒ d+ d, ƒ e j4 d, ƒ Z5 e5 j6 ƒ  e5 j7 d- d. ƒ e! j8 r e5 j9 ƒ  q¾e5 j9 d/ ƒ qÁe: e) d+ ƒ n  e! j; rTe! j r@e j2 e* d+ d0 ƒ e j4 d0 ƒ Z5 e5 j6 ƒ  e5 j7 d- d. ƒ e! j8 r0e< d1 ƒ e5 j9 ƒ  qNe5 j9 d/ ƒ qQe: e* d+ ƒ qTn  d S(3   i    (   t   print_function(   t   absolute_importN(   t   rangec   
      C@ s´  d t  j ƒ  } t | ƒ } xþ | D]ö } | j d ƒ rT t | j ƒ  d ƒ } q& | j d ƒ r| t | j ƒ  d ƒ } q& | j d ƒ r¤ t | j ƒ  d ƒ } q& | j d ƒ rÌ t | j ƒ  d ƒ } q& | j d ƒ rô t | j ƒ  d ƒ } q& | j d ƒ r& t | j ƒ  d ƒ }	 q& q& WWd  QXt d	 |  ƒ t d
 | | f ƒ t d | | f ƒ t d | |	 f ƒ t d t j ƒ  t d d ƒt d t j ƒ  t	 ƒ t j ƒ  a	 d  S(   Ns   /proc/%s/statuss   VmSize:i   s   VmRSS:s   VmData:s   VmStk:s   VmExe:s   VmLib:s!   
Memory usage: ******* %s *******s   VmSize: %7s kB	VmRSS: %7s kBs   VmData: %7s kB	VmStk: %7s kBs   VmExe:  %7s kB	VmLib: %7s kBs   WallClock time:t   endt    s     Delta time:(
   t   ost   getpidt   opent
   startswitht   intt   splitt   printt   timet   treft   trel(
   t   explaint   filenamet   fdt   linet   vmsizet   vmrsst   vmdatat   vmstkt   vmexet   vmlib(    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   show_mem   s,    #c         C@ s   x† t  | ƒ D]x } t j |  d d ƒ} x8 t  | ƒ D]* } | j | j d t | ƒ d | ƒ q5 Wt d | ƒ | j ƒ  t d ƒ q Wd  S(   Nt   modet   wt   groups	   child: %ds   After creating. Iter %ss   After close(   R   t   tablest	   open_filet   create_groupt   roott   strR   t   close(   R   t	   nchildrent   nitert   it   fileht   child(    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   write_group+   s    
c         C@ sš   x“ t  | ƒ D]… } t j |  d d ƒ} xE t  | ƒ D]7 } | j | j d t | ƒ ƒ } | d  k	 s5 t ‚ q5 Wt d | ƒ | j	 ƒ  t d ƒ q Wd  S(   NR   t   rR   s   After reading metadata. Iter %ss   After close(
   R   R   R   t   get_nodeR    R!   t   Nonet   AssertionErrorR   R"   (   R   R#   R$   R%   R&   R'   t   node(    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt
   read_group6   s    
c         C@ s–   x t  | ƒ D] } t j |  d d ƒ} xA t  | ƒ D]3 } | j | j d t | ƒ d d g d | ƒ q5 Wt d | ƒ | j ƒ  t d ƒ q Wd  S(   NR   R   t   arrayi   s	   child: %ds   After creating. Iter %ss   After close(   R   R   R   t   create_arrayR    R!   R   R"   (   R   R#   R$   R%   R&   R'   (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   write_arrayD   s    
c         C@ s¡   xš t  | ƒ D]Œ } t j |  d d ƒ} xL t  | ƒ D]> } | j | j d t | ƒ ƒ } | } | d  k	 s5 t ‚ q5 Wt d | ƒ | j	 ƒ  t d ƒ q Wd  S(   NR   R)   R/   s   After reading data. Iter %ss   After close(
   R   R   R   R*   R    R!   R+   R,   R   R"   (   R   R#   R$   R%   R&   R'   R-   t   data(    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt
   read_arrayO   s    
c      	   C@ s™   x’ t  | ƒ D]„ } t j |  d d ƒ} xD t  | ƒ D]6 } | j | j d t | ƒ t j ƒ  d d | ƒ q5 Wt d | ƒ | j ƒ  t d ƒ q Wd  S(	   NR   R   R/   i   s	   child: %ds   After creating. Iter %ss   After close(   i   (	   R   R   R   t   create_carrayR    R!   t   IntAtomR   R"   (   R   R#   R$   R%   R&   R'   (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   write_carrayc   s    
c         C@ s¡   xš t  | ƒ D]Œ } t j |  d d ƒ} xL t  | ƒ D]> } | j | j d t | ƒ ƒ } | } | d  k	 s5 t ‚ q5 Wt d | ƒ | j	 ƒ  t d ƒ q Wd  S(   NR   R)   R/   s   After reading data. Iter %ss   After close(
   R   R   R   R*   R    R!   R+   R,   R   R"   (   R   R#   R$   R%   R&   R'   R-   R2   (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   read_carrayn   s    
c         C@ s·   x° t  | ƒ D]¢ } t j |  d d ƒ} xb t  | ƒ D]T } | j | j d t | ƒ t j ƒ  d d d d | ƒ} | j d d	 d
 g ƒ q5 Wt d | ƒ | j	 ƒ  t d ƒ q Wd  S(   NR   R   R/   t   shapei    t   titles	   child: %di   i   i   s   After creating. Iter %ss   After close(   i    (
   R   R   R   t   create_earrayR    R!   R5   t   appendR   R"   (   R   R#   R$   R%   R&   R'   t   ea(    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   write_earray|   s    
c         C@ s¡   xš t  | ƒ D]Œ } t j |  d d ƒ} xL t  | ƒ D]> } | j | j d t | ƒ ƒ } | } | d  k	 s5 t ‚ q5 Wt d | ƒ | j	 ƒ  t d ƒ q Wd  S(   NR   R)   R/   s   After reading data. Iter %ss   After close(
   R   R   R   R*   R    R!   R+   R,   R   R"   (   R   R#   R$   R%   R&   R'   R-   R2   (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   read_earray‰   s    
c         C@ s®   x§ t  | ƒ D]™ } t j |  d d ƒ} xY t  | ƒ D]K } | j | j d t | ƒ t j ƒ  d | ƒ } | j d d d g ƒ q5 Wt d | ƒ | j	 ƒ  t d	 ƒ q Wd  S(
   NR   R   R/   s	   child: %di   i   i   s   After creating. Iter %ss   After close(
   R   R   R   t   create_vlarrayR    R!   R5   R;   R   R"   (   R   R#   R$   R%   R&   R'   t   vl(    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   write_vlarray—   s    
c         C@ s¡   xš t  | ƒ D]Œ } t j |  d d ƒ} xL t  | ƒ D]> } | j | j d t | ƒ ƒ } | } | d  k	 s5 t ‚ q5 Wt d | ƒ | j	 ƒ  t d ƒ q Wd  S(   NR   R)   R/   s   After reading data. Iter %ss   After close(
   R   R   R   R*   R    R!   R+   R,   R   R"   (   R   R#   R$   R%   R&   R'   R-   R2   (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   read_vlarray£   s    
c         C@ sÄ   d t  j f d „  ƒ  Y} x¤ t | ƒ D]– } t  j |  d d ƒ} xV t | ƒ D]H } | j | j d t | ƒ | d | ƒ } | j d d d	 g g ƒ qN Wt d
 | ƒ | j	 ƒ  t d ƒ q& Wd  S(   Nt   Recordc           B@ sD   e  Z e j d  d ƒ Z e j d d d  d ƒ Z e j d  d ƒ Z RS(   t   posi   t   lengthi   i   (	   t   __name__t
   __module__R   t   IntColt   var1t	   StringColt   var2t   FloatColt   var3(    (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyRC   ³   s   R   R   t   tables	   child: %di   t   2g      @s   After creating. Iter %ss   After close(
   R   t   IsDescriptionR   R   t   create_tableR    R!   R;   R   R"   (   R   R#   R$   RC   R%   R&   R'   t   t(    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   write_table±   s    
c         C@ s¡   xš t  | ƒ D]Œ } t j |  d d ƒ} xL t  | ƒ D]> } | j | j d t | ƒ ƒ } | } | d  k	 s5 t ‚ q5 Wt d | ƒ | j	 ƒ  t d ƒ q Wd  S(   NR   R)   RN   s   After reading data. Iter %ss   After close(
   R   R   R   R*   R    R!   R+   R,   R   R"   (   R   R#   R$   R%   R&   R'   R-   R2   (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt
   read_tableÃ   s    
c         C@ sÔ   d t  j f d „  ƒ  Y} x´ t | ƒ D]¦ } t  j |  d d ƒ} xf t | ƒ D]X } | j | j d t | ƒ | d | ƒ } | j d d d	 g g ƒ | j j	 j
 ƒ  qN Wt d
 | ƒ | j ƒ  t d ƒ q& Wd  S(   NRC   c           B@ sD   e  Z e j d  d ƒ Z e j d d d  d ƒ Z e j d  d ƒ Z RS(   RD   i   RE   i   i   (	   RF   RG   R   RH   RI   RJ   RK   RL   RM   (    (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyRC   Ó   s   R   R   RN   s	   child: %di   RO   g      @s   After creating. Iter %ss   After close(   R   RP   R   R   RQ   R    R!   R;   t   colsRI   t   create_indexR   R"   (   R   R#   R$   RC   R%   R&   R'   RR   (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   write_xtableÑ   s    
c         C@ s‹   x„ t  | ƒ D]v } t j |  d d ƒ} x3 t  | ƒ D]% } | j | j d t | ƒ ƒ } q5 Wt d | ƒ | j ƒ  t d ƒ ~ q Wd  S(   NR   R)   RN   s   After reading data. Iter %ss   After close(   R   R   R   R*   R    R!   R   R"   (   R   R#   R$   R%   R&   R'   R-   (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   read_xtableä   s    #

t   __main__c       	   C@ s§  t  j d d ƒ }  |  j d d d d d d ƒ|  j d	 d
 d d d d ƒ|  j d d d d d d ƒ|  j d d d d d d ƒ|  j d d d d d d ƒ|  j d d d d d d ƒ|  j d d d d d d ƒ|  j d d d d d d d d ƒ|  j d  d! d d d d" ƒ|  j d# d$ d d d d% ƒ|  j d& d' d d d d( ƒ|  j d) d* d+ t d, d- d d. ƒ|  j d/ d0 d+ t d, d1 d d2 ƒ|  j d3 d d4 ƒ|  S(5   Nt   descriptions    Check for PyTables memory leaks.s   -vs	   --verboset   actiont
   store_truet   helps   enable verbose modes   -ps	   --profilet   profiles   -as   --arrays   create/read arrays (default)s   -cs   --carrays   create/read carrayss   -es   --earrays   create/read earrayss   -ls	   --vlarrays   create/read vlarrayss   -ts   --tables   create/read tabless   -xs   --indexed-tablet   destt   xtables   create/read indexed-tabless   -gs   --groups   create/read groupss   -rs   --reads   only read tests   -ws   --writes   only write tests   -ns   --nchildrent   typet   defaultiè  s/   number of children (%(default)d is the default)s   -is   --niteri   s+   number of iterations (default: %(default)d)R   s   HDF5 file name(   t   argparset   ArgumentParsert   add_argumentR	   (   t   parser(    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   _get_parser÷   s<    		t   carrayt   earrayt   vlarrayRN   R`   R   R1   R3   R6   R7   R=   R>   RA   RB   RS   RT   RW   RX   R(   R.   s   Before opens   (filename, nchildren, niter)s   write_file.profR   t   callsi   s   read_file.profs   profile -verbose(   Rh   Ri   Rj   RN   R`   R   (=   t
   __future__R    R   R   R   R   t	   six.movesR   R   R   R   R(   R.   R1   R3   R6   R7   R=   R>   RA   RB   RS   RT   RW   RX   RF   t   pstatsRc   R^   t   profRg   Rf   t
   parse_argst   argst   namet   getattrt   TrueR/   R   R#   R$   t   fwritet   freadRh   Ri   Rj   RN   R`   R   t   writet   runR!   t   Statst   statst
   strip_dirst
   sort_statst   verboset   print_statst   evalt   readR   (    (    (    s7   lib/python2.7/site-packages/tables/tests/check_leaks.pyt   <module>   s    																#																			
		
			
	
