U
    e»{j{V  ã                   @   s&  d dl Zd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d dlmZmZ d dlmZ d d	lm Z  d d
l!m"Z" d dl#m$Z$ d dl%m&Z& e 'd¡Z(ej)ej*ej+ej,ej-ej.ej/ej0ej1ej2ej3ddgZ4dd„ Z5dd„ Z6dd„ Z7dd„ Z8dd„ Z9dd„ Z:dd„ Z;dd„ Z<d d!„ Z=d"d#„ Z>d$d%„ Z?d&d'„ Z@ejA Bd(e4¡d)d*„ ƒZCd+d,„ ZDd-d.„ ZEd/d0„ ZFd1d2„ ZGd3d4„ ZHd•d6d7„ZIe	d8ejJ d9ejJ d:ejJ d;�ZKe	d8d<gejJ d9d=gejJ d:d>gejJ d;�ZLed d8gejM d<d9gejM d8ejN ƒZOed d8gejP d=d:gejP d?d>gejP ƒZQed d8gejR ejS d d8gejR ejS d@ejJ ejT ƒZUeeOeUdA�ZVed8d<gd9d=gdBdCdDdE�ZWed8d<gd9d=gd:d>gdFdCdDdGgdE�ZXeX Y¡ ZZdHeZ_[ed8d<gd9d=gd:d>gdIdJd?gejR ejS dKd@gejR ejS dL�Z\ed8d<gd9d=gd:d>gdIdJd?gejR ejS dKd@gejR ejS dMdNgejJ ejT dO�Z]ed8d<gd9d=gd:d>gdIdMdNgejJ ejT dP�Z^edQdRgdSdTeKdU�Z_e_ed8d<gej` ƒeWeXeZe\e]e^d8d<geja d@dVge bejc¡ dWdXge dejeejTd<  ¡ dYdZgejf e
d8d<gejM ƒed8d<gejM d[ejM d\�ed8d<gejM ƒeLeOeQeUeVd]œZgd^d_d`dadbgZhdcgdcgehd_d^d`dagdddedfdggdddedhdfdggdidjdkdfdggdddedhdldmdfdggdddedhdldmdndfdggdddedhdndfdggd^dogd^dogd^dogd^dogd^dodpgd^dogd^dogdidjdkdqgdidjdkgdrdsdhgdidjdkgdtdudvgdrdsdhdwdxdygdzœZid{d|„ ZjejA Bd}eef¡d~d„ ƒZkejA Bd€eleg m¡ ƒ¡ejA Bd}eef¡d�d‚„ ƒƒZndƒd„„ ZoejA Bd}eef¡d…d†„ ƒZpejA Bd}eef¡d‡dˆ„ ƒZqejA Bd}eef¡d‰dŠ„ ƒZrejA Bd}eef¡d‹dŒ„ ƒZsd�dŽ„ Ztd�d�„ ZuejAjve" d‘d’�d“d”„ ƒZwdS )–é    N)Úunits)ÚAngleÚCartesianRepresentationÚEarthLocationÚLatitudeÚ	LongitudeÚSkyCoordÚSphericalCosLatDifferentialÚSphericalRepresentation)Úget_pyarrowÚparquet_identify)ÚColumnÚNdarrayMixinÚQTableÚTable)Úsimple_table)ÚTimeÚ	TimeDelta)Úallclose)ÚQuantityInfo)Ú
HAS_PANDAS)ÚAstropyUserWarning)Ú_NOT_OVERWRITING_MSG_MATCHÚpyarrowú|S3ÚU3c                 C   sF   | t jkrdddgS | dkr&dddgS | dkr8dd	d
gS dddgS d S )Nr   é   r   s   abcs   defs   ghir   ÚabcÚdefZghié   é   )ÚnpÚbool_©Údtype© r%   úa/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/io/misc/tests/test_parquet.pyÚ_default_values/   s    



r'   c                 C   sZ   | d }t ƒ }| tddddgd�¡ | |¡ t  |¡}t |d dddgk¡sVt‚dS )z+Test writing/reading a simple parquet file.útest.parquetÚar   r   r    ©ÚnameÚdataN)r   Ú
add_columnr   ÚwriteÚreadr!   ÚallÚAssertionError©Útmp_pathÚ	test_fileÚt1Út2r%   r%   r&   Útest_read_write_simple:   s    

r7   c              	   C   sd   | d }t |dƒ�}W 5 Q R X tƒ }| tddddgd�¡ tjttd�� | |¡ W 5 Q R X d	S )
z2Test writing an existing file without overwriting.r(   Úwr)   r   r   r    r*   ©ÚmatchN)	Úopenr   r-   r   ÚpytestÚraisesÚOSErrorr   r.   )r3   r4   Úfr5   r%   r%   r&   Útest_read_write_existingD   s    
r@   c              	   C   st   | d }t |dƒ�}W 5 Q R X tƒ }| tddddgd�¡ |j|dd	� t |¡}t |d dddgk¡spt‚d
S )z"Test overwriting an existing file.r(   r8   r)   r   r   r    r*   T©Ú	overwriteN)	r;   r   r-   r   r.   r/   r!   r0   r1   )r3   r4   r?   r5   r6   r%   r%   r&   Ú"test_read_write_existing_overwriteP   s    

rC   c              	   C   s|   | d }t ƒ }| tddddgd�¡ | |¡ ddl}|j|d	d
��,}t  |¡}t |d dddgk¡snt	‚W 5 Q R X dS )zTest reading a file object.r(   r)   r   r   r    r*   r   NÚr)Úmode)
r   r-   r   r.   ÚioÚFileIOr/   r!   r0   r1   )r3   r4   r5   rF   Z
input_filer6   r%   r%   r&   Útest_read_fileobj]   s    

rH   c                 C   sl   | d }t ƒ }| tddddgd�¡ | |¡ ddl}| |¡}t  |¡}t |d dddgk¡sht	‚dS )	z Test reading a path-like object.r(   r)   r   r   r    r*   r   N)
r   r-   r   r.   ÚpathlibÚPathr/   r!   r0   r1   )r3   r4   r5   rI   Úpr6   r%   r%   r&   Útest_read_pathlikeobjm   s    


rL   c               	   C   s@   G dd„ dƒ} | ƒ }t jtdd�� tj|dd� W 5 Q R X dS )z*Test reading an incorrect fileobject type.c                   @   s   e Zd Zdd„ ZdS )z)test_read_wrong_fileobj.<locals>.FakeFilec                 S   s   d S ©Nr%   ©Úselfr%   r%   r&   Únot_read�   s    z2test_read_wrong_fileobj.<locals>.FakeFile.not_readN©Ú__name__Ú
__module__Ú__qualname__rP   r%   r%   r%   r&   ÚFakeFile€   s   rU   z5pyarrow can only open path-like or file-like objects.r9   Úparquet©ÚformatN)r<   r=   Ú	TypeErrorr   r/   ©rU   r?   r%   r%   r&   Útest_read_wrong_fileobj}   s     ÿr[   c                  C   s(   G dd„ dƒ} | ƒ }t dd|ƒr$t‚dS )z&Test identifying an incorrect fileobj.c                   @   s   e Zd Zdd„ ZdS )z-test_identify_wrong_fileobj.<locals>.FakeFilec                 S   s   d S rM   r%   rN   r%   r%   r&   rP   �   s    z6test_identify_wrong_fileobj.<locals>.FakeFile.not_readNrQ   r%   r%   r%   r&   rU   �   s   rU   ÚtestN©r   r1   rZ   r%   r%   r&   Útest_identify_wrong_fileobjŒ   s    r^   c                   C   s   t dddƒrt‚dS )ú(Test identifying an incorrect extension.r\   ztest.notparquetNr]   r%   r%   r%   r&   Ú"test_identify_file_wrong_extension˜   s    r`   c                   C   s$   t dddƒst‚t dddƒs t‚dS )r_   r\   r(   Nz	test.parqr]   r%   r%   r%   r&   Ú$test_identify_file_correct_extensionž   s    ra   c                   C   s   t dddƒrt‚dS )z-Test running identify with no object or path.r\   Nr]   r%   r%   r%   r&   Ú"test_identify_file_noobject_nopath¥   s    rb   c               	   C   sJ   t ƒ } |  tddddgd�¡ tjtdd�� | jdd	d
� W 5 Q R X dS )z-Test writing to a filename of the wrong type.r)   r   r   r    r*   zshould be a stringr9   i¼  rV   rW   N)r   r-   r   r<   r=   rY   r.   ©r5   r%   r%   r&   Útest_write_wrong_type«   s    rd   r$   c                 C   sr   | d }t |ƒ}tƒ }| tdtj||d�d�¡ | |¡ t |¡}t |d |k¡s\t	‚|d j
|ksnt	‚dS )z=Test that round-tripping a single column preserves datatypes.r(   r)   r#   r*   N)r'   r   r-   r   r!   Úarrayr.   r/   r0   r1   r$   )r3   r$   r4   Úvaluesr5   r6   r%   r%   r&   Útest_preserve_single_dtypes´   s    

rg   c              	   C   sš   | d }t ƒ }tD ],}t|ƒ}| tt|ƒtj||d�d�¡ q| |¡ t  	|¡}tD ]<}t|ƒ}t 
|t|ƒ |k¡s~t‚|t|ƒ j|ksXt‚qXdS )zBTest that round-tripping preserves a table with all the datatypes.r(   r#   r*   N)r   Ú
ALL_DTYPESr'   r-   r   Ústrr!   re   r.   r/   r0   r1   r$   )r3   r4   r5   r$   rf   r6   r%   r%   r&   Útest_preserve_all_dtypesÆ   s    "

rj   c                 C   s¦   | d }t ƒ }| tddddgd�¡ d|jd< d|jd< d	|jd
< d|jd< t dddg¡|jd< | |¡ t  |¡}|jD ]"}t |j| |j| k¡s~t	‚q~dS )z-Test that writing/reading preserves metadata.r(   r)   r   r   r    r*   ZhelloÚbgn†ðù!	@ÚcTÚdÚeN)
r   r-   r   Úmetar!   re   r.   r/   r0   r1   )r3   r4   r5   r6   Úkeyr%   r%   r&   Útest_preserve_metaÛ   s    






rq   c                 C   s  | d }t ƒ }tdddgdd�|d< d|d jd	< d
ddgi|d jd
< d|d _d|d _d|jd< dddgi|jd< |j|dd� t  |¡}|d j|d jks¨t‚|d j|d jksÀt‚|d j|d jksØt‚|d j|d jksðt‚|j|jk�st‚dS )z<Test that writing/reading preserves unit/format/description.r(   r   r   r    Ús©r,   Úunitr)   ÚA0Úa0Úa1r   ú7.3fúA columnrk   Úc0rl   TrA   N©	r   r   ro   rX   Údescriptionr.   r/   rt   r1   r2   r%   r%   r&   Útest_preserve_serializedñ   s     



r}   c                 C   s$  | d }t ƒ }tdddgdd�|d< d|d jd	< d
ddgi|d jd
< d|d _d|d _d|jd< dddgi|jd< dd |jd< dd |jd< |j|dd� t  |¡}|d j|d jksÄt‚|d j|d jksÜt‚|d j|d jksôt‚|d j|d jk�st‚|j|jk�s t‚dS )z"Test that very large datasets workr(   r   r   r    rr   rs   r)   ru   rv   rw   r   rx   ry   rk   rz   rl   Ú0i  Zmeta_bigi   Zmeta_biggerstillTrA   Nr{   r2   r%   r%   r&   Útest_metadata_very_large
  s$    



r   c              	   C   sx   | d }t ƒ }| tddddgd�¡ t|jd< t t¡�}| |¡ W 5 Q R X dt|j	ƒksbt
‚d	t|j	ƒkstt
‚d
S )z1Test that we cannot preserve objects in metadata.r(   r)   r   r   r    r*   r?   zcannot represent an objectz<class 'str'>N)r   r-   r   ri   ro   r<   r=   Ú	Exceptionr.   Úvaluer1   )r3   r4   r5   Úerrr%   r%   r&   Útest_fail_meta_serialize%  s    
rƒ   Tc           	   
   C   sè   |r| j |j kst‚dddddg}|| D ]¸}| }|}| d¡D ]B}zt||ƒ}t||ƒ}W q@ tk
r€   || }|| }Y q@X q@|dkr¤|dkr˜i }|dkr¤i }t|tjƒrÐ|jj	dkrÐt
||d	d
�sât‚q*t ||k¡s*t‚q*dS )z9Convenient routine to check objects and attributes match.z	info.namezinfo.formatz	info.unitzinfo.descriptionz	info.metaÚ.Nr?   gVçž¯Ò<)Zrtol)Ú	__class__r1   ÚsplitÚgetattrÚAttributeErrorÚ
isinstancer!   Úndarrayr$   ÚkindÚquantity_allcloser0   )	Zobj1Úobj2ÚattrsÚcompare_classZ
info_attrsÚattrrw   Za2Zsubattrr%   r%   r&   Úassert_objects_equal4  s4    û
r‘   r   r    é   )ÚxÚyÚzr   é   é   é   é
   )Zdifferentialszdeg,degZfk4zJ1990.5)rt   ÚframeZobstimez	deg,deg,mzJ1991.5Z	cartesianz
deg,deg,pcé   é	   )rt   Úpm_ra_cosdecÚpm_decé   é   )rt   r�   rž   Úradial_velocity)rt   r¡   g   @¿²BAg   À¿²BAZjdZtai)rX   ÚscaleÚlocationé   g      @g      @é   é   g     €f@)Ú
wrap_angle)ÚtmÚdtÚscÚscdÚscdcÚscpmÚscpmrvÚscrvr“   ÚqdbÚqdexÚqmagÚlatÚlonÚangÚel2ÚsrÚcrÚsdÚsrdr�   ÚshaperX   r¢   r£   r,   ÚraÚdecÚrepresentation_typez
frame.nameZdistancer“   r”   r•   r�   rž   r¡   rt   r§   Z	ellipsoidr´   r³   Zd_lon_coslatZd_latZ
d_distancezdifferentials.s.d_lon_coslatzdifferentials.s.d_latzdifferentials.s.d_distance)Úc1Úc2r¨   r©   rª   r«   r¬   r­   r®   r¯   r“   r°   r±   r²   r´   r³   rµ   r¶   Úndr·   r¸   r¹   rº   c           
      C   sØ   | d }t tƒ}tdd„ |D ƒ|d�}|j|dd� tj|dd�}|j|jksRt‚|j 	¡ D ]v\}}|| }t
|tƒr~|j|_t| }d}	t
|jtƒrÄt|ƒtks¦t‚dg}d	}	t |j|k¡sÄt‚t||||	ƒ q\d
S )zVTest writing as QTable and reading as Table. Ensure correct classes
    come out.
    útest_simple.parquetc                 S   s   g | ]}t | ‘qS r%   ©Ú
mixin_cols©Ú.0r+   r%   r%   r&   Ú
<listcomp>å  s     z7test_parquet_mixins_qtable_to_table.<locals>.<listcomp>©ÚnamesrV   rW   Trt   FN)ÚsortedrÄ   r   r.   r   r/   Úcolnamesr1   ÚcolumnsÚitemsr‰   r   rX   Úcompare_attrsÚinfor   Útyper   r!   r0   r�   r‘   )
r3   ÚfilenamerÉ   Útr6   r+   ÚcolZcol2rŽ   r�   r%   r%   r&   Ú#test_parquet_mixins_qtable_to_tableÝ  s$    
rÔ   Ú	table_clsc                 C   sÆ   |d }t tƒ}| dd„ |D ƒ|d�}d|jd< ddd	d
g|jd< dddg|jd< |j|dd� | j|dd�}|jd dks€t‚|jd ddd	d
gksšt‚|jd dddgks²t‚|j|jksÂt‚dS )zGTest write/read all cols at once and validate intermediate column namesrÂ   c                 S   s   g | ]}t | ‘qS r%   rÃ   rÅ   r%   r%   r&   rÇ     s     z.test_parquet_mixins_as_one.<locals>.<listcomp>rÈ   ÚspamÚCÚthisÚisr)   ÚcommentÚcommentsÚfirstÚsecondÚthirdÚhistoryrV   rW   N©rÊ   rÄ   ro   r.   r/   r1   rË   ©rÕ   r3   rÑ   rÉ   rÒ   r6   r%   r%   r&   Útest_parquet_mixins_as_one  s    
râ   Úname_colc           
      C   s  |d }|\}}ddg}| |||gd|dgd�}d|| j _ttdƒƒd	d
idœ|| j _|jsjt d¡ t|| t	ƒr‚t 
d¡ |j|dd� | j|dd�}|j|jks®t‚|jD ]}	t||	 ||	 t|	 ƒ q´| d¡�r|| jjjtjksöt‚|| jjjtjk�st‚dS )z<Test write/read one col at a time and do detailed validationrÂ   g      ð?g       @r¿   rÀ   rÈ   zmy descriptioné2   r)   ZÈbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)ÚlistÚdictz7column is not a mixin (e.g. Quantity subclass in Table)zNdarrayMixin not supportedrV   rW   r¨   N)rÏ   r|   rå   Úrangero   Zhas_mixin_columnsr<   Úskipr‰   r   Zxfailr.   r/   rË   r1   r‘   rÎ   Ú
startswithÚ_timeZjd1r…   r!   rŠ   Zjd2)
rÕ   rã   r3   rÑ   r+   rÓ   rl   rÒ   r6   Zcolnamer%   r%   r&   Útest_parquet_mixins_per_column  s$    


rë   c                 C   sÚ   | d }t dd�}dddg|d< d|d jd< |j|d	d
� t |¡}|jdksTt‚|j|jksdt‚|jD ]j}t 	|| j|| jk¡sŒt‚t 	|| || k¡s¦t‚d|| _d|| _t 	|| || k¡sjt‚qjdS )aK  Test round-trip of MaskedColumn through Parquet using default serialization
    that writes a separate mask column.  Note:

    >>> simple_table(masked=True)
    <Table masked=True length=3>
      a      b     c
    int64 float64 str1
    ----- ------- ----
       --     1.0    c
        2     2.0   --
        3      --    e
    r(   T)Úmaskedó   có   dó   erl   r   rV   rW   FN)
r   Úmaskr.   r   r/   rì   r1   rË   r!   r0   )r3   rÑ   rÒ   r6   r+   r%   r%   r&   Ú$test_round_trip_masked_table_default7  s    




rñ   c                 C   sÔ   |d }t tƒ}| dd„ |D ƒ|d�}d|jd< ddd	d
g|jd< dddg|jd< |j|dd� |D ]j}| j|d|gd�}|jd dksŒt‚|jd ddd	d
gks¦t‚|jd dddgks¾t‚|j|gksdt‚qddS )z4Test write all cols at once, and read one at a time.rÂ   c                 S   s   g | ]}t | ‘qS r%   rÃ   rÅ   r%   r%   r&   rÇ   ^  s     z5test_parquet_mixins_read_one_name.<locals>.<listcomp>rÈ   rÖ   r×   rØ   rÙ   r)   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rV   rW   ©rX   Zinclude_namesNrà   )rÕ   r3   rÑ   rÉ   rÒ   r+   r6   r%   r%   r&   Ú!test_parquet_mixins_read_one_nameX  s    
ró   c                 C   s”   |d }t tƒ}| dd„ |D ƒ|d�}d|jd< ddd	d
g|jd< dddg|jd< |j|dd� | j|d|dd… d�}|jdd… |jks�t‚dS )z<Test write all cols at once, and read all but one at a time.rÂ   c                 S   s   g | ]}t | ‘qS r%   rÃ   rÅ   r%   r%   r&   rÇ   t  s     z:test_parquet_mixins_read_exclude_names.<locals>.<listcomp>rÈ   rÖ   r×   rØ   rÙ   r)   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rV   rW   r   r’   )rX   Zexclude_namesN)rÊ   rÄ   ro   r.   r/   rË   r1   rá   r%   r%   r&   Ú&test_parquet_mixins_read_exclude_namesn  s    
rô   c              	   C   s’   |d }t tƒ}| dd„ |D ƒ|d�}d|jd< ddd	d
g|jd< dddg|jd< |j|dd� tjtdd�� | j|dddgd�}W 5 Q R X dS )z>Test write all cols at once, and try to read no valid columns.rÂ   c                 S   s   g | ]}t | ‘qS r%   rÃ   rÅ   r%   r%   r&   rÇ   …  s     z7test_parquet_mixins_read_no_columns.<locals>.<listcomp>rÈ   rÖ   r×   rØ   rÙ   r)   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rV   rW   zNo include_names specifiedr9   Znot_a_columnZalso_not_a_columnrò   N)rÊ   rÄ   ro   r.   r<   r=   Ú
ValueErrorr/   rá   r%   r%   r&   Ú#test_parquet_mixins_read_no_columns  s    
ýrö   c                 C   sØ   |d }t tƒ}| dd„ |D ƒ|d�}d|jd< ddd	d
g|jd< dddg|jd< |j|dd� | j|ddd�}|jd dks‚t‚|jd ddd	d
gksœt‚|jd dddgks´t‚|j|jksÄt‚t|ƒdksÔt‚dS )z1Test write all cols at once, and read the schema.rÂ   c                 S   s   g | ]}t | ‘qS r%   rÃ   rÅ   r%   r%   r&   rÇ   š  s     z3test_parquet_mixins_read_schema.<locals>.<listcomp>rÈ   rÖ   r×   rØ   rÙ   r)   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rV   rW   T)rX   Zschema_onlyr   N)rÊ   rÄ   ro   r.   r/   r1   rË   Úlenrá   r%   r%   r&   Útest_parquet_mixins_read_schema”  s    
rø   c                 C   sœ   | d }t ƒ }tt d¡tjd�|d< tt ddd¡tjd�|d< |j|dd	� t j|d
gd�}|d  ¡ dk stt	‚t j|dgd�}|d  ¡ dk s˜t	‚dS )z*Test reading a parquet file with a filter.rÂ   éd   )r,   r$   r)   r   éÿÿÿÿrk   TrA   )r)   ú<rä   )Úfiltersrä   )rk   rû   rä   N)
r   r   r!   ZarangeÚint32Úfloat64r.   r/   Úmaxr1   )r3   rÑ   r5   r6   r%   r%   r&   Útest_parquet_filter¬  s    r   c              	      s   | d }t ƒ ‰ tD ],}t|ƒ}ˆ  tt|ƒtj||d�d�¡ qˆ jj	}‡ fdd„|D ƒ}t
 |¡}tƒ \}}}	|j|||	d��.}
‡ fdd„|D ƒ}|
 t
j j||d�¡ W 5 Q R X tjtd	d
�� t  |¡}W 5 Q R X tD ]>}t|ƒ}t |t|ƒ |k¡�st‚|t|ƒ j|ksÜt‚qÜdS )z$Test reading a generic parquet file.ztest_generic.parqr#   r*   c                    s"   g | ]}|t  ˆ | jj¡f‘qS r%   )r   Zfrom_numpy_dtyper$   rÐ   rÅ   rc   r%   r&   rÇ   Ë  s    z-test_parquet_read_generic.<locals>.<listcomp>©Úversionc                    s   g | ]}t  ˆ | j¡‘qS r%   )r   re   r,   rÅ   rc   r%   r&   rÇ   Ó  s     )ÚschemaúNo table::lenr9   N)r   rh   r'   r-   r   ri   r!   re   r$   rÉ   r   r  r   ZParquetWriterZwrite_tableZfrom_arraysr<   Úwarnsr   r/   r0   r1   )r3   rÑ   r$   rf   rÉ   Z	type_listr  Ú_rV   Úwriter_versionÚwriterZarraysr6   r%   rc   r&   Útest_parquet_read_generic¿  s(    "
ÿ
 r	  zrequires pandas)Úreasonc           	   	   C   sÌ   | d }t ƒ }tD ],}t|ƒ}| tt|ƒtj||d�d�¡ q| ¡ }t	ƒ \}}}|j
||d� tjtdd�� t  |¡}W 5 Q R X tD ]<}t|ƒ}t |t|ƒ |k¡s°t‚|t|ƒ j|ksŠt‚qŠdS )z#Test reading a pandas parquet file.ztest_pandas.parqr#   r*   r  r  r9   N)r   rh   r'   r-   r   ri   r!   re   Z	to_pandasr   Z
to_parquetr<   r  r   r/   r0   r1   r$   )	r3   rÑ   r5   r$   rf   Zdfr  r  r6   r%   r%   r&   Útest_parquet_read_pandasß  s    "r  )T)xÚnumpyr!   r<   Zastropyr   ÚuZastropy.coordinatesr   r   r   r   r   r   r	   r
   Zastropy.io.misc.parquetr   r   Zastropy.tabler   r   r   r   Zastropy.table.table_helpersr   Zastropy.timer   r   Zastropy.unitsr   rŒ   Zastropy.units.quantityr   Z"astropy.utils.compat.optional_depsr   Zastropy.utils.exceptionsr   Zastropy.utils.miscr   Zimportorskipr   Zuint8Zuint16Zuint32Zuint64Zint8Zint16rý   Zint64Zfloat32rþ   r"   rh   r'   r7   r@   rC   rH   rL   r[   r^   r`   ra   rb   rd   ÚmarkZparametrizerg   rj   rq   r}   r   rƒ   r‘   ÚkmÚelr¶   ÚdegZkpcr·   Zpcr¸   ZmasÚyrrr   r¹   rº   rª   r«   Úcopyr¬   r¾   r­   r®   r¯   r¨   ÚdayÚmZdBZmWZdexÚcmZABmagrÄ   Z
time_attrsrÎ   rÔ   râ   rå   rÍ   rë   rñ   ró   rô   rö   rø   r   r	  Zskipifr  r%   r%   r%   r&   Ú<module>   sr  (

ó
	

+ ,&*  ÿúúù	    ÿì

ù
øú
úÑ:%
!



 