a
    j=ic  ã                   @   s|   d Z ddlZddlZddlZddlmZ ddl	m
Z
mZ ejdddZej d¡Zeejjej d¡G d	d
„ d
ƒƒƒƒZdS )z test feather-format compat é    N)Úread_featherÚ
to_featherÚpyarrowz1.0.1)Z
minversionzignore:The Sparsez8ignore:CategoricalBlock is deprecated:DeprecationWarningc                   @   s¨   e Zd Zdd„ Zdd„ Zdi fdd„Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zejjejd d!d"d#d$„ ƒƒZdS )%ÚTestFeatherc              	   C   sd   t j||dB t ¡ }t||ƒ W d   ƒ n1 s80    Y  W d   ƒ n1 sV0    Y  d S )N)Úmatch)ÚpytestZraisesÚtmÚensure_cleanr   )ÚselfÚdfÚexcÚerr_msgÚpath© r   úm/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pandas/tests/io/test_feather.pyÚcheck_error_on_write   s    
z TestFeather.check_error_on_writec              	   C   s`   t  t¡B t  ¡ }t||ƒ W d   ƒ n1 s40    Y  W d   ƒ n1 sR0    Y  d S ©N)r   Zexternal_error_raisedÚ	Exceptionr	   r   )r
   r   r   r   r   r   Úcheck_external_error_on_write   s    
z)TestFeather.check_external_error_on_writeNc                 K   sf   |d u r|}t  ¡ >}t||fi |¤Ž t|fi |¤Ž}t  ||¡ W d   ƒ n1 sX0    Y  d S r   )r   r	   r   r   Úassert_frame_equal)r
   r   ÚexpectedÚwrite_kwargsZread_kwargsr   Úresultr   r   r   Úcheck_round_trip$   s    
zTestFeather.check_round_tripc                 C   sD   d}t  g d¢¡ddt  d¡t g d¢¡fD ]}|  |t|¡ q,d S )Nz'feather only support IO with DataFrames©é   é   é   r   ÚfooÚ20130101)ÚpdZSeriesÚ	TimestampÚnpÚarrayr   Ú
ValueError)r
   ÚmsgÚobjr   r   r   Ú
test_error/   s    ûzTestFeather.test_errorc                 C   s&  t  tdƒttddƒƒt dd¡ d¡tjddd	d
dtjdgg d¢dtjdgt  tdƒ¡t j	tt j
dddƒd dt j	tt j
ddddƒd dt  d¡t jt  d¡gt j	tt j
ddddƒd ddœ¡}t jdddd|d< t jddd|d< t  ddd¡|d< |jjjjdksJ ‚|  |¡ d S ) NÚabcr   é   r   é   Úu1g      @g      @Úfloat64)Údtypeg      ð?)TFTTFr   ©Úperiods)Úfreqz
US/Eastern)r/   ÚtzZ20130103Úns)r/   r0   )ÚstringÚintZuintÚfloatZfloat_with_nullÚboolZbool_with_nullÚcatÚdtÚdttzZdt_with_nullZdtnsZ2013ÚM)r0   r/   r/   z1 dayZ
timedeltasr   Z	intervals)r    Ú	DataFrameÚlistÚranger"   ÚarangeZastypeÚnanZCategoricalZDatetimeIndexÚ
date_ranger!   ZNaTZperiod_rangeZtimedelta_rangeZinterval_ranger9   r-   r1   Úzoner   ©r
   r   r   r   r   Ú
test_basic;   s<    

ÿþýÿëÿzTestFeather.test_basicc                 C   s2   t jt d¡ dd¡tdƒd ¡ }|  |¡ d S )Né   r)   r   Zaaa©Úcolumns)r    r;   r"   r>   Úreshaper<   Úcopyr   rB   r   r   r   Útest_duplicate_columns_   s    $z"TestFeather.test_duplicate_columnsc                 C   s2   t  t d¡ dd¡¡ ¡ }d}|  |t|¡ d S )NrD   r)   r   ú%feather must have string column names)r    r;   r"   r>   rG   rH   r   r$   )r
   r   r%   r   r   r   Útest_stringify_columnsf   s    z"TestFeather.test_stringify_columnsc              	   C   sP   t  tdƒttddƒƒtdƒttddƒƒdœ¡}ddg}| j||| |d	 d S )
Nr(   r   r)   Zxyzé   )Úcol1Zcol2Úcol3Zcol4rM   rN   )r   rF   )r    r;   r<   r=   r   )r
   r   rF   r   r   r   Útest_read_columnsl   s    üÿzTestFeather.test_read_columnsc                 C   s4   t  ddgddgddgdœ¡}| j|dd	gd
 d S )Nr   r   ÚxÚyTF)ÚAÚBÚCrS   rR   rE   )r    r;   r   rB   r   r   r   Úread_columns_different_ordery   s    z(TestFeather.read_columns_different_orderc                 C   s    t  dg d¢i¡}|  |¡ d S )NÚa)rV   r   g       @)r    r;   r   rB   r   r   r   Útest_unsupported_other~   s    z"TestFeather.test_unsupported_otherc                 C   s4   t  dt d¡i¡}| j|dd | j|dd d S )NrR   i † T)Zuse_threadsF)r    r;   r"   r>   r   rB   r   r   r   Útest_rw_use_threads„   s    zTestFeather.test_rw_use_threadsc                 C   s¾   t  dg d¢i¡}|  |¡ d}g d¢t jdddtdƒg d	¢t j g d
¢¡fD ]}||_|  |t	|¡ qPg d¢|_d|j_
d}|  |t	|¡ g d¢|_t j dg¡|_d}|  |t	|¡ d S )NrR   r   zsfeather does not support serializing .* for the index; you can \.reset_index\(\) to make the index into column\(s\))r   r   r)   r   r   r.   r(   )r   r   r)   )©rV   r   )rV   r   )Úbr   )r   r   r   r   z=feather does not serialize index meta-data on a default indexrY   rJ   )r    r;   r   r@   r<   Z
MultiIndexÚfrom_tuplesÚindexr   r$   ÚnamerF   )r
   r   r%   r\   r   r   r   Útest_write_with_index‰   s(    
ÿû

z!TestFeather.test_write_with_indexc                 C   s*   t  ¡  ¡ }t  |jt¡}t  ||¡ d S r   )r   ÚmakeDataFrameÚreset_indexZround_trip_pathlibr   r   r   ©r
   r   r   r   r   r   Útest_path_pathlibª   s    zTestFeather.test_path_pathlibc                 C   s*   t  ¡  ¡ }t  |jt¡}t  ||¡ d S r   )r   r_   r`   Zround_trip_localpathr   r   r   ra   r   r   r   Útest_path_localpath¯   s    zTestFeather.test_path_localpathc                 C   s"   t  ¡  ¡ }| j|ddid d S )NÚversionr   )r   )r   r_   r`   r   rB   r   r   r   Útest_passthrough_keywords´   s    z%TestFeather.test_passthrough_keywordsúkhttps://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/feather/feather-0_3_1.featherT)ÚurlZcheck_before_testc                 C   s$   d}t |ƒ}t |ƒ}t ||¡ d S )Nrf   )r   r   r   )r
   Zfeather_filerg   r   Úresr   r   r   Útest_http_path¸   s
    ÿzTestFeather.test_http_path)Ú__name__Ú
__module__Ú__qualname__r   r   r   r'   rC   rI   rK   rO   rU   rW   rX   r^   rb   rc   re   r   ÚmarkÚnetworkr   ri   r   r   r   r   r      s*   $!ûr   )Ú__doc__Únumpyr"   r   Zpandasr    Zpandas._testingZ_testingr   Zpandas.io.feather_formatr   r   Zimportorskipr   rm   ÚfilterwarningsZfilter_sparseZ
single_cpur   r   r   r   r   Ú<module>   s   
