
    d                       d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	Z
ddlZddlmZ  G d dej                  Z G d d	ej        ej                  Z G d
 dej                  Z G d dej        ej                  Z G d de          Zej                            ej         d           G d de                      Zej                            ej         d           G d de                      Z G d de          Z G d de          Z G d de          Z G d de          Z  G d de          Z!ej                            ej         d           G d  d!e                      Z"ej                            ej#         d"           G d# d$e                      Z$ej                            ej#         d"           G d% d&e                      Z%ej                            ej#         d"          ej                            d' ej&                    vd(           G d) d*e                                  Z'ej                            ej#         d"          ej                            d' ej&                    vd(           G d+ d,e                                  Z(ej                            ej#         d"          ej                            d- ej&                    vd.           G d/ d0e                                  Z)ej                            ej#         d"          ej                            d1 ej&                    vd2           G d3 d4e                                  Z*ej                            ej#         d"          ej                            d5 ej&                    vd6           G d7 d8e                                  Z+ej                            ej#         d"           G d9 d:e                      Z, G d; d<ej        ej                  Z- G d= d>e-          Z. G d? d@e-          Z/ G dA dBe-          Z0 G dC dDe-          Z1 G dE dFe-          Z2 G dG dHe-          Z3 G dI dJe-          Z4ej                            ej         d           G dK dLe-                      Z5 G dM dNej        ej                  Z6 G dO dPe6          Z7 G dQ dRe6          Z8 G dS dTe6          Z9 G dU dVe6          Z: G dW dXe6          Z; G dY dZe6          Z< G d[ d\e6          Z= G d] d^e6          Z> G d_ d`ej        ej                  Z? G da dbej        ej                  Z@ej                            ej#         dc           G dd deej        ej                              ZA G df dgej                  ZB G dh diej        ej                  ZCej                            ejD         edj          k     dk           G dl dmeC                      ZEej                            ejD         edj          k     dk           G dn doeC                      ZFej                            ejD         edj          k     dk           G dp dqeC                      ZG G dr dsej                  ZH G dt dueC          ZI G dv dwej                  ZJdxejK        jL        v reCZMneJZM G dy dzeM          ZNejK        jO        r G d{ d|eC          ZPn G d} d|eJ          ZPejK        jQ        r G d~ deC          ZRn G d deJ          ZR G d deJ          ZS G d deJ          ZT G d deJ          ZU G d deJ          ZV G d deJ          ZWej                            ejD         edj          k     d           G d dej                              ZX G d dej        ej                  ZYd ZZe[dk    rA ej\        ej]                    ej^                     ej        _                    d           dS dS )zThis test unit checks object creation funtions, like open_file,
create_table, create_array or create_group.

It also checks:

- name identifiers in tree objects
- title character limit for objects (255)
- limit in number in table fields (255)

    N)Path)Version)commonc                       e Zd Z ej        d          Z ej                    Z ej                    Z	 ej
                    Z ej                    ZdS )Record   itemsizeN)__name__
__module____qualname__tb	StringColvar1IntColvar2Int16Colvar3FloatColvar4
Float32Colvar5     8lib/python3.11/site-packages/tables/tests/test_create.pyr   r      sV        2<###D29;;D2;==D2;==D2=??DDDr   r   c                   h     e Zd ZdZdZdZdZdZ fdZd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Z xZS )CreateTestCaseThis is the table titled   i   l        r   c                 ^   t                                                       | j        j        | _        | j                            | j        dt
          d          | _        | j                            | j        ddgd          | _        | j        	                    | j        dd          | _
        d S )NatableTable titleanarray   Array titleagroupGroup title)supersetUph5filerootcreate_tabler   tablecreate_arrayarraycreate_groupgroupself	__class__s    r   r)   zCreateTestCase.setUp(   s     K$	 [--di.4mE E
 [--di/0c=B B
 [--di.;= =


r   c                 .   |                      | j        t          j                   |                      | j        t          j                   |                      | j        t          j                   |                      | j        t          j                   dS )zTesting table creation.N)	assertIsInstancer-   r   Tabler/   ArrayLeafr1   Groupr3   s    r   test00_isClasszCreateTestCase.test00_isClass8   sr     	dj"(333dj"(333dj"'222dj"(33333r   c                 6   	 | j                             | j        ddgd          | _        |                     d           dS # t
          j        $ rH t          j        r8t          j
                    \  }}}t          d           t          |           Y dS Y dS w xY w)z-Checking protection against node overwriting.r#   r$   r%   zexpected a tables.NodeErrorz(
Great!, the next NameError was catched!N)r*   r.   r+   r/   failr   	NodeErrorr   verbosesysexc_infoprint)r3   typevalue	tracebacks       r   test01_overwriteNodez#CreateTestCase.test01_overwriteNode@   s    		511$)Y34#}F FDJ II344444 | 	 	 	~ +.<>>(uiABBBe  	s   (A ABBc                 B   |                      t          j                  5  | j                            | j        ddgd          | _        ddd           n# 1 swxY w Y   |                      t          j                  5  | j                            | j        ddgd          | _        ddd           n# 1 swxY w Y   |                      t          j                  5  | j                            | j        ddgd          | _        ddd           dS # 1 swxY w Y   dS )z%Checking syntax in object tree names.z arrayr$   r%   Nz$arrayfor)assertWarnsr   NaturalNameWarningr*   r.   r+   r/   r;   s    r   test02_syntaxnamez CreateTestCase.test02_syntaxnameN   s	    b344 	F 	F11$)X34#}F FDJ	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F
 b344 	F 	F11$)X34#}F FDJ	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F
 b344 	F 	F11$)U34#}F FDJ	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs5   )AAA?)B44B8;B8)DDDc                 *   |                                   |                     | j        j        j        j        d           |                     | j        j        j        j        d           |                     | j        j        j        j        d           dS )z&Checking the self.title attr in nodes.r'   r"   r%   N)	_reopenassertEqualr*   r+   r&   _v_titler!   titler#   r;   s    r   test03a_titleAttrz CreateTestCase.test03a_titleAttr_   s|     	 	)09=III)06FFF)17GGGGGr   c                    d}| j                             | j        dd|z            }|                     |j        d|z             |                     |                    d          d|z             | j                             | j        dt          d|z            }|                     |j        d|z             |                     |	                    d          d|z             | j         
                    | j        ddgd|z            }|                     |j        d|z             |                     |	                    d          d|z             dS )	z2Checking large title character length limit (1023)i  r1   tTITLEr-   arrr$   N)r*   r0   r+   rO   rP   
_f_getattrr,   r   rQ   get_attrr.   )r3   titlelengthr1   r-   rV   s        r   test03b_titleLengthz"CreateTestCase.test03b_titleLengthj   sS    ((GS;=NOO{):;;;))'22C+4EFFF ((G)/{1BD DcK&788800#2CDDD k&&ty%()sC+,=? ?C+$5666g..k0ABBBBBr   c                 ~   t           j        j        }g }t          |          D ]}|                    d|z             i }d}|D ],}t           j                            dd|          ||<   |dz  }-d|d<   | j                            | j	        d|d	          }|j
        }g }t          d
          D ]}	g }
t          t          |j                            D ](}||	z  |||         <   |
                    ||	z             )|                                 |                    t          |
                     |                                 |                                                                }t"          j        r,t'          d|d                    t'          d|d                    |                     ||           dS )z+Checking a large number of fields in tablesint%dr   int32r$   dfltpos=_v_alignr-   MetaRecord instance
   zOriginal row list:zRetrieved row list:N)r   
parametersMAX_COLUMNSrangeappendCol	from_typer*   r,   r+   rowlencolnamestupleflushreadtolistr   r@   rC   rO   )r3   	varnumbervarnamesi
recordDictvarnamer-   rl   listrowsjrowlistlistouts               r   test04_maxFieldszCreateTestCase.test04_maxFields   s    M-	y!! 	) 	)AOOGaK(((( 
 	 	G"$&"2"27"2"J"JJwFAA!$
:((G)35JL Lir 	, 	,AG3u~..// & &#$q5HQK q1u%%%%JJLLLOOE'NN++++ 	 **,,%%'' > 	6&555'5557+++++r   c                    t           j        j        dz   }g }t          |          D ]}|                    d|z             i }d}|D ]+}t           j                            dd          ||<   |dz  },t          j        dt           j	                   	 | j
                            | j        d|d	           |                     d
           nV# t           j	        $ rD t          j        r5t!          j                    \  }}}t%          d           t%          |           Y nw xY wt          j        dt           j	                   dS )z<Checking an excess of the maximum number of fields in tablesr$   r\   r   r]   r_   error)categoryr-   rc   z%expected an tables.PerformanceWarningz1
Great!, the next PerformanceWarning was catched!defaultN)r   rf   rg   rh   ri   rj   rk   warningsfilterwarningsPerformanceWarningr*   r,   r+   r>   r   r@   rA   rB   rC   )	r3   rs   rt   ru   rv   rw   rD   rE   rF   s	            r   test05_maxFieldsExceededz'CreateTestCase.test05_maxFieldsExceeded   sg    M-1	y!! 	) 	)AOOGaK(((( 
 	 	G"$&"2"27"2"C"CJwFAA 	"2GHHHH		?K$$TY%/1FH H H II=>>>> $ 	 	 	~ +.<>>(uiJKKKe		 		B4IJJJJJJs   "C ADDc                 h   i }t          j        d          |d<   t          j        d          |d<   t          j        |d          }|                     |           |                     t
                    5  | j                            | j        d|d           ddd           dS # 1 swxY w Y   dS )z>Checking an excess (256) of the maximum length in column namesr$   r~   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbrc   r-   N)	r   r   r7   assertIsNotNoneassertRaises
ValueErrorr*   r,   r+   r3   rv   r-   s      r   #_test06_maxColumnNameLengthExceededz2CreateTestCase._test06_maxColumnNameLengthExceeded   s    
 "	q 1 1 1
9 "	q 1 1 1
9 %:;;U### z** 	H 	HK$$TY%/1FH H H	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   7#B''B+.B+c                 6   i }t          j        dd          |d<   t          j        dd          |d<   | j                            | j        d|d          }|                     |j        d         d           |                     |j        d         d           dS )	z)Checking unlimited length in column namesr$   r   r^   r      bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr-   rc   N)r   r   r*   r,   r+   rO   rn   r   s      r   test06_noMaxColumnNameLengthz+CreateTestCase.test06_noMaxColumnNameLength   s     
 "	qa 8 8 8
9!#q!9!9!9
: ((G)35JL L*I666*J77777r   )r   r   r   rQ   expectedrowsmaxshortmaxintcompressr)   r<   rG   rL   rR   rZ   r|   r   r   r   __classcell__r4   s   @r   r   r   !   s        %ELHFH= = = = = 4 4 45 5 5F F F"	H 	H 	HC C C*+, +, +,\#K #K #KLH H H&8 8 8 8 8 8 8r   r   c                   l    e Zd Z ej        d          Z ej                    Z ej                    Z	dS )Record2r   r	   N)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s<        2<###D29;;D2;==DDDr   r   c                   8     e Zd ZdZdZ fdZd Zd Zd Z xZ	S )FiltersTreeTestCaseA titlerd   c                 p    t                                                       |                                  d S N)r(   r)   populateFiler2   s    r   r)   zFiltersTreeTestCase.setUp   s,    r   c                 X   | j         j        }t          d          D ]}| j                             |dt          | j        d           }|j        }t          | j                  D ]3}d| j        |z
  z  |d<   ||d<   |dz  |d<   |                                 4|	                                 d	 |
                                D             }d
 |
                                D             }| j                             |d|d           | j                             |d|d           | j                             |dt          j        d          dd          }| j                             |dt          j                    dd          }	|                    |           |	                    |           | j                             |dt          j        d          d          }
| j                             |dt          j                    d          }|dk    r3| j                             |dt%          |          z   | j                  }nd|dk    r,| j                             |dt%          |          z             }n2| j                             |dt%          |          z   | j                  }|}d S )N   table1rQ   filters%04dr   r      r   c                     g | ]
}|d          S r   r   .0xs     r   
<listcomp>z4FiltersTreeTestCase.populateFile.<locals>.<listcomp>      <<<a&	<<<r   c                     g | ]
}|d          S r   r   r   s     r   r   z4FiltersTreeTestCase.populateFile.<locals>.<listcomp>  r   r   array1col 1array2col 3earray1r   r	   r   earray2carray1)r   carray2r$   r1   r   )r*   r+   rh   r,   r   rQ   rl   nrowsri   rp   iterrowsr.   create_earrayr   
StringAtom	Int16Atomcreate_carrayr0   strgfiltersr   )r3   r1   ry   r-   dru   var1Listvar3Listea1ea2vla1vla2group2s                r   r   z FiltersTreeTestCase.populateFile  s    q 1	 1	AK,,UHg37:59 - ; ;E 	A4:&&  "dj1n5&	&	E&	



KKMMM =<5>>+;+;<<<H<<5>>+;+;<<<HK$$UHhHHHK$$UHhHHH +++E9,.M1,E,E,Et,35 5C +++E9,.LNND'K KC JJx   JJx    ;,,y"-";";";TC CD;,,y",..$8 8D Avv11%3q669I:>- 2 I Ia11%3q669IJJ11%3q669I:>, 2 H H EEc1	 1	r   c                 	   t           j        r,t          dd           t          d| j        j        z             t           j        rIt          dt          | j                             t          dt          | j        j                             | j        t          j	                    }n| j        }| 
                    t          |          t          | j        j                             g d}|D ]}| j                            |          }t          |t          j                  r6| 
                    t          |          t          |j                             l| 
                    t          |          t          |j                             | j        j        j        j        }| j        #| j        t          j	                    }n| j        }n| j        }t           j        r?t          dt          |                     t          dt          |j                             | 
                    t          |          t          |j                             g d	}|D ]}| j                            |          }t          |t          j                  r6| 
                    t          |          t          |j                             l| 
                    t          |          t          |j                             | j        #| j        t          j	                    }n| j        }n| j        }| j        j        j        j        j        j        }t           j        r?t          dt          |                     t          dt          |j                             | 
                    t          |          t          |j                             g d
}|D ]}| j                            |          }t          |t          j                  r6| 
                    t          |          t          |j                             l| 
                    t          |          t          |j                             g d}|D ]b}| j                            |          }| 
                    t          t          j	                              t          |j                             cdS )z<Checking inheritance of filters on trees (open file version)
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=z!Running %s.test00_checkFilters...Test filter:Filters in file:Nz/table1z/group0/earray1z/group0/carray1/group0zTest gfilter:/group0/group1z/group0/group1/earray1z/group0/group1/carray1z/group0/group1/table1z/group0/group1/group2/table1z/group0/group1/group2/group3z$/group0/group1/group2/group3/earray1z$/group0/group1/group2/group3/carray1z#/group0/group1/group2/group3/table1z#/group0/group1/group2/group3/group4z/array1z/group0/array1z/group0/group1/array1z/group0/group1/group2/array1z#/group0/group1/group2/group3/array1)r   r@   rC   r4   r   reprr   r*   r   FiltersrO   get_node
isinstancer:   
_v_filtersr+   group0group1r   r   group3)r3   r   nodelistnodeobjr   r   r   s           r   test00_checkFiltersz'FiltersTreeTestCase.test00_checkFilters:  sj    > 	+$	"""5.)* + + + > 	A.$t|"4"4555$d4;+>&?&?@@@<jllGGlGgT[-@(A(ABBB
 
 
  	C 	CD+&&t,,C#rx(( C  gS^0D0DEEEE  gS[0A0ABBBB !(/= |#:<<<}H> 	?/4>>222$d6+<&=&=>>>hf.?)@)@AAA
 
 

  	D 	DD+&&t,,C#rx(( D  hcn1E1EFFFF  hck1B1BCCCC <}$*,,-lG!(/6=> 	?.$w--000$d6+<&=&=>>>gV->(?(?@@@
 
 
  	C 	CD+&&t,,C#rx(( C  gS^0D0DEEEE  gS[0A0ABBBB
 
 
  	D 	DD+&&t,,CT"*,,//ck1B1BCCCC	D 	Dr   c                 	   t           j        r,t          dd           t          d| j        j        z             |                                  | j        t          j                    }n| j        }t           j        rDt          dt          |                     t          dt          | j
        j                             |                     t          |          t          | j
        j                             g d}|D ]}| j
                            |          }t          |t          j                  r6|                     t          |          t          |j                             l|                     t          |          t          |j                             | j
        j        j        j        }| j        #| j        t          j                    }n| j        }n| j        }t           j        r?t          dt          |                     t          dt          |j                             |                     t          |          t          |j                             g d}|D ]}| j
                            |          }t          |t          j                  r6|                     t          |          t          |j                             l|                     t          |          t          |j                             | j        #| j        t          j                    }n| j        }n| j        }| j
        j        j        j        j        j        }t           j        r?t          dt          |                     t          dt          |j                             t          |          t          |j                  k     g d	}|D ]}| j
                            |          }t          |t          j                  r6|                     t          |          t          |j                             l|                     t          |          t          |j                             g d
}|D ]b}| j
                            |          }|                     t          t          j                              t          |j                             cdS )z=Checking inheritance of filters on trees (close file version)r   r   z!Running %s.test01_checkFilters...Nr   r   r   r   r   r   )r   r@   rC   r4   r   rN   r   r   r   r   r*   rO   r   r   r:   r   r+   r   r   r   r   r   )	r3   r   r   r   object_r   r   r   r   s	            r   test01_checkFiltersz'FiltersTreeTestCase.test01_checkFilters  sl    > 	+$	"""5.)* + + + 	 <jllGGlG> 	A.$w--000$d4;+>&?&?@@@gT[-@(A(ABBB
 
 
  	G 	GDk**400G'28,, G  gW5G0H0HIIII  gW_0E0EFFFF !(/= |#:<<<}H> 	?.$x..111$d6+<&=&=>>>hf.?)@)@AAA
 
 

  	H 	HDk**400G'28,, H  hg6H1I1IJJJJ  hgo1F1FGGGG <}$*,,-lG!(/6=> 	?.$w--000$d6+<&=&=>>>Wf/0000
 
 
  	C 	CD+&&t,,C#rx(( C  gS^0D0DEEEE  gS[0A0ABBBB
 
 
  	D 	DD+&&t,,CT"*,,//ck1B1BCCCC	D 	Dr   )
r   r   r   rQ   r   r)   r   r   r   r   r   s   @r   r   r      s        EE    4 4 4liD iD iDVjD jD jD jD jD jD jDr   r   c                   f    e Zd Z ej                    Z ej        d          Z ee          ZdS )FiltersCase1r$   	complevelr   N	r   r   r   r   r   r   r   dictopen_kwargsr   r   r   r   r     sA        bjllGrzA&&&H$w'''KKKr   r   z'BZIP2 compression library not availablec                   l    e Zd Z ej        dd          Z ej        d          Z ee          ZdS )FiltersCase2r$   bzip2r   complibr   r   Nr   r   r   r   r   r     sL         bj1g666GrzA&&&H$w'''KKKr   r   z%LZO compression library not availablec                   p    e Zd Z ej        dd          Z ej        ddd          Z ee          Zd	S )
FiltersCase3Tzlibshuffler   r$   Flzor   r   r   r   Nr   r   r   r   r   r      sP         bjv666GrzAueDDDH$w'''KKKr   r   c                   l    e Zd Z ej        d          Z ej        dd          Z ee          ZdS )FiltersCase4Tr   r$   Fr   r   r   Nr   r   r   r   r   r   (  sJ        bj&&&GrzAu555H$w'''KKKr   r   c                   l    e Zd Z ej        d          Z ej        dd          Z ee          ZdS )FiltersCase5T
fletcher32r$   Fr   r   Nr   r   r   r   r   r   .  sJ        bjD)))GrzAu555H$w'''KKKr   r   c                   N    e Zd ZdZ ej        dd          Z ee          ZdS )FiltersCase6Nr$   Fr   r   )	r   r   r   r   r   r   r   r   r   r   r   r   r   r   4  s;        GrzAu555H$w'''KKKr   r   c                   L    e Zd Z ej        d          ZdZ ee          ZdS )FiltersCase7r$   r   Nr   r   r   r   r   r  r  :  s9        bj1%%%GH$w'''KKKr   r  c                   .    e Zd ZdZdZ ee          ZdS )FiltersCase8Nr   )r   r   r   r   r   r   r   r   r   r   r  r  @  s*        GH$w'''KKKr   r  c                   p    e Zd Z ej        dd          Z ej        ddd          Z ee          ZdS )	FiltersCase9Tr   r   r   r   r   r   Nr   r   r   r   r  r  F  sP         bjv666GrzAtWEEEH$w'''KKKr   r  z'BLOSC compression library not availablec                   r    e Zd Z ej        ddd          Z ej        ddd          Z ee          Zd	S )
FiltersCase10Fr$   bloscr   r   r   r   Tr   r   Nr   r   r   r   r  r  N  sR         bj!WEEEGrzAtWEEEH$w'''KKKr   r  c                   r    e Zd Z ej        ddd          Z ej        ddd          Z ee          Zd	S )
FiltersCaseBloscBloscLZFr$   blosc:blosclzr	  r   Tr   r   Nr   r   r   r   r  r  V  sR         bj!_MMMGrzAt_MMMH$w'''KKKr   r  lz4zlz4 requiredc                        e Zd Z fdZ xZS )FiltersCaseBloscLZ4c                     t          j        ddd          | _        t          j        ddd          | _        t	          | j                  | _        t                                                       d S )	NFr$   z	blosc:lz4r	  r   Tr   r   r   r   r   r   r   r   r(   r)   r2   s    r   r)   zFiltersCaseBloscLZ4.setUpc  sk    z%1*57 7 7
Q+68 8 8555r   r   r   r   r)   r   r   s   @r   r  r  ^  8        
        r   r  c                        e Zd Z fdZ xZS )FiltersCaseBloscLZ4HCc                     t          j        ddd          | _        t          j        ddd          | _        t	          | j                  | _        t                                                       d S )	NFr$   zblosc:lz4hcr	  r   Tr   r   r  r2   s    r   r)   zFiltersCaseBloscLZ4HC.setUpq  sk    zQ? ? ?
}> > >555r   r  r   s   @r   r  r  l  r  r   r  snappyzsnappy requiredc                        e Zd Z fdZ xZS )FiltersCaseBloscSnappyc                     t          j        ddd          | _        t          j        ddd          | _        t	          | j                  | _        t                                                       d S )	NFr$   zblosc:snappyr	  r   Tr   r   r  r2   s    r   r)   zFiltersCaseBloscSnappy.setUp  sn    zQ@ @ @
~? ? ?555r   r  r   s   @r   r  r  z  r  r   r  r   zzlib requiredc                        e Zd Z fdZ xZS )FiltersCaseBloscZlibc                     t          j        ddd          | _        t          j        ddd          | _        t	          | j                  | _        t                                                       d S )	NFr$   z
blosc:zlibr	  r   Tr   r   r  r2   s    r   r)   zFiltersCaseBloscZlib.setUp  k    z%1*68 8 8
Q+79 9 9555r   r  r   s   @r   r  r    r  r   r  zstdzzstd requiredc                        e Zd Z fdZ xZS )FiltersCaseBloscZstdc                     t          j        ddd          | _        t          j        ddd          | _        t	          | j                  | _        t                                                       d S )	NFr$   z
blosc:zstdr	  r   Tr   r   r  r2   s    r   r)   zFiltersCaseBloscZstd.setUp  r  r   r  r   s   @r   r!  r!    r  r   r!  c                   t    e Zd Z ej        ddd          Z ej        dddd          Z ee          Zd	S )
FiltersCaseBloscBitShuffleFr$   r  r	  r   T)r   r   
bitshuffler   r   Nr   r   r   r   r$  r$    s[         bj!_MMMGrzAu"13 3 3H$w'''KKKr   r$  c                   N     e Zd ZdZdZ fdZd Z fdZd Zd Z	d Z
d	 Z xZS )
CopyGroupTestCaser   rd   c                     t                                                       t          j        d          | _        t          j        | j        d          | _        |                                  d S )N.h5w)	r(   r)   tempfilemktemph5fname2r   	open_fileh5file2r   r2   s    r   r)   zCopyGroupTestCase.setUp  sV     !.. |DM377r   c           	         | j         j        }d|j        _        d|j        _        t          d          D ]G}t          d          D ]}| j                             |dt          |          z   d           }| j                             |dt          | j
        d           }|j        }t          | j                  D ]3}d	| j        |z
  z  |d
<   ||d<   |dz  |d<   |                                 4|                                 d|j        _        d|j        _        d |                                D             }d |                                D             }	| j                             |d|d           | j                             |d|	d           | j                             |dt'          j        d          dd          }
| j                             |dt'          j                    dd          }d|
j        _        d|j        _        |
                    |           |                    |	           | j                             |dt          |          z   d           }|}d|j        _        d|j        _        Id S )Nan string for root group|   r   r   bgroupr   r   r   r   r   r   r   	an string   c                     g | ]
}|d          S r   r   r   s     r   r   z2CopyGroupTestCase.populateFile.<locals>.<listcomp>      @@@!AfI@@@r   c                     g | ]
}|d          S r   r   r   s     r   r   z2CopyGroupTestCase.populateFile.<locals>.<listcomp>  r7  r   r   r   r   r   r   r   r	   r   r   an string for earray{   r1   an string for groupr*   r+   _v_attrsattr1attr2rh   r0   r   r,   r   rQ   rl   r   ri   rp   attrsr   r.   r   r   r   r   r3   r1   group_ibgroup_ir   r-   r   row_ir   r   r   r   r   s                r   r   zCopyGroupTestCase.populateFile  s    9"Qxx 5	' 5	'G!!HH +% +%11%2:S]]2J:> 2 @ @
 0077;z9= 1 ? ? I"4:..  E &$*u*< =AfI %AfI %	AfIHHJJJJ %0!$'! A@u~~/?/?@@@@@u~~/?/?@@@((8WMMM((8WMMM k//	02q0I0I0I04g? ? k//	02gO O #9	"%	

8$$$

8$$$$ [--eWs7||5K6: . < <F E#8EN #&EN  k5	' 5	'r   c                     | j         j        r| j                                          t          | j                                                   t                                                       d S r   )r/  isopencloser   r-  unlinkr(   tearDownr2   s    r   rI  zCopyGroupTestCase.tearDown  s\    < 	!L   T]""$$$r   c                    t           j        r,t          dd           t          d| j        j        z             | j        j        j        j        }| j        	                    || j
        j        d| j                   | j        r8| j
                                         t          j        | j        d          | _
        | j
        j        }t!          |j                  }t!          |j                  }|                                 |                                 t           j        r t          d|           t          d|           |                     |j        |j                   |                     ||           d	S )
z&Checking non-recursive copy of a Groupr   r   z!Running %s.test00_nonRecursive...F	recursiver   rThe origin node list -->The copied node list -->N)r   r@   rC   r4   r   r*   r+   r   r   copy_childrenr/  r   rG  r   r.  r-  list_v_childrensortrO   _v_nchildrenr3   srcgroupdstgroup	nodelist1	nodelist2s        r   test00_nonRecursivez%CopyGroupTestCase.test00_nonRecursive  si    > 	+$	"""5.)* + + + ;#*1 	!!(DL,=,14< 	" 	I 	I 	I: 	<L   <s;;DL <$-..	-..	> 	9,i888,i888.0EFFFI.....r   c                     t           j        r-t          dd           t          d| j        j         d           | j        j        j        j        }|	                    | j
        j        d| j        d           | j        r8| j
                                         t          j        | j        d          | _
        | j
        j        }|D ]}t!          ||j                  }t%          |t          j                  r9|j        }|                    d	          }|j        }|                    d	          }n8|j        }|                    d	          }|j        }|                    d	          }| j        |                    d           t           j        r4t          d|j         d|            t          d|j         d|            |                     ||           t           j        rt          d           |D ]R}	t3          t!          ||	                    }
t3          t!          ||	                    }|                     |
|           S| j         |                     |j        | j                   t           j        rt          d           d
S )z:Checking non-recursive copy of a Group (attributes copied)r   r   Running z.test01_nonRecursiveAttrs...Fr$   )rL  r   copyuserattrsrM  allNFILTERSsrcattrskeys for node : dstattrskeys for node )The attrs names has been copied correctly,The attrs contents has been copied correctly)r   r@   rC   r4   r   r*   r+   r   r   _f_copy_childrenr/  r   rG  r   r.  r-  getattr_v_namer   r:   r=  _f_listr@  removerO   r   r_  r3   rV  rW  srcnodedstnodesrcattrssrcattrskeysdstattrsdstattrskeyssrcattrnamesrcattrvaluedstattrvalues               r   test01_nonRecursiveAttrsz*CopyGroupTestCase.test01_nonRecursiveAttrs"  s    > 	3$	""" 2T^4 2 2 2 3 3 3 ;#*1!!$,"3,1*.,01 	" 	3 	3 	3 : 	<L   <s;;DL <$ $	F $	FGh88G'28,, 	7"+'//66"+'//66"='//66"='//66 |'##I... ~ ) (w ( (%( ( ) ) ) (w ( (%( ( ) ) )\<888~ CABBB  , = ="78[#A#ABB"78[#A#ABB  |<<<<|'  !14<@@@~ FDEEEI$	F $	Fr   c                 |   t           j        r,t          dd           t          d| j        j        z             | j        j        }| j                            d          D ]}|r| j        	                    ||          } | j        
                    | j                  }| j        
                    | j                  }| j                            ||d| j                   t          |j                  }|dk    rd}| j        rW| j                                         t%          j        | j        d	          | _        | j        
                    | j                  }t          |j                  }|dk    rd}d}g }|                                D ])}	|rd}|                    |	j        |d
                    *d}g }
|                                D ])}	|rd}|
                    |	j        |d
                    *t           j        r t          d|           t          d|
           |                     ||
           d
S )z"Checking recursive copy of a Groupr   r   zRunning %s.test02_Recursive.../TrK  r$   r   rM  NrN  rO  )r   r@   rC   r4   r   r/  r+   rl  splitr0   r   r*   rk  rP  r   rm   _v_pathnamerG  r   r.  r-  _f_walknodesri   rO   )r3   r1   	groupnamerW  rV  lenSrcGrouplenDstGroupfirstrX  r   rY  s              r   test02_Recursivez"CopyGroupTestCase.test02_Recursive^  sg    > 	N$	"""2T^5LLMMM !++C00 	D 	DI D11%CC<((66 ;''55!!(H,0*., 	" 	8 	8 	8 (.//!K: 	;L   <s;;DL|,,T\::H (.//!K	))++ 	= 	=D T-kll;<<<<	))++ 	= 	=D T-kll;<<<<> 	9,i888,i888I.....r   c                    t           j        r-t          dd           t          d| j        j         d           | j        j        }| j                            d          D ]}|r| j        	                    ||          } | j        
                    | j                  }| j        
                    | j                  }|                    |d| j                   t          |j                  }|dk    rd	}| j        rW| j                                         t%          j        | j        d
          | _        | j        
                    | j                  }t          |j                  }|dk    rd	}d}i }|                                D ]}	|rd	}|	j        |d         ||	j        <   d}|                                D ]}	|rd	}t/          |	t$          j                  r1t3          |	j                  t3          ||	j                           k     Rt3          |	j                  t3          ||	j                           k     dS )z4Checking recursive copy of a Group (cheking Filters)r   r   r\  z.test03_RecursiveFilters...rv  TrK  r$   r   rM  N)r   r@   rC   r4   r   r/  r+   rl  rw  r0   r   r*   rk  re  r   rm   rx  rG  r   r.  r-  ry  rg  r   r:   r   r   )
r3   r1   rz  rW  rV  r{  r|  r}  rX  r   s
             r   test03_RecursiveFiltersz)CopyGroupTestCase.test03_RecursiveFilters  sq    > 	2$	""" 1T^4 1 1 1 2 2 2 !++C00 	D 	DI D11%CC<((66 ;''55!!(,0*., 	" 	8 	8 	8 (.//!K: 	;L   <s;;DL|,,T\::H (.//!K	))++ 	E 	ED &*&6{||&DIdl##))++ 	D 	DD $)) DT_%%i.E)F)FFFFT\""d9T\+B&C&CCCC	D 	Dr   )r   r   r   rQ   r   r)   r   rI  rZ  rt  r~  r  r   r   s   @r   r'  r'    s        EE    ;' ;' ;'z    / / /B:F :F :Fx6/ 6/ 6/p4D 4D 4D 4D 4D 4D 4Dr   r'  c                       e Zd ZdZdZdZdZdS )CopyGroupCase1r   Nr   rv  r   r   r   rG  r   rk  rl  r   r   r   r  r    "        EGGGGGr   r  c                       e Zd ZdZdZdZdZdS )CopyGroupCase2r$   Nr   rv  r  r   r   r   r  r    r  r   r  c                       e Zd ZdZdZdZdZdS )CopyGroupCase3r   Nr   /group2/group3r  r   r   r   r  r    s"        EGGGGGr   r  c                   <    e Zd ZdZ ej        d          ZdZdZdS )CopyGroupCase4r$   r   r   r  N	r   r   r   rG  r   r   r   rk  rl  r   r   r   r  r    s1        Ebj1%%%GGGGGr   r  c                   8    e Zd ZdZ ej                    ZdZdZdS )CopyGroupCase5r   rv  r  Nr  r   r   r   r  r    s*        EbjllGGGGGr   r  c                   <    e Zd ZdZ ej        d          ZdZdZdS )CopyGroupCase6r$   Tr   r   r  Nr  r   r   r   r  r    s1        EbjD)))GGGGGr   r  c                   >    e Zd ZdZ ej        dd          ZdZdZdS )CopyGroupCase7r   r$   Fr   rv  Nr  r   r   r   r  r    s3        Ebj1e444GGGGGr   r  c                   >    e Zd ZdZ ej        dd          ZdZdZdS )CopyGroupCase8r$   r   r   rv  Nr  r   r   r   r  r    s5         Ebj1e444GGGGGr   r  c                   T     e Zd ZdZdZ fdZd Z fdZd Zd Z	d Z
d	 Zd
 Z xZS )CopyFileTestCaser   rd   c                     t                                                       t          j        d          | _        |                                  d S Nr)  )r(   r)   r+  r,  r-  r   r2   s    r   r)   zCopyFileTestCase.setUp  sA     !.. 	r   c           	         | j         j        }d|j        _        d|j        _        t          d          D ]G}t          d          D ]}| j                             |dt          |          z   d           }| j                             |dt          | j
        d           }|j        }t          | j                  D ]3}d	| j        |z
  z  |d
<   ||d<   |dz  |d<   |                                 4|                                 d|j        _        d|j        _        d |                                D             }d |                                D             }	| j                             |d|d           | j                             |d|	d           | j                             |dt'          j        d          dd          }
| j                             |dt'          j                    dd          }d|
j        _        d|j        _        |
                    |           |                    |	           | j                             |dt          |          z   d           }|}d|j        _        d|j        _        Id S )Nr1  r2  r   r   r3  r   r   r   r   r   r   r   r4  r5  c                     g | ]
}|d          S r   r   r   s     r   r   z1CopyFileTestCase.populateFile.<locals>.<listcomp>5  r7  r   c                     g | ]
}|d          S r   r   r   s     r   r   z1CopyFileTestCase.populateFile.<locals>.<listcomp>6  r7  r   r   r   r   r   r   r   r	   r   r   r9  r:  r1   r;  r<  rA  s                r   r   zCopyFileTestCase.populateFile  s    9"Qxx 6	' 6	'G!!HH ,% ,%11%2:S]]2J:> 2 @ @
 0077;z9= 1 ? ? I"4:..  E &$*u*< =AfI %AfI %	AfIHHJJJJ %0!$'! A@u~~/?/?@@@@@u~~/?/?@@@((8WMMM((8WMMM k//	02q0I0I0I04g? ? k//	02079 9 #9	"%	

8$$$

8$$$$ [--eWs7||5K6: . < <F E#8EN #&EN  m6	' 6	'r   c                 j   t          | d          r%| j        j        r| j                                         t          | d          rLt	          | j                                                  r&t	          | j                                                   t                      	                                 d S )Nr/  r-  )
hasattrr/  rF  rG  r   r-  is_filerH  r(   rI  r2   s    r   rI  zCopyFileTestCase.tearDownR  s    4## 	!(; 	!L   4$$ 	)dm)<)<)D)D)F)F 	)&&(((r   c                 h   t           j        r,t          dd           t          d| j        j        z             t          | j                                      d           | j        	                    | j        | j
        ddd           | j        r|                                  t          j        | j        d	          | _        | j        j        }| j        j        }t#          |j                  }t#          |j                  }|                                 |                                 t           j        r t          d
|           t          d|           |                     |j        |j                   |                     ||           |                     | j        j
        | j
                   dS )z*Checking copy of a File (overwriting file)r   r   zRunning %s.test00_overwrite... r$   r   N)rQ   	overwriter]  r   rM  rN  rO  )r   r@   rC   r4   r   r   r-  
write_textr*   	copy_filerQ   rG  rN   r   r.  r/  r+   rQ  rR  rS  rO   rT  rU  s        r   test00_overwritez!CopyFileTestCase.test00_overwrite\  s    > 	N$	"""2T^5LLMMM 	T]&&r*** 	dm4:(),-&* 	 	, 	, 	, : 	LLNNN |DM377 ;#<$-..	-..	> 	9,i888,i888.0EFFFI...+TZ88888r   c                     t           j        r,t          dd           t          d| j        j        z             |                     t          | j        j        | j        j	                   dS )z,Checking copy of a File (srcfile == dstfile)r   r   z!Running %s.test00a_srcdstequal...N)
r   r@   rC   r4   r   r   IOErrorr*   r  filenamer;   s    r   test00a_srcdstequalz$CopyFileTestCase.test00a_srcdstequal  sj     > 	+$	"""5.)* + + + 	'4;#8$+:NOOOOOr   c                 T   t           j        r,t          dd           t          d| j        j        z             | j                                         t          j        | j	        | j
        | j        ddd           t          j        | j	        d          | _        t          j        | j
        d          | _        | j        j        }| j        j        }t          |j                  }t          |j                  }|                                 |                                 t           j        r t          d	|           t          d
|           |                     |j        |j                   |                     ||           |                     | j        j        | j                   dS )z.Checking copy of a File (first-class function)r   r   z Running %s.test00b_firstclass...r   Nr$   )rQ   r]  r   r  rM  rN  rO  )r   r@   rC   r4   r   r*   rG  r   r  h5fnamer-  rQ   r.  r/  r+   rQ  rR  rS  rO   rT  rU  s        r   test00b_firstclassz#CopyFileTestCase.test00b_firstclass  s    > 	P$	"""4t~7NNOOO 	 	T\4=
#$da	A 	A 	A 	A l4<55|DM377 ;#<$-..	-..	 	> 	9,i888,i888.0EFFFI...+TZ88888r   c                    t           j        r,t          dd           t          d| j        j        z             | j                            | j        | j        d| j	                   | j
        r|                                  t          j        | j        d          | _        | j        j        }| j        j        }t!          |j                  }t!          |j                  }|                                 |                                 t           j        r t          d|           t          d|           |                     |j        |j                   |                     ||           |                     | j        j        | j                   |D ]t}t+          ||j                  }|j        }|                    d	          }|j        }	|	                    d
          }
| j	        |
                    d           t           j        r4t          d|j         d|            t          d|j         d|
            |                     ||
           t           j        rt          d           |D ]R}t5          t+          ||                    }t5          t+          |	|                    }|                     ||           S| j	         |                     |	j        | j	                   t           j        rt          d           vdS )z/Checking copy of a File (attributes not copied)r   r   zRunning %s.test01_copy...r   rQ   r]  r   rM  rN  rO  rA   r^  Nr_  r`  ra  rb  rc  rd  )r   r@   rC   r4   r   r*   r  r-  rQ   r   rG  rN   r   r.  r/  r+   rQ  rR  rS  rO   rT  rf  rg  r=  rh  ri  r   r_  )r3   rV  rW  rX  rY  rk  rl  rm  rn  ro  rp  rq  rr  rs  s                 r   test01_copyzCopyFileTestCase.test01_copy  s(    > 	I$	"""-0GGHHH 	dm4:,-&*l 	 	4 	4 	4
 : 	LLNNN |DM377 ;#<$-..	-..	 	> 	9,i888,i888.0EFFFI... 	+TZ888   	F 	FGh88G'H#++E22L'H#++E22L |'##I... ~ ) (w ( (%( ( ) ) ) (w ( (%( ( ) ) )\<888~ CABBB  , = ="78[#A#ABB"78[#A#ABB  |<<<<|'  !14<@@@~ FDEEE=	F 	Fr   c                 d   t           j        r,t          dd           t          d| j        j        z             | j                            | j        | j        d| j	                   | j
        r|                                  t          j        | j        d          | _        | j        j        }| j        j        }|D ]t}t!          ||j                  }|j        }|                    d          }|j        }|                    d          }t           j        r4t          d|j         d	|            t          d
|j         d	|            | j	        |                    d           |                     ||           t           j        rt          d           |D ]R}	t-          t!          ||	                    }
t-          t!          ||	                    }|                     |
|           S| j	         |                     |j        | j	                   t           j        rt          d           vdS )z+Checking copy of a File (attributes copied)r   r   zRunning %s.test02_Attrs...r$   r  rM  r^  r`  ra  rb  Nr_  rc  rd  )r   r@   rC   r4   r   r*   r  r-  rQ   r   rG  rN   r   r.  r/  r+   rf  rg  r=  rh  ri  rO   r   r_  rj  s               r   test02_AttrszCopyFileTestCase.test02_Attrs  se    > 	J$	""".1HHIII 	dm4:,-&*l 	 	4 	4 	4
 : 	LLNNN |DM377 ;#<$ 	F 	FGh88G'H#++E22L'H#++E22L~ ) (w ( (%( ( ) ) ) (w ( (%( ( ) ) ) |'##I...\<888~ CABBB  , = ="78[#A#ABB"78[#A#ABB  |<<<<|'  !14<@@@~ FDEEE;	F 	Fr   )r   r   r   rQ   r   r)   r   rI  r  r  r  r  r  r   r   s   @r   r  r    s        EE    <' <' <'|    $9 $9 $9L	P 	P 	P 9  9  9DDF DF DFL3F 3F 3F 3F 3F 3F 3Fr   r  c                       e Zd ZdZdZdZdS )CopyFileCase1r   A new titleNr   r   r   rG  rQ   r   r   r   r   r  r  +          EEGGGr   r  c                       e Zd ZdZdZdZdS )CopyFileCase2r$   r  Nr  r   r   r   r  r  1  r  r   r  c                   8    e Zd ZdZdZ ej        d          ZdS )CopyFileCase3r   r  r$   r   Nr   r   r   rG  rQ   r   r   r   r   r   r   r  r  7  ,        EEbj1%%%GGGr   r  c                   8    e Zd ZdZdZ ej        d          ZdS )CopyFileCase4r$   r  r   Nr  r   r   r   r  r  =  r  r   r  c                   8    e Zd ZdZdZ ej        d          ZdS )CopyFileCase5r   r  Tr   Nr  r   r   r   r  r  C  ,        EEbjD)))GGGr   r  c                   8    e Zd ZdZdZ ej        d          ZdS )CopyFileCase6r$   r  Tr   Nr  r   r   r   r  r  I  r  r   r  c                   :    e Zd ZdZdZ ej        dd          ZdS )CopyFileCase7r   r  r$   r   r   Nr  r   r   r   r  r  O  .        EEbj1e444GGGr   r  c                   :    e Zd ZdZdZ ej        dd          ZdS )CopyFileCase8r$   r  r   r   Nr  r   r   r   r  r  U  r  r   r  c                       e Zd Zd ZdS )CopyFileCase10c                    t           j        r,t          dd           t          d| j        j        z             t          j        d          | _        t          j	        | j        d          | _
        | j
                                         	 |                     t          | j        j        | j        d           t!          | j                                                   dS # t!          | j                                                   w xY w)	z2Checking copy of a File (checking not overwriting)r   r   z!Running %s.test01_notoverwrite...r)  r*  F)r  N)r   r@   rC   r4   r   r+  r,  r-  r   r.  r/  rG  r   r  r*   r  r   rH  r;   s    r   test01_notoverwritez"CopyFileCase10.test01_notoverwrite]  s     > 	+$	"""5.)* + + + !..|DM377	).  P P P &&(((((D&&((((s   -C   (DN)r   r   r   r  r   r   r   r  r  [  s#        ) ) ) ) )r   r  c                   t     e Zd Z ej        d          Z fdZddZd ZddZ	d Z
d	 Zd
 Zd Zd Z xZS )GroupFiltersTestCaser   r   c                 $   t                                                       t          j                    d}}| j        j        }| j        j        } |dd            |dd            |dd||            |dd||t          j                                |dd	||| j                    |dd	| j        
            |dd            |dd||            |dd	||| j                    |dd||t          j                               d S )N)r$   r$   rv  implicit_noz/implicit_noz/implicit_no/implicit_no)atomshapeexplicit_nor  r  r   explicit_yesr   /explicit_yesimplicit_yesz/explicit_yes/implicit_yes)	r(   r)   r   IntAtomr*   r0   r   r   r   )r3   r  r  r0   r   r4   s        r   r)   zGroupFiltersTestCase.setUpv  s   jllFe{/1S-(((^]3330-u	. 	. 	. 	.0-ubjll	D 	D 	D 	D0.udl	D 	D 	D 	D 	S.$,????_n5552Nu	. 	. 	. 	.2Nudl	D 	D 	D 	D2Mubjll	D 	D 	D 	D 	D 	Dr   Nc                    |D ]}t          |d          r|j        }n|j        }||                     ||            d S |j                            d          r1|                     |t          j                    d|j        z             |j                            d          r$|                     || j        d|j        z             d S )Nr   _noz"node ``%s`` should have no filters_yesznode ``%s`` should have filters)	r  r   r   rO   rg  endswithr   r   rx  )r3   r*   r   r   node_filterss        r   _check_filtersz#GroupFiltersTestCase._check_filters  s    	J 	JDtY'' /#|# "  w777 |$$U++ J   "*,,84;KKM M M M &&v.. J   $,58HHJ J J%	J 	Jr   c                 :    |                      | j                   dS )z Filters propagating to children.N)r  r*   r;   s    r   test00_propagatez%GroupFiltersTestCase.test00_propagate  s      	DK(((((r   c                    t          j        d          }	 | j                            ||           	 t	          j        |          }|                     ||           |                                 n# |                                 w xY w	 t          |          	                                 d S # t          |          	                                 w xY w)Nr)  suffixr   )
r+  r,  r*   r  r   r.  r  rG  r   rH  )r3   r   	copyfnamecopyfs       r   _test_copyFilez#GroupFiltersTestCase._test_copyFile  s    O5111		%K!!)W!===Y//##E7#;;;OO""$$$$$DOO""$$$$s"   B1 +A4 B1 4B

B1 1#Cc                 .    |                                   dS )z$Keeping filters when copying a file.N)r  r;   s    r   test01_copyFilez$GroupFiltersTestCase.test01_copyFile  s     	r   c                 :    |                      | j                   dS )z'Overriding filters when copying a file.N)r  r   r;   s    r   test02_copyFile_overridez-GroupFiltersTestCase.test02_copyFile_override  s      	DL)))))r   c                    | j                             |          }t          j                    }|                    d          r| j        }|                     |j        |            ||           |                     |j        |           |                                 r| j                             |          }|                     |j        |           d S )Nr  )	r*   r   r   r   r  r   rO   r   rN   )r3   pathnamechange_filtersnew_filtersr1   old_filterss         r   _test_changez!GroupFiltersTestCase._test_change  s    $$X.. jllV$$ 	',K);777 	u);777 <<>> 	3K((22E);77777r   c                 J      fd}                      d| j                   dS )z Changing the filters of a group.c                      j         | _        d S r   )r   r   )r1   r3   s    r   set_filtersz7GroupFiltersTestCase.test03_change.<locals>.set_filters  s    #|Er   rv  N)r  r   )r3   r  s   ` r   test03_changez"GroupFiltersTestCase.test03_change  s<    	, 	, 	, 	, 	,#{DL99999r   c                 \    d }|                      d|t          j                               dS )z Deleting the filters of a group.c                 
    | ` d S r   )r   )r1   s    r   del_filtersz7GroupFiltersTestCase.test04_delete.<locals>.del_filters  s       r   r  N)r  r   r   )r3   r  s     r   test04_deletez"GroupFiltersTestCase.test04_delete  s5    	! 	! 	!/;
EEEEEr   r   )r   r   r   r   r   r   r)   r  r  r  r  r  r  r  r  r   r   s   @r   r  r  s  s        bj1%%%GD D D D D2J J J J.) ) )

% 
% 
% 
%  
* * *
8 8 8$: : :F F F F F F Fr   r  zBLOSC not availablec                   >    e Zd Z ej        dd          Zd Zd ZdS )SetBloscMaxThreadsTestCaser   r  r   c                    t          j        d          }t          j        r0t	          d|           t	          d| j        j        d                    |                     || j        j        d                    | j                            ddt          j	                    d| j
                   t          j        d	          }t          j        r t	          d|           t	          dd           |                     |d           d
S )z Checking set_blosc_max_threads()r   Previous max threads:
Should be:MAX_BLOSC_THREADSrv  
some_array   r   r  r$   N)r   set_blosc_max_threadsr   r@   rC   r*   paramsrO   r   	Int32Atomr   r3   nthreads_olds     r   test00z!SetBloscMaxThreadsTestCase.test00  s     /22> 	I)<888, 23F GHHHt{'9:M'NOOO!!#|')|~~V*., 	" 	8 	8 	8 /22> 	#)<888,"""q)))))r   c                    t          j        d          }| j                            ddt          j                    d| j                   |                                  t          j        d          }t          j        r0t          d|           t          d| j        j
        d                    |                     || j        j
        d                    d	S )
z*Checking set_blosc_max_threads() (re-open)r   rv  r  r  r  r  r  r  N)r   r  r*   r   r  r   rN   r   r@   rC   r  rO   r  s     r   test01z!SetBloscMaxThreadsTestCase.test01  s     /22!!#|')|~~V*., 	" 	8 	8 	8 	/22> 	I)<888, 23F GHHHt{'9:M'NOOOOOr   N)r   r   r   r   r   r   r  r  r   r   r   r  r    sO         bj1g666G* * *"P P P P Pr   r  c                   Z    e Zd Zd Zed             Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 ZdS )FilterTestCasec                     |                      t          t          j                                                              t
          j                   d S r   )rO   rD   r   r   _packnpint64r;   s    r   test_filter_pack_typez$FilterTestCase.test_filter_pack_type  s:    bjll002233RX>>>>>r   c                 :    t          t          |                     S r   )hexint)ns    r   _hexlzFilterTestCase._hexl  s    3q66{{r   c                     t          j                    }|                     |                     |                                          d           d S )N0x0r   r   rO   r  r  r3   filter_s     r   test_filter_pack_01z"FilterTestCase.test_filter_pack_01  s=    *,,GMMOO44e<<<<<r   c                     t          j        dd          }|                     |                     |                                          d           d S )Nr$   Fr   0x101r  r  s     r   test_filter_pack_02z"FilterTestCase.test_filter_pack_02  sF    *Q...GMMOO44g>>>>>r   c                     t          j        dddd          }|                     |                     |                                          d           d S )N	   r   T)r   r   0x30109r  r  s     r   test_filter_pack_03z"FilterTestCase.test_filter_pack_03  sJ    *QFFFGMMOO44i@@@@@r   c                     t          j        ddd          }|                     |                     |                                          d           d S )Nr$   Fr   )r   least_significant_digit	0x5040101r  r  s     r   test_filter_pack_04z"FilterTestCase.test_filter_pack_04  sH    *QqIIIGMMOO44kBBBBBr   c                 r   t           j                            t          j        d                    }|                     |j                   |                     |j                   |                     |j	        d            |                     |j
        d           |                     |j        d            d S )Nr   r   r   _unpackr  r  assertFalser   r   rO   r#  r   r   r  s     r   test_filter_unpack_01z$FilterTestCase.test_filter_unpack_01  s    *$$RXc]]33)))+,,,8$???*A...$/////r   c                 r   t           j                            t          j        d                    }|                     |j                   |                     |j                   |                     |j	        d            |                     |j
        d           |                     |j        d           d S )Ni  r$   r   r'  r  s     r   test_filter_unpack_02z$FilterTestCase.test_filter_unpack_02'  s    *$$RXe__55)))+,,,8$???*A...&11111r   c                 r   t           j                            t          j        d                    }|                     |j                   |                     |j                   |                     |j	        d            |                     |j
        d           |                     |j        d           d S )Ni	 r  r   )r   r   r(  r  r  
assertTruer   r   rO   r#  r   r   r  s     r   test_filter_unpack_03z$FilterTestCase.test_filter_unpack_03/  s    *$$RXg%6%677(((*+++8$???*A...&11111r   c                 r   t           j                            t          j        d                    }|                     |j                   |                     |j                   |                     |j	        d           |                     |j
        d           |                     |j        d           d S )Nir   r$   r   r'  r  s     r   test_filter_unpack_04z$FilterTestCase.test_filter_unpack_047  s    *$$RXi%8%899)))+,,,8!<<<*A...&11111r   N)r   r   r   r  staticmethodr  r  r  r!  r%  r*  r,  r/  r1  r   r   r   r
  r
    s        ? ? ?   \= = =? ? ?A A AC C C0 0 02 2 22 2 22 2 2 2 2r   r
  c                   X     e Zd ZdZi Z ed	deieZ fdZd Zd Z	d Z
d Zd Z xZS )
DefaultDriverTestCaseNdriverc                 :   t                                                       | j        j        }| j                            |dd           | j                            |dddgd           | j                            |ddt          j                    id           d S )	Ntestattr)   r/   r$   r   rQ   r-   r   )	r(   r)   r*   r+   set_node_attrr.   r,   r   r   )r3   r+   r4   s     r   r)   zDefaultDriverTestCase.setUpE  s     {!!$
B777  wAg FFF  w0E'. 	! 	0 	0 	0 	0 	0r   c                 x    |                      t          | j                                                             d S r   )r.  r   r  r  r;   s    r   assertIsFilez"DefaultDriverTestCase.assertIsFileO  s0    T\**224455555r   c                 x    |                      | j        t          j                   |                                  d S r   )r6   r*   r   Filer<  r;   s    r   test_newFilez"DefaultDriverTestCase.test_newFileR  s4    dk27333r   c                 
   | j                                          d | _         |                                  t          j        | j        fd| j        d| j        | _         | j         j        }| 	                    | j         
                    |d          d           |                     |j        t          j                   | 	                    |j        j        d           |                     |j        t          j                   | 	                    |j        j        d           |                     d|j        j                   | 	                    |j        j        j        j        t          j                    j                   d S )NrM  moder5  r7  r8  r/   r-   r   )r*   rG  r<  r   r.  r  DRIVERDRIVER_PARAMSr+   rO   get_node_attrr6   r/   r8   rP   r-   r7   assertInrn   colsr   dtyper   r3   r+   s     r   test_readFilez#DefaultDriverTestCase.test_readFileV  sJ    l4< 9c*.+9 9%)%79 9
 {224DDbIIIdj"(333,g666dj"(333,g666fdj1222-3RY[[5FGGGGGr   c                    | j                                          d | _         |                                  t          j        | j        fd| j        d| j        | _         | j         j        }| 	                    | j         
                    |d          d           |                     |j        t          j                   | 	                    |j        j        d           |                     |j        t          j                   | 	                    |j        j        d           |                     d|j        j                   | 	                    |j        j        j        j        t          j                    j                   | j         j        }| j                             |dd	           | j                             |d
ddgd
           | j                             |ddt          j                    id            | j        dd| j        d| j         | j         j        }| 	                    | j         
                    |d          d           | 	                    | j         
                    |d          d	           |                     |j        t          j                   | 	                    |j        j        d           |                     |j        t          j                   | 	                    |j        j        d
           |                     |j        t          j                   | 	                    |j        j        d           |                     d|j        j                   | 	                    |j        j        j        j        t          j                    j                   |                     |j        t          j                   | 	                    |j        j        d           |                     d|j        j                   | 	                    |j        j        j        j        t          j                    j                   d S )NarA  r7  r8  r/   r-   r   	testattr2*   r   r$   r   r9  table2r   r   r*   rG  r<  r   r.  r  rC  rD  r+   rO   rE  r6   r/   r8   rP   r-   r7   rF  rn   rG  r   rH  r   r:  r.   r,   r   rN   r   rO  r   rI  s     r   test_openFileAz$DefaultDriverTestCase.test_openFileAn  s    l4< 9c*.+9 9%)%79 9
 {224DDbIIIdj"(333,g666dj"(333,g666fdj1222-3RY[[5FGGG {!!$R888  x!Qx HHH  x&"+--1H'/ 	! 	1 	1 	1 	H#dkHHT5GHHH{224DDbIII224EErJJJdj"(333,g666dk28444-x888dj"(333,g666fdj1222-3RY[[5FGGGdk28444-x888fdk2333).4bkmm6IJJJJJr   c                    | j                                          d | _         |                                  t          j        | j        fd| j        d| j        | _         | j         j        }| 	                    | j         
                    |d          d           |                     |j        t          j                   | 	                    |j        j        d           |                     |j        t          j                   | 	                    |j        j        d           |                     d|j        j                   | 	                    |j        j        j        j        t          j                    j                   | j                             |dd	           | j                             |d
ddgd
           | j                             |ddt          j                    id            | j        dd| j        d| j         | j         j        }| 	                    | j         
                    |d          d           | 	                    | j         
                    |d          d	           |                     |j        t          j                   | 	                    |j        j        d           |                     |j        t          j                   | 	                    |j        j        d
           |                     |j        t          j                   | 	                    |j        j        d           |                     d|j        j                   | 	                    |j        j        j        j        t          j                    j                   |                     |j        t          j                   | 	                    |j        j        d           |                     d|j        j                   | 	                    |j        j        j        j        t          j                    j                   d S )Nr+rA  r7  r8  r/   r-   r   rM  rN  r   r$   r   r9  rO  r   r   rP  rI  s     r   test_openFileRWz%DefaultDriverTestCase.test_openFileRW  s    l4< 9d*.+9 9%)%79 9
 {224DDbIIIdj"(333,g666dj"(333,g666fdj1222-3RY[[5FGGG 	!!$R888  x!Qx HHH  x&"+--1H'/ 	! 	1 	1 	1 	I$t{IId6HIII{224DDbIII224EErJJJdj"(333,g666dk28444-x888dj"(333,g666fdj1222-3RY[[5FGGGdk28444-x888fdk2333).4bkmm6IJJJJJr   r   )r   r   r   rC  rD  r   r   r)   r<  r?  rJ  rQ  rT  r   r   s   @r   r4  r4  @  s        FM$66f666K0 0 0 0 06 6 6  H H H05K 5K 5Kn4K 4K 4K 4K 4K 4K 4Kr   r4  1.8.9zrequires HDF5 >= 1.8,9c                   6    e Zd ZdZ eddeiej        Zd ZdS )Sec2DriverTestCase	H5FD_SEC2r5  c                     | j                                         }|                     t          |          d           |                     d |d d         D             g d           d S )Nr   c                     g | ]}|S r   r   r   ru   s     r   r   z:Sec2DriverTestCase.test_get_file_image.<locals>.<listcomp>      ///!///r   r      H   D   F   r*   get_file_imageassertGreaterrm   rO   r3   images     r   test_get_file_imagez&Sec2DriverTestCase.test_get_file_image  k    **,,3u::q)))//U2A2Y///1B1B1BCCCCCr   Nr   	r   r   r   rC  r   r4  rD  r   rg  r   r   r   rW  rW    M         F$LLfL(=(KLLKD D D D Dr   rW  c                   6    e Zd ZdZ eddeiej        Zd ZdS )StdioDriverTestCase
H5FD_STDIOr5  c                     | j                                         }|                     t          |          d           |                     d |d d         D             g d           d S )Nr   c                     g | ]}|S r   r   r[  s     r   r   z;StdioDriverTestCase.test_get_file_image.<locals>.<listcomp>  r\  r   r   r]  rb  re  s     r   rg  z'StdioDriverTestCase.test_get_file_image  rh  r   Nr   ri  r   r   r   rl  rl    sM         F$LLfL(=(KLLKD D D D Dr   rl  c                   6    e Zd ZdZ eddeiej        Zd ZdS )CoreDriverTestCase	H5FD_COREr5  c                     | j                                         }|                     t          |          d           |                     d |d d         D             g d           d S )Nr   c                     g | ]}|S r   r   r[  s     r   r   z:CoreDriverTestCase.test_get_file_image.<locals>.<listcomp>  r\  r   r   r]  rb  re  s     r   rg  z&CoreDriverTestCase.test_get_file_image  rh  r   Nr   ri  r   r   r   rq  rq    rj  r   rq  c                        e Zd ZdZ fdZ fdZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zej                            ej         ed          k     d          d             Z xZS ) CoreDriverNoBackingStoreTestCaserr  c                     t                                                       t          j        d          | _        d | _        d S Nr)  r  r(   r)   r+  r,  r  r*   r2   s    r   r)   z&CoreDriverNoBackingStoreTestCase.setUp  s3    e444r   c                    | j         r| j                                          nZ| j        t          j        j        v rBt          j        j        }|                    | j                  D ]}|                                 d | _         t          | j                                                  r&t          | j                  	                                 t                                                       d S r   )r*   rG  r  r   file_open_filesget_handlers_by_namer   r  rH  r(   rI  r3   
open_filesr*   r4   s      r   rI  z)CoreDriverNoBackingStoreTestCase.tearDown	  s    ; 	K\RW000,J$99$,GG  %%'' 	(%%'''r   c                 \   |                      t          | j                                                             t	          j        | j        d| j        d          | _        | j        j        }| j        	                    |dd           | j        
                    |dddgd	           | j                            |d
dt	          j                    id
	           | j                                         |                      t          | j                                                             dS )z'Ensure that nothing is written to file.r*  FrB  r5  driver_core_backing_storer7  r8  r/   r$   r   r9  r-   r   N)r)  r   r  r  r   r.  rC  r*   r+   r:  r.   r,   r   rG  rI  s     r   r?  z-CoreDriverNoBackingStoreTestCase.test_newFile  s    	dl++3355666l4<c*.+=BD D D
 {!!$
B777  wAg FFF  w0E'. 	! 	0 	0 	0dl++335566666r   c                    |                      t          | j                                                             t	          j        | j        d| j        d          | _        | j        j        }| j        	                    |dd           | j        
                    |dddgd	           | j                            |d
dt	          j                    id
	           |                     | j                            |d          d           |                     |j        t          j                   |                     |j        j        d           |                     |j        t          j                   |                     |j        j        d
           |                     d|j        j                   |                     |j        j        j        j        t	          j                    j                   | j                                         |                      t          | j                                                             d S )Nr*  Fr  r7  r8  r/   r$   r   r9  r-   r   r)  r   r  r  r   r.  rC  r*   r+   r:  r.   r,   r   rO   rE  r6   r/   r8   rP   r-   r7   rF  rn   rG  r   rH  rG  rI  s     r   test_readNewFileWz2CoreDriverNoBackingStoreTestCase.test_readNewFileW*     dl++3355666 l4<c*.+=BD D D {!!$
B777  wAg FFF  w0E'. 	! 	0 	0 	0 	224DDbIIIdj"(333,g666dj"(333,g666fdj1222-3RY[[5FGGGdl++335566666r   c                    |                      t          | j                                                             t	          j        | j        d| j        d          | _        | j        j        }| j        	                    |dd           | j        
                    |dddgd	           | j                            |d
dt	          j                    id
	           |                     | j                            |d          d           |                     |j        t          j                   |                     |j        j        d           |                     |j        t          j                   |                     |j        j        d
           |                     d|j        j                   |                     |j        j        j        j        t	          j                    j                   | j                                         |                      t          | j                                                             d S )NrL  Fr  r7  r8  r/   r$   r   r9  r-   r   r  rI  s     r   test_readNewFileAz2CoreDriverNoBackingStoreTestCase.test_readNewFileAE  r  r   c                     |                      t          | j                                                             |                     t
          j        t
          j        | j        d| j        d           d S )NrS  Fr  	r)  r   r  r  r   r   HDF5ExtErrorr.  rC  r;   s    r   test_openNewFileRWz3CoreDriverNoBackingStoreTestCase.test_openNewFileRW`  sn    dl++3355666"/,4!% 	 	O 	O 	O 	O 	Or   c                     |                      t          | j                                                             |                     t
          j        t
          j        | j        d| j        d           d S )NrM  Fr  r  r;   s    r   test_openNewFileRz2CoreDriverNoBackingStoreTestCase.test_openNewFileRf  sn    dl++3355666"/,3!% 	 	O 	O 	O 	O 	Or   c                 $   t          j        |d          }|j        }|                    |dd           |                    |dddgd           |                    |d	d
t          j                    id	           |                                 d S )Nr*  rB  r7  r8  r/   r$   r   r9  r-   r   )r   r.  r+   r:  r.   r,   r   rG  )r3   r  r*   r+   s       r   _create_filez-CoreDriverNoBackingStoreTestCase._create_filel  s    hS111{T:r222D'Aq6AAAD'FBIKK+@") 	 	+ 	+ 	+ 	r   c                 D   |                      | j                   |                     t          | j                                                             t          j        | j        d| j        d          | _        | j        j	        }| 
                    | j                            |d          d           |                     |j        t
          j                   | 
                    |j        j        d           |                     |j        t
          j                   | 
                    |j        j        d           |                     d|j        j                   | 
                    |j        j        j        j        t          j                    j                   d S )	NrM  Fr  r7  r8  r/   r-   r   )r  r  r.  r   r  r   r.  rC  r*   r+   rO   rE  r6   r/   r8   rP   r-   r7   rF  rn   rG  r   rH  r   rI  s     r   rJ  z.CoreDriverNoBackingStoreTestCase.test_readFilew  sQ   $,'''T\**2244555 l4<c*.+=BD D D {224DDbIIIdj"(333,g666dj"(333,g666fdj1222-3RY[[5FGGGGGr   c                     t          j                    }|                    t          |                                                     |                                }|S r   )hashlibmd5updater   
read_bytes	hexdigest)r3   r  r  r  s       r   _get_digestz,CoreDriverNoBackingStoreTestCase._get_digest  sD    kmm

4>>,,..///MMOO	r   c                    |                      | j                   |                     t          | j                                                             |                     | j                  }t          j        | j        d| j        d          | _	        | j	        j
        }|                     | j	                            |d          d           |                     |j        t          j                   |                     |j        j        d           |                     |j        t          j                   |                     |j        j        d           |                     d|j        j                   |                     |j        j        j        j        t          j                    j                   | j	        j
        }| j	                            |d	d
           | j	                            |dddgd           | j	                            |ddt          j                    id           | j	                                         |                     ||                     | j                             d S )NrL  Fr  r7  r8  r/   r-   r   rM  rN  r   r$   r   r9  rO  r   r  r  r.  r   r  r  r   r.  rC  r*   r+   rO   rE  r6   r/   r8   rP   r-   r7   rF  rn   rG  r   rH  r   r:  r.   r,   r   rG  r3   r  r+   s      r   rQ  z/CoreDriverNoBackingStoreTestCase.test_openFileA  s    $,'''T\**2244555 $$T\22	 l4<c*.+=BD D D
 {224DDbIIIdj"(333,g666dj"(333,g666fdj1222-3RY[[5FGGG {!!$R888  x!Qx HHH  x&"+--1H'/ 	! 	1 	1 	1 	D$4$4T\$B$BCCCCCr   c                    |                      | j                   |                     t          | j                                                             |                     | j                  }t          j        | j        d| j        d          | _	        | j	        j
        }|                     | j	                            |d          d           |                     |j        t          j                   |                     |j        j        d           |                     |j        t          j                   |                     |j        j        d           |                     d|j        j                   |                     |j        j        j        j        t          j                    j                   | j	        j
        }| j	                            |d	d
           | j	                            |dddgd           | j	                            |ddt          j                    id           | j	                                         |                     ||                     | j                             d S )NrS  Fr  r7  r8  r/   r-   r   rM  rN  r   r$   r   r9  rO  r   r  r  s      r   rT  z0CoreDriverNoBackingStoreTestCase.test_openFileRW  s    $,'''T\**2244555 $$T\22	 l4<d*.+=BD D D
 {224DDbIIIdj"(333,g666dj"(333,g666fdj1222-3RY[[5FGGG {!!$R888  x!Qx HHH  x&"+--1H'/ 	! 	1 	1 	1 	D$4$4T\$B$BCCCCCr   rU  HDF5 >= "1.8.9" requiredc                    t          j        | j        d| j        d          | _        | j        j        }| j                            |dd           | j                            |dddgd	           | j                            |d
dt          j	                    id
	           | j        
                                }|                     t          |          d           |                     d |d d         D             g d           d S )Nr*  Fr  r7  r8  r/   r$   r   r9  r-   r   r   c                     g | ]}|S r   r   r[  s     r   r   zHCoreDriverNoBackingStoreTestCase.test_get_file_image.<locals>.<listcomp>  r\  r   r   r]  )r   r.  r  rC  r*   r+   r:  r.   r,   r   rc  rd  rm   rO   )r3   r+   rf  s      r   rg  z4CoreDriverNoBackingStoreTestCase.test_get_file_image  s    l4<c*.+=BD D D {!!$
B777  wAg FFF  w0E'. 	! 	0 	0 	0 **,,3u::q)))//U2A2Y///1B1B1BCCCCCr   )r   r   r   rC  r)   rI  r?  r  r  r  r  r  rJ  r  rQ  rT  r   unittestskipIfhdf5_versionr   rg  r   r   s   @r   rv  rv     sK       F        7 7 7&7 7 767 7 76O O OO O O	 	 	H H H(  "D "D "DH"D "D "DH _F/'''2B2BB68 8D D8 8D D D D Dr   rv  c                   R     e Zd ZdZdddZ ed
deieZd Z fdZd Z	d	 Z
 xZS )SplitDriverTestCase
H5FD_SPLITz-xm.h5z-xr.h5driver_split_meta_extdriver_split_raw_extr5  c                 P    t          j        |                                           S )N)prefix)r+  r,  _getNamer;   s    r   _getTempFileNamez$SplitDriverTestCase._getTempFileName  s    dmmoo6666r   c                 p     t                                                        fddD              _        d S )Nc                 :    g | ]}j         j        |         z   S r   )r  rD  )r   kr3   s     r   r   z-SplitDriverTestCase.setUp.<locals>.<listcomp>  s:     L L L!(:1(== L L Lr   r  )r(   r)   h5fnamesr2   s   `r   r)   zSplitDriverTestCase.setUp  sJ    L L L LJL L Lr   c                    | j                                          | j        D ]D}t          |                                          r!t          |                                           Et          j                            |            d S r   )	r*   rG  r  r   r  rH  r   PyTablesTestCaserI  r3   fnames     r   rI  zSplitDriverTestCase.tearDown  sw    ] 	% 	%EE{{""$$ %U""$$$((.....r   c                     | j         D ]6}|                     t          |                                                     7d S r   )r  r.  r   r  r  s     r   r<  z SplitDriverTestCase.assertIsFile  sD    ] 	3 	3EOODKK//112222	3 	3r   r   )r   r   r   rC  rD  r   r   r  r)   rI  r<  r   r   s   @r   r  r    s        F!) ( M $66f666K7 7 7L L L L L/ / /3 3 3 3 3 3 3r   r  c                   :     e Zd ZdZi ZeZ fdZ fdZd Z	 xZ
S )NotSpportedDriverTestCaseNc                 |    t                                                       t          j        d          | _        d S rx  )r(   r)   r+  r,  r  r2   s    r   r)   zNotSpportedDriverTestCase.setUp  s,    e444r   c                 v   t           j        j        }| j        |v r1|                    | j                  D ]}|                                 t          | j                                                  r&t          | j                                                   t                      
                                 d S r   )r   r{  r|  r  r}  rG  r   r  rH  r(   rI  r~  s      r   rI  z"NotSpportedDriverTestCase.tearDown  s    W(
<:%%$99$,GG  %%'' 	(%%'''r   c                      | j         | j        t          j        | j        fd| j        d| j         |                     t          | j                  	                                           d S )Nr*  rA  )
r   	EXCEPTIONr   r.  r  rC  rD  r)  r   r  r;   s    r   r?  z&NotSpportedDriverTestCase.test_newFile  sw    $.", 	N"4;	N 	N:>:L	N 	N 	Ndl++335566666r   )r   r   r   rC  rD  r   r  r)   rI  r?  r   r   s   @r   r  r  	  so        FMI5 5 5 5 5    7 7 7 7 7 7 7r   r  H5FD_LOGc                   J     e Zd ZdZ eddeiej        Z fdZ fdZ	 xZ
S )LogDriverTestCaser  r5  c                     dt          j        d          i| _        t                                                       d S )Ndriver_log_filez.logr  )r+  r,  rD  r(   r)   r2   s    r   r)   zLogDriverTestCase.setUp,  s8     xf===
 	r   c                     t          | j        d                                                   r,t          | j        d                                                    t	                                                       d S )Nr  )r   rD  r  rH  r(   rI  r2   s    r   rI  zLogDriverTestCase.tearDown4  sh    "#4566>>@@ 	A#$5677>>@@@r   r   )r   r   r   rC  r   BaseLogDriverTestCaserD  r   r)   rI  r   r   s   @r   r  r  (  st        F$LLfL(=(KLLK            r   r  c                   0    e Zd ZdZ eddeiej        ZdS )DirectDriverTestCaseH5FD_DIRECTr5  Nr   r   r   r   rC  r   r4  rD  r   r   r   r   r  r  ;  s<        d 
 

2@
 
r   r  c                       e Zd ZdZeZdS )r  r  Nr   r   r   rC  RuntimeErrorr  r   r   r   r  r  B  s         			r   c                   0    e Zd ZdZ eddeiej        ZdS )WindowsDriverTestCaseH5FD_WINDOWSr5  Nr   r  r   r   r   r  r  H  s<        d 
 

2@
 
r   r  c                       e Zd ZdZeZdS )r  r  Nr  r   r   r   r  r  O  s         			r   c                       e Zd ZdZdS )FamilyDriverTestCaseH5FD_FAMILYNr   r   r   rC  r   r   r   r  r  T          FFFr   r  c                       e Zd ZdZdS )MultiDriverTestCase
H5FD_MULTINr  r   r   r   r  r  X  s        FFFr   r  c                       e Zd ZdZdS )MpioDriverTestCase	H5FD_MPIONr  r   r   r   r  r  \  s        FFFr   r  c                       e Zd ZdZdS )MpiPosixDriverTestCaseH5FD_MPIPOSIXNr  r   r   r   r  r  `  s        FFFr   r  c                       e Zd ZdZdS )StreamDriverTestCaseH5FD_STREAMNr  r   r   r   r  r  d  r  r   r  r  c                   d     e Zd ZdZ fdZ fdZddZd Zd	 Zd
 Z	d Z
d Zd Zd Zd Z xZS )InMemoryCoreDriverTestCaserr  c                     t                                                       t          j        d          | _        d | _        d S r  ry  r2   s    r   r)   z InMemoryCoreDriverTestCase.setUpm  s0    u--r   c                 .   | j         r| j                                          d | _         t          | j                                                  r&t          | j                                                   t                                                       d S r   )r*   rG  r   r  r  rH  r(   rI  r2   s    r   rI  z#InMemoryCoreDriverTestCase.tearDownr  s~    ; 	 K%%'' 	(%%'''r   	in-memoryTitler*  c                    t          j        |||| j        d          }	 |                    |j        dddgd           |                    |j        dd	t          j                    id
           d|j        j        _        |	                                }|
                                 n# |
                                 w xY w|S )Nr   rB  rQ   r5  r  r/   r$   r   r8   r9  r-   r   r7   r8  )r   r.  rC  r.   r+   r,   r   r=  r7  rc  rG  )r3   r  rQ   rB  r*   rf  s         r   _create_imagez(InMemoryCoreDriverTestCase._create_image{  s    hT%)[89; ; ;	Wq!fGLLLW &	756=? ? ?,.FK )))++ELLNNNNFLLNNNNs   A5B* *C c                 J   |                      | j        d          }|                     t          |          d           |                     d |d d         D             g d           |                     t          | j                                                             d S )Nr*  r  r   c                     g | ]}|S r   r   r[  s     r   r   z<InMemoryCoreDriverTestCase.test_newFileW.<locals>.<listcomp>  r\  r   r   r]  r  r  rd  rm   rO   r)  r   existsre  s     r   test_newFileWz(InMemoryCoreDriverTestCase.test_newFileW      ""4<c"::3u::q)))//U2A2Y///1B1B1BCCCdl++224455555r   c                 J   |                      | j        d          }|                     t          |          d           |                     d |d d         D             g d           |                     t          | j                                                             d S )NrL  r  r   c                     g | ]}|S r   r   r[  s     r   r   z<InMemoryCoreDriverTestCase.test_newFileA.<locals>.<listcomp>  r\  r   r   r]  r  re  s     r   test_newFileAz(InMemoryCoreDriverTestCase.test_newFileA  r  r   c                 b   |                      | j                  }|                     t          | j                                                             t          j        | j        d| j        |d          | _        | 	                    t          | j        j        j        d                     |                     | j                            dd          d           | 	                    t          | j        j        j        d                     |                     | j                            dd          d           | 	                    t          | j        j        d	                     |                     | j                            d
d          d           | 	                    t          | j        j        d                     |                     | j                            dd          d           |                     | j        j        j                                        ddg           d S )NrM  r   rB  r5  driver_core_imager  rU   rv  r  r7  r8  r/   /arrayr8   r-   /tabler7   r$   r   )r  r  r)  r   r  r   r.  rC  r*   r.  r  r+   r=  rO   rE  r/   rq   re  s     r   test_openFileRz)InMemoryCoreDriverTestCase.test_openFileR  s   ""4<00dl++2244555 l4<c*.+5:=>@ @ @ 	 0 97CCDDD223@@'JJJ 0 9:FFGGG223
CCRHHH 0'::;;;228WEEwOOO 0'::;;;228WEEwOOO)/4466A?????r   c           	         |                      | j                  }|                     t          | j                                                             t          j        | j        d| j        |d          | _        | 	                    t          | j        j        j        d                     |                     | j                            dd          d           | 	                    t          | j        j        j        d                     |                     | j                            dd          d           | 	                    t          | j        j        d	                     |                     | j                            d
d          d           | 	                    t          | j        j        d                     |                     | j                            dd          d           |                     | j        j        j                                        ddg           | j                            | j        j        dt%          t'          d                    d           d| j        j        j        _        | j                                         |                     t          | j                                                             d S )NrS  r   r  rU   rv  r  r7  r8  r/   r  r8   r-   r  r7   r$   r   r   i'  Array2r9  rN  )r  r  r)  r   r  r   r.  rC  r*   r.  r  r+   r=  rO   rE  r/   rq   r.   rQ  rh   rM  rG  re  s     r   rT  z*InMemoryCoreDriverTestCase.test_openFileRW  s[   ""4<00dl++2244555 l4<d*.+5:=>@ @ @ 	 0 97CCDDD223@@'JJJ 0 9:FFGGG223
CCRHHH 0'::;;;228WEEwOOO 0'::;;;228WEEwOOO)/4466A???  !18!%eFmm!4!4'/ 	! 	1 	1 	1 /1!+dl++224455555r   c                    t          j        d          }|                     |          }|                     t	          | j                                                             t          j        | j        d| j	        |d          | _
        |                     t          | j
        j        j        d                     |                     | j
                            dd          d           |                     t          | j
        j        j        d                     |                     | j
                            dd          d	           |                     t          | j
        j        d
                     |                     | j
                            dd          d           |                     t          | j
        j        d                     |                     | j
                            dd          d           |                     | j
        j        j                                        ddg           t'          t)          dt          j        j        z                      }| j
                            | j
        j        d|d           d| j
        j        j        _        | j
                                        }| j
                                         |                     t	          | j                                                             |                     t9          |          t9          |                     |                     ||           t          j        | j        d| j	        |d          | _
        |                     t          | j
        j        j        d                     |                     | j
                            dd          d           |                     t          | j
        j        j        d                     |                     | j
                            dd          d	           |                     t          | j
        j        d
                     |                     | j
                            dd          d           |                     t          | j
        j        d                     |                     | j
                            dd          d           |                     | j
        j        j                                        ddg           |                     t          | j
        j        j        d                     |                     | j
                            dd          d           |                     t          | j
        j        d                     |                     | j
                            dd          d           |                     | j
        j        j                                        |           | j
                                         |                     t	          | j                                                             d S )Nr)  rS  r   r  rU   rv  r  r7  r8  r/   r  r8   r-   r  r7   r$   r   r   r  r9  rN  rM  rM  /array2r+  r,  r  r)  r   r  r  r   r.  rC  r*   r.  r  r+   r=  rO   rE  r/   rq   rQ  rh   rf   DRIVER_CORE_INCREMENTr.   rM  rc  rG  assertNotEqualrm   r   )r3   r  image1dataimage2s        r   test_openFileRW_updatez1InMemoryCoreDriverTestCase.test_openFileRW_update  sR   ?5))##H--dl++2244555 l4<d*.+5;=>@ @ @ 	 0 97CCDDD223@@'JJJ 0 9:FFGGG223
CCRHHH 0'::;;;228WEEwOOO 0'::;;;228WEEwOOO)/4466A???E!bmAABBCC  !18T'/ 	! 	1 	1 	1.0!+++--dl++2244555CKKV555FF+++ l4<c*.+5;=>@ @ @ 	 0 97CCDDD223@@'JJJ 0 9:FFGGG223
CCRHHH 0'::;;;228WEEwOOO 0'::;;;228WEEwOOO)/4466A??? 0 9;GGHHH223DDbIII 0(;;<<<22w   !)	+ 	+ 	+)05577>>>dl++224455555r   c                    |                      | j                  }|                     t          | j                                                             t          j        | j        d| j        |d          | _        | 	                    t          | j        j        j        d                     |                     | j                            dd          d           | 	                    t          | j        j        j        d                     |                     | j                            dd          d           | 	                    t          | j        j        d	                     |                     | j                            d
d          d           | 	                    t          | j        j        d                     |                     | j                            dd          d           |                     | j        j        j                                        ddg           | j                                         |                     t          | j                                                             d S )NrL  r   r  rU   rv  r  r7  r8  r/   r  r8   r-   r  r7   r$   r   )r  r  r)  r   r  r   r.  rC  r*   r.  r  r+   r=  rO   rE  r/   rq   rG  re  s     r   rQ  z)InMemoryCoreDriverTestCase.test_openFileA	  s   ""4<00dl++2244555 l4<c*.+5:=>@ @ @ 	 0 97CCDDD223@@'JJJ 0 9:FFGGG223
CCRHHH 0'::;;;228WEEwOOO 0'::;;;228WEEwOOO)/4466A???dl++224455555r   c                    t          j        d          }|                     |          }|                     t	          | j                                                             t          j        | j        d| j	        |d          | _
        |                     t          | j
        j        j        d                     |                     | j
                            dd          d           |                     t          | j
        j        j        d                     |                     | j
                            dd          d	           |                     t          | j
        j        d
                     |                     | j
                            dd          d           |                     t          | j
        j        d                     |                     | j
                            dd          d           |                     | j
        j        j                                        ddg           t'          t)          dt          j        j        z                      }| j
                            | j
        j        d|d           d| j
        j        j        _        | j
                                        }| j
                                         |                     t	          | j                                                             |                     t9          |          t9          |                     |                     ||           t          j        | j        d| j	        |d          | _
        |                     t          | j
        j        j        d                     |                     | j
                            dd          d           |                     t          | j
        j        j        d                     |                     | j
                            dd          d	           |                     t          | j
        j        d
                     |                     | j
                            dd          d           |                     t          | j
        j        d                     |                     | j
                            dd          d           |                     | j
        j        j                                        ddg           |                     t          | j
        j        j        d                     |                     | j
                            dd          d           |                     t          | j
        j        d                     |                     | j
                            dd          d           |                     | j
        j        j                                        |           | j
                                         |                     t	          | j                                                             d S )Nr)  rL  r   r  rU   rv  r  r7  r8  r/   r  r8   r-   r  r7   r$   r   r   r  r9  rN  rM  rM  r  r  )r3   r  r  r   r  s        r   test_openFileA_updatez0InMemoryCoreDriverTestCase.test_openFileA_update$	  sR   /%((##G,,dl++2244555 l4<c*.+5;=>@ @ @ 	 0 97CCDDD223@@'JJJ 0 9:FFGGG223
CCRHHH 0'::;;;228WEEwOOO 0'::;;;228WEEwOOO)/4466A???E!bmAABBCC  !18T'/ 	! 	1 	1 	1.0!+++--dl++2244555CKKV555FF+++ l4<c*.+5;=>@ @ @ 	 0 97CCDDD223@@'JJJ 0 9:FFGGG223
CCRHHH 0'::;;;228WEEwOOO 0'::;;;228WEEwOOO)/4466A??? 0 9;GGHHH223DDbIII 0(;;<<<22w   !)	+ 	+ 	+)05577>>>dl++224455555r   c                 <   t          j        | j        dd| j        d          | _        | j                            | j        j        dddgd	           | j                            | j        j        d
dt          j                    id           d| j        j        j	        _
        |                     t          | j                             | j                                         |                     t          | j                                                             d S )Nr*  r  r   r  r/   r$   r   r8   r9  r-   r   r7   r8  )r   r.  r  rC  r*   r.   r+   r,   r   r=  r7  r   r   rG  r)  r   r  r;   s    r   test_strz#InMemoryCoreDriverTestCase.test_strd	  s
   l4<c*.+=>@ @ @ 	  !17QF'. 	! 	0 	0 	0  !17"(")++!6	A 	A 	A-/!*
 	S--...dl++224455555r   )r  r  r*  )r   r   r   rC  r)   rI  r  r  r  r  rT  r  rQ  r  r  r   r   s   @r   r  r  h  s         F    
       "6 6 66 6 6@ @ @*6 6 6<>6 >6 >6@6 6 62>6 >6 >6@6 6 6 6 6 6 6r   r  c                   F     e Zd ZdZdZdZdZ fdZd Zd Z	d Z
d	 Z xZS )
QuantizeTestCaser*  r   rd   r   c                    t                                                       t          j        ddd          | _        t          j                            d          | _        t          j                            ddd          	                    d          | _
        |                                  | j                                         t          j        dgdz  dgd	z  z   d
gdz  z   dgd	z  z   dgdz  z   dgd	z  z   dgdz  z   dgd	z  z   dgdz  z   dgd	z  z   dgdz  z             | _        t          j        dgdz  dgdz  z   dgdz  z             | _        d S )Ng      g      @r8  @B ir  r   g      r   g      r   g       g      g              ?g       @g      @g      @g       r   !   g       @)r(   r)   r  linspacer   randomrandom_sample
randomdatarandintastype
randomintsr   r*   rG  asarrayquantizeddata_0quantizeddata_m1r2   s    r   r)   zQuantizeTestCase.setUp~	  sr   KR,,	)11)<<)++	9. ..4fWoo 	 	!zEAI	!SEAI-	9SEAIED1Htax #%$(+.0TAX69;qADF4!8L M  M !#
EAIr	!RD1H,!. !.r   c                    | j         j        }t          j        ddd          }| j                             |dt          j                    d|          }| j        |d d <   | j                             |dt          j                    d|          }| j        |d d <   | j                             |dt          j	                    d	|          }| j
        |d d <   t          j        ddd
          }| j                             |dt          j	                    d	|          }| j
        |d d <   t          j        ddd          }| j                             |dt          j	                    d	|          }| j
        |d d <   t          j        ddd          }| j                             |dt          j	                    d	|          }| j
        |d d <   d S )Nr$   r  )r   r   r#  integers)r  r   floatsdata1)r8  r   data0r   data2re   datam1)r*   r+   r   r   r   	Int64Atomr  Float32Atomr  Float64Atomr   )	r3   r+   r   intsr  r  r  r  r  s	            r   r   zQuantizeTestCase.populateFile	  s   {*q'568 8 8{((z2<>>)5w ) H H/QQQ**42>;K;K+7 + J JOqqq	))$9I9I*/ * B B9aaa*q'568 8 8))$9I9I*/ * B B9aaa*q'568 8 8))$9I9I*/ * B B9aaa*q'579 9 9**42>;K;K+0' + C CIqqq			r   c                 V   t           j                            | j        d          }t           j                            | j        d          }t           j                            | j        d          }t           j                            | j        d          }t          j                            || j                   t          j                            || j                   t          j                            || j                   t          j                            || j                   dS )z!Checking the quantize() function.r   r$   r   re   N)	r   utilsquantizer   r  testingassert_array_equalr  r  r3   quantized_0quantized_1quantized_2quantized_m1s        r   test00_quantizeDataz$QuantizeTestCase.test00_quantizeData	  s     h''	155h''	155h''	155x((B77

%%k43GHHH

%%k49===

%%k49===

%%lD4IJJJJJr   c                 >   t           j                            | j        d          }t           j                            | j        d          }t           j                            | j        d          }t           j                            | j        d          }|                     t          j        || j        z
                                            d           |                     t          j        || j        z
                                            d           |                     t          j        || j        z
                                            d           |                     t          j        || j        z
                                            d           d	S )
zAChecking the maximum error introduced by the quantize() function.r   r$   r   re   g      ?皙?g{Gzt?r  N)r   r$  r%  r  
assertLessr  absmaxr(  s        r   test01_quantizeDataMaxErrorz,QuantizeTestCase.test01_quantizeDataMaxError	  s2    h'';;h'';;h'';;x(("=={T_<==AACCSIII{T_<==AACCTJJJ{T_<==AACCUKKK|do=>>BBDDbIIIIIr   c                    t          j        | j        d          | _        t          j                            | j        j        j        dd         | j	                   t          j                            | j        j        j
        dd         | j	                   t          j                            | j        j        j        dd         | j                   t          j                            | j        j        j        dd         | j                   t          j                            | j        j        j        dd         | j                   |                     | j        j        j        dd         j        | j        j                   |                     t	          j        | j        j        j        dd         | j        z
                                            d           dS )z+Checking quantized data as written to disk.rM  Nr/  )r   r.  r  r*   r  r&  r'  r+   r  r   r  r  r  r  r  r  r  rO   rH  r0  r1  r  r  r2  r;   s    r   test02_arrayzQuantizeTestCase.test02_array	  s    l4<55

%%dk&6&<QQQ&?KKK

%%dk&6&<QQQ&?KKK

%%dk&6&<QQQ&?&*&:	< 	< 	<

%%dk&6&=aaa&@&*&;	= 	= 	=

%%dk&6&?&B&*o	7 	7 	7)21115;.	0 	0 	0 	F4;#*111-?@@DDFF	N 	N 	N 	N 	Nr   )r   r   r   rB  rQ   r   
appendrowsr)   r   r-  r3  r5  r   r   s   @r   r	  r	  x	  s        D%ELJ. . . . ."  :
K 
K 
KJ J JN N N N N N Nr   r	  c                  (   dd l } t          j                                        }d}t	          |          D ]L}|                    t          j                            t                               |                    t          j                            t                               |                    t          j                            t                               |                    t          j                            t                               |                    t          j                            t                               |                    t          j                            t                               |                    t          j                            t                               |                    t          j                            t                               |                    t          j                            t                               |                    t          j                            t                                |                    t          j                            t"                               |                    t          j                            t$                               |                    t          j                            t&                               |                    t          j                            t(                               |                    t          j                            t*                               |                    t          j                            t,                               |                    t          j                            t.                               |                    |                     t2          j                             |                    t          j                            t6                               |                    t          j                            t8                               |                    t          j                            t:                               |                    t          j                            t<                               |                    t          j                            t>                               |                    t          j                            t@                               |                    t          j                            tB                               |                    t          j                            tD                               |                    t          j                            tF                               |                    t          j                            tH                               |                    t          j                            tJ                               |                    t          j                            tL                               |                    t          j                            tN                               |                    t          j                            tP                               |                    t          j                            tR                               |                    t          j                            tT                               Nt          j+        r|                    t          j                            tX                               |                    t          j                            tZ                               |                    t          j                            t\                               |                    t          j                            t^                               |                    t          j                            t`                               |                    t          j                            tb                               |                    t          j                            td                               |                    t          j                            tf                               |                    t          j                            th                               |                    t          j                            tj                               |                    t          j                            tl                               |                    t          j                            tn                               |                    t          j                            tp                               |                    t          j                            tr                               |                    t          j                            tt                               |                    t          j                            tv                               |                    t          j                            tx                               |                    t          j                            tz                               |                    t          j                            t|                               |                    t          j                            t~                               |                    t          j                            t                               |S )Nr   r$   )Adoctestr   r  	TestSuiterh   addTest	makeSuiter   r   r  r  r  r  r  r  r!  r$  r  r  r  r  r  r  r
  DocTestSuiter   r   r4  rW  rl  rq  rv  r  r  r  r  r  r  r  r  r  r  r	  heavyr   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )r8  theSuiteniterru   s       r   suiter@  	  s.   NNN((**HE 5\\ 'F 'F22<@@AAA22<@@AAA22=AABBB223JKKLLL223FGGHHH223HIIJJJ223IJJKKK223GHHIII223GHHIII223MNNOOO22>BBCCC22>BBCCC22=AABBB22=AABBB223GHHIII223MNNOOO22>BBCCC--bj99:::223HIIJJJ223EFFGGG223FGGHHH223EFFGGG22,. . 	/ 	/ 	/223FGGHHH223DEEFFF223GHHIII223HIIJJJ223GHHIII223FGGHHH223EFFGGG223IJJKKK223GHHIII223MNNOOO223CDDEEEE| D22>BBCCC22<@@AAA22<@@AAA22<@@AAA22<@@AAA22<@@AAA22<@@AAA22<@@AAA22=AABBB22=AABBB22=AABBB22=AABBB22=AABBB22=AABBB22>BBCCC22>BBCCC22>BBCCC22>BBCCC22>BBCCC22>BBCCC22>BBCCCOr   __main__r@  )defaultTest)`__doc__rA   r  r+  r   pathlibr   packaging.versionr   numpyr  tablesr   tables.testsr   IsDescriptionr   TempFileMixinr  r   r   r   r   r  r  bzip2_availr   	lzo_availr   r   r   r   r  r  r  blosc_availr  r  blosc_compressor_listr  r  r  r  r!  r$  r'  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r4  r  rW  rl  rq  rv  r  r  hdf5extension_supported_driversr  r  HAVE_DIRECT_DRIVERr  HAVE_WINDOWS_DRIVERr  r  r  r  r  r  r  r	  r@  r   
parse_argvargvprint_versionsmainr   r   r   <module>rW     s  	 	 


          % % % % % %                  R   R8 R8 R8 R8 R8V)6+B R8 R8 R8j    b   SD SD SD SD SD&.0G SD SD SDl( ( ( ( (& ( ( ( F..AC C( ( ( ( (& ( (C C( F,,?A A( ( ( ( (& ( (A A(( ( ( ( (& ( ( (( ( ( ( (& ( ( (( ( ( ( (& ( ( (( ( ( ( (& ( ( (( ( ( ( (& ( ( ( F..AC C( ( ( ( (& ( (C C( F..AC C( ( ( ( (' ( (C C( F..AC C( ( ( ( (1 ( (C C( F..AC C	))+++^= =    -  = =C C F..AC C	))+++^= =    /  = =C C F..AC C(@(@(B(BB)+ +    0  + +C C F..AC C
*"*,,,o? ?    .  ? ?C C F..AC C
*"*,,,o? ?    .  ? ?C C F..AC C( ( ( ( (!4 ( (C C(\D \D \D \D \D,f.E \D \D \D~    &       &       &       &       &       &       &    F,,?A A    &  A AaF aF aF aF aFv+V-D aF aF aFH	    $       $   & & & & &$ & & && & & & &$ & & &* * * * *$ * * ** * * * *$ * * *5 5 5 5 5$ 5 5 55 5 5 5 5$ 5 5 5) ) ) ) )V)6+B ) ) )0lF lF lF lF lF6/1H lF lF lF^ F..0EFF!P !P !P !P !P!5!'!8!P !P GF!PH62 62 62 62 62V, 62 62 62rYK YK YK YK YKF0&2I YK YK YKx +ggg.>.>>02 2D D D D D. D D2 2D +ggg.>.>>02 2D D D D D/ D D2 2D +ggg.>.>>02 2D D D D D. D D2 2DhD hD hD hD hDv'> hD hD hDV3 3 3 3 3/ 3 3 3<7 7 7 7 7 7 7 7 70 !4441 6    -   $ & 
!
 
 
 
 
4 
 
 
 
! ! ! ! !8 ! ! !
 ' 
!
 
 
 
 
 5 
 
 
 
! ! ! ! ! 9 ! ! !
    4       3       2       6       4    +ggg.>.>>24 4K6 K6 K6 K6 K6!8 K6 K64 4K6\]N ]N ]N ]N ]Nv+V-D ]N ]N ]N@G G GT zFchF
OW----- r   