
    d /                        d dl mZ d dlmZ d dlZ e            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    r
d dlZd dlZd dlZd Z e            Ze                                Z dD ]Z! e"e e!          r nde _#        e j$        Z$e j%        Z%e j&        Z&e j#        rdZ'dZ(nGe j)        rdZ'dZ(n;e j*        rdZ'dZ(n/e j+        rdZ'dZ(n#e j,        rdZ'd Z(ne j-        rd!Z'd"Z(ne j.        rd#Z'd$Z( e	d%           e j/        re j        r ej0         e1e'          d&z   d'            ej2        d'          Z3e34                                 e35                    d(d)           e j6        re37                                 n$e37                    d*           n e8e'd&z              e j9        re j        r ej0        e(d&z   d+            ej2        d+          Z3e34                                 e35                    d(d)           e j6        r! e:d,           e37                                 dS e37                    d*           dS  e8e(d&z              dS dS dS )-    )Path)perf_counterNc                    t          d                                                                          D ]q}|                    d          r(t	          |                                d                   }@|                    d          r(t	          |                                d                   }}|                    d          r(t	          |                                d                   }|                    d          r(t	          |                                d                   }|                    d          r)t	          |                                d                   }5|                    d          r't	          |                                d                   }st          d	| z             t          d
|dd|dd           t          d|dd|dd           t          d|dd|dd           t          dt                      t          z
  d           t          dt                      t          z
             t                      a	d S )Nz/proc/self/statuszVmSize:   zVmRSS:zVmData:zVmStk:zVmExe:zVmLib:z!
Memory usage: ******* %s *******zVmSize: z>7z kB	VmRSS: z kBzVmData: z kB	VmStk: zVmExe:  z kB	VmLib: zWallClock time: )endz  Delta time:)
r   	read_text
splitlines
startswithintsplitprintclocktreftrel)explainlinevmsizevmrssvmdatavmstkvmexevmlibs           8lib/python3.11/site-packages/tables/tests/check_leaks.pyshow_memr   
   s    ())3355@@BB ) )??9%% 	)a))FF__X&& 		)

Q((EE__Y'' 	)a))FF__X&& 	)

Q((EE__X&& 	)

Q((EE__X&& 	)

Q((E	
.
8999	
9V
9
9
9E
9
9
9
9:::	
9V
9
9
9E
9
9
9
9:::	
8U
8
8
85
8
8
8
8999	
UWWt^5555	/577T>***77DDD    c           	      B   t          |          D ]}t          j        | d          }t          |          D ]1}|                    |j        dt          |          z   d|z             2t          d|z             |                                 t          d           d S )Nwmodegroup	child: %dAfter creating. Iter %sAfter close)rangetb	open_filecreate_grouprootstrr   closefilename	nchildrenniterifilehchilds         r   write_groupr3   $   s    5\\    XC0009%% 	4 	4Euz7SZZ+?*U24 4 4 4*Q.///   r   c           	      B   t          |          D ]}t          j        | d          }t          |          D ]1}|                    |j        dt          |          z             }|J 2t          d|z             |                                 t          d           d S )Nrr   r!   zAfter reading metadata. Iter %sr$   r%   r&   r'   get_noder)   r*   r   r+   r-   r.   r/   r0   r1   r2   nodes          r   
read_groupr:   /   s    5\\ 
  
 XC0009%% 	$ 	$E>>%*gE

.BCCD#### 	2Q6777
  
 r   c           	      H   t          |          D ]}t          j        | d          }t          |          D ]4}|                    |j        dt          |          z   ddgd|z             5t          d|z             |                                 t          d           d S )Nr   r   arrayr   r"   r#   r$   )r%   r&   r'   create_arrayr)   r*   r   r+   r,   s         r   write_arrayr>   =   s    5\\    XC0009%% 	< 	<Euz7SZZ+? !1v{U':< < < <*Q.///   r   c           	      V   t          |          D ]}t          j        | d          }t          |          D ];}|                    |j        dt          |          z             }|d d          }|J <t          d|z             |                                 t          d           d S Nr5   r   r<   After reading data. Iter %sr$   r6   r-   r.   r/   r0   r1   r2   r9   datas           r   
read_arrayrD   H   s    5\\    XC0009%% 	$ 	$E>>%*gE

.BCCD7D####.2333 	!   r   c           
      h   t          |          D ]}t          j        | d          }t          |          D ]D}|                    |j        dt          |          z   t          j                    dd|z             Et          d|z             |                                 t          d           d S )Nr   r   r<   )   r"   r#   r$   )	r%   r&   r'   create_carrayr)   r*   IntAtomr   r+   r,   s         r   write_carrayrI   \   s    5\\    XC0009%% 	I 	IE
Gc%jj,@ "
dK%4GI I I I*Q.///   r   c           	      V   t          |          D ]}t          j        | d          }t          |          D ];}|                    |j        dt          |          z             }|d d          }|J <t          d|z             |                                 t          d           d S r@   r6   rB   s           r   read_carrayrK   g       5\\ 
  
 XC0009%% 	$ 	$E>>%*gE

.BCCD7D####.2333
  
 r   c           
         t          |          D ]}t          j        | d          }t          |          D ]\}|                    |j        dt          |          z   t          j                    dd|z            }|                    g d           ]t          d|z             |	                                 t          d	           d S )
Nr   r   r<   )r   r"   )shapetitler   rF      r#   r$   )
r%   r&   r'   create_earrayr)   r*   rH   appendr   r+   )r-   r.   r/   r0   r1   r2   eas          r   write_earrayrU   u   s    5\\ 	  	 XC0009%% 	! 	!E$$UZ3u::1E%'Z\\+6+> % @ @B IIiii    *Q.///	  	 r   c           	      V   t          |          D ]}t          j        | d          }t          |          D ];}|                    |j        dt          |          z             }|d d          }|J <t          d|z             |                                 t          d           d S r@   r6   rB   s           r   read_earrayrW      rL   r   c           	         t          |          D ]}t          j        | d          }t          |          D ]Z}|                    |j        dt          |          z   t          j                    d|z            }|                    g d           [t          d|z             |	                                 t          d           d S )Nr   r   r<   r"   rP   r#   r$   )
r%   r&   r'   create_vlarrayr)   r*   rH   rS   r   r+   )r-   r.   r/   r0   r1   r2   vls          r   write_vlarrayr[      s    5\\    XC0009%% 	! 	!E%%ej'CJJ2F&(jllK%4GI IBIIiii    *Q.///   r   c           	      V   t          |          D ]}t          j        | d          }t          |          D ];}|                    |j        dt          |          z             }|d d          }|J <t          d|z             |                                 t          d           d S r@   r6   rB   s           r   read_vlarrayr]      rL   r   c           	          G d dt           j                  }t          |          D ]}t          j        | d          }t          |          D ]J}|                    |j        dt          |          z   |d|z            }|                    g dg           Kt          d|z             |	                                 t          d	           d S )
Nc                   v    e Zd Z ej        d          Z ej        dd          Z ej        d          Z	dS )write_table.<locals>.Recordr   posrF   lengthrb   rQ   N
__name__
__module____qualname__r&   IntColvar1	StringColvar2FloatColvar3 r   r   Recordr`      L        ryQr|1!,,,r{q!!!r   rp   r   r   tabler"   r   2g      @r#   r$   )
r&   IsDescriptionr%   r'   create_tabler)   r*   rS   r   r+   r-   r.   r/   rp   r0   r1   r2   ts           r   write_tablery      s    " " " " "! " " "
 5\\    XC0009%% 	% 	%E""5:wU/C#);+>@ @AHHlll^$$$$*Q.///   r   c           	      V   t          |          D ]}t          j        | d          }t          |          D ];}|                    |j        dt          |          z             }|d d          }|J <t          d|z             |                                 t          d           d S Nr5   r   rr   rA   r$   r6   rB   s           r   
read_tabler|      rL   r   c           	          G d dt           j                  }t          |          D ]}t          j        | d          }t          |          D ]h}|                    |j        dt          |          z   |d|z            }|                    g dg           |j        j	        
                                 it          d|z             |                                 t          d	           d S )
Nc                   v    e Zd Z ej        d          Z ej        dd          Z ej        d          Z	dS )write_xtable.<locals>.Recordr   ra   rF   rc   rQ   Nre   ro   r   r   rp   r      rq   r   rp   r   r   rr   r"   rs   r#   r$   )r&   ru   r%   r'   rv   r)   r*   rS   colsrj   create_indexr   r+   rw   s           r   write_xtabler      s   " " " " "! " " "
 5\\ 	  	 XC0009%% 	' 	'E""5:wU/C#);+>@ @AHHlll^$$$FK$$&&&&*Q.///	  	 r   c           	      <   t          |          D ]}t          j        | d          }t          |          D ]-}|                    |j        dt          |          z             }.t          d|z             |                                 t          d           ~d S r{   r6   r8   s          r   read_xtabler      s    5\\ 
 
XC0009%% 	D 	DE>>%*gE

.BCCDD 	.2333D
 
r   __main__c                     t          j        d          } |                     dddd           |                     dd	dd
           |                     dddd           |                     dddd           |                     dddd           |                     dddd           |                     dddd           |                     ddddd           |                     dd dd!           |                     d"d#dd$           |                     d%d&dd'           |                     d(d)t          d*d+,           |                     d-d.t          d/d0,           |                     d1d23           | S )4Nz Check for PyTables memory leaks.)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)r   destr   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defaultr   z-iz--niterrQ   z+number of iterations (default: %(default)d)r-   zHDF5 file name)r   )argparseArgumentParseradd_argumentr   )parsers    r   _get_parserr      s@   (:< < <D+l!6 	 	8 	8 	8D+l!* 	 	, 	, 	,D)L!? 	 	A 	A 	AD*\!6 	 	8 	8 	8D*\!6 	 	8 	8 	8D+l!7 	 	9 	9 	9D)L!5 	 	7 	7 	7D"3L!)0L 	 	N 	N 	ND)L!5 	 	7 	7 	7D(<!1 	 	3 	3 	3D)L!2 	 	4 	4 	4D-c4", 	 	- 	- 	- 	D)#q!N 	 	P 	P 	P 	J-=>>>r   )carrayearrayvlarrayrr   r   r!   Tr>   rD   rI   rK   rU   rW   r[   r]   ry   r|   r   r   r3   r:   zBefore openz(filename, nchildren, niter)zwrite_file.proftimecalls   zread_file.profzprofile -verbose);pathlibr   r   r   r   tablesr&   r   r   r   r3   r:   r>   rD   rI   rK   rU   rW   r[   r]   ry   r|   r   r   rf   pstatsr   r   profr   r   
parse_argsargsnamegetattrr<   r-   r.   r/   fwritefreadr   r   r   rr   r   r!   writerunr*   Statsstats
strip_dirs
sort_statsverboseprint_statsevalreadr   ro   r   r   <module>r      s         & & & & & &    uww  4                    (          
  
  
      	  	  	           $          &   zMMMOOO! ! !F []]FD L  74 	E	 
}HIJEz 	 	 	  	 	 	 H]z 8< 	8DHSS[[!??&( ( ( FL!233EVW---| &!!####!!"%%%%D66777y 7< 	7DHU99;KLLL FL!122EVW---| &()))!!#####!!"%%%%%D5566666M t7 7r   