a
    nÝEbE  ã                   @   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!„ ƒƒ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   ú\/home/ja/django-apps/lartica_env/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      @Zfloat64)Údtypeg      ð?)TFTTFr   ©Úperiods)Úfreqz
US/Eastern)r.   ÚtzZ20130103Úns)r.   r/   )ÚstringÚintZuintÚfloatZfloat_with_nullÚboolZbool_with_nullÚcatÚdtÚdttzZdt_with_nullZdtnsZ2013ÚM)r/   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_ranger8   r,   r0   Ú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   rA   r   r   r   Útest_duplicate_columns_   s    $z"TestFeather.test_duplicate_columnsc                 C   s2   t  t d¡ dd¡¡ ¡ }d}|  |t|¡ d S )NrC   r)   r   ú%feather must have string column names)r    r:   r"   r=   rF   rG   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col4rL   rM   )r   rE   )r    r:   r;   r<   r   )r
   r   rE   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ÚCrR   rQ   rD   )r    r:   r   rA   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)rU   r   g       @)r    r:   r   rA   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 )NrQ   i † T)Zuse_threadsF)r    r:   r"   r=   r   rA   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 )NrQ   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)   )©rU   r   )rU   r   )Úbr   )r   r   r   r   z=feather does not serialize index meta-data on a default indexrX   rI   )r    r:   r   r?   r;   Z
MultiIndexÚfrom_tuplesÚindexr   r$   ÚnamerE   )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   r`   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   rA   r   r   r   Útest_passthrough_keywords´   s    z%TestFeather.test_passthrough_keywordsc                 C   s$   d}t |ƒ}t |ƒ}t ||¡ d S )Nzkhttps://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/feather/feather-0_3_1.feather)r   r   r   )r
   Zfeather_fileÚurlr   Úresr   r   r   Útest_http_path¸   s
    ÿzTestFeather.test_http_path)Ú__name__Ú
__module__Ú__qualname__r   r   r   r'   rB   rH   rJ   rN   rT   rV   rW   r]   ra   rb   rd   r   ÚmarkÚnetworkr   rg   r   r   r   r   r      s$   $!r   )Ú__doc__Únumpyr"   r   Zpandasr    Zpandas._testingZ_testingr   Zpandas.io.feather_formatr   r   Zimportorskipr   rk   ÚfilterwarningsZfilter_sparseÚsingler   r   r   r   r   Ú<module>   s   
