o
    5cT                  	   @   s   d dl Zd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZmZmZ ejjejdgZdd Zdd Zd	d
 Zejddedg diedg ifdedg dieddgifgdededefddZdS )    N)Categorical	DataFrameSeries_testingconcatread_hdf)_maybe_removeensure_clean_pathensure_clean_storez6ignore:a closed node found in the registry:UserWarningc           
   	   C   s6  t | }t|d ttg dg ddd}|jd|dd |d}t|| t|d ttg dg dd	d}|jd|dd |d}t|| t|d
 t|g dd}|jd
|dd |d
}t	|| t|d tg d
d}|d| |d}t|| t|d tddtjddddg
d}|d| |d}t|| t|d | }ttd
d|d< |d| |d}t	|| | }d|v sJ d|v sJ d|v sJ t|d ttg dg ddd}|jd|dd |d}t|| t|d |jd|dgd ||jddg }|jdd gd!}t	|| ||jddg }|jdd"gd!}t	|| ||jd#g }|jdd$gd!}t	|| ||jd%g }|jdd&gd!}t	|| |d| t||g}||jddg }|jdd gd!}t	|| | }|d j |d< d'}	tjt|	d( |d| W d    n	1 sw   Y  |d)}|d usJ |d tjtd*d( |d) W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )+Ns)abr   r   r   cr   r   r   dF)
categoriesorderedtable)format	s_orderedTdf)                  )r   valssi)r   r   r   r   r   r   r   categorysi2r   r   r   r   r   df2abcdefgs2z/df2   z/df2/meta/values_block_0/metaz/df2/meta/values_block_2/metadf3)data_columnsr   r   zs in ["b","c"]wherezs = ["b","c"]r   z
s in ["d"]fz
s in ["f"]zEcannot append a categorical with different categories to the existing)matchzdf3/meta/s/metaz-'No object named df3/meta/s/meta in the file')r
   r   r   r   appendselecttmassert_series_equalr   assert_frame_equalastypenpnancopylistinfor   isinr   catremove_unused_categoriespytestraises
ValueErrorremoveKeyError)

setup_pathstorer   resultr   r!   r4   expectedr$   msg rB   _/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/io/pytables/test_categorical.pytest_categorical   s   
















 s$rD   c                 C   s  ddg}ddg}ddg}t |||d}|jg d d f }t| }|j|dd	d
d t|ddd}t|| W d    n1 sBw   Y  |jd|_|j	d|_	|jg d d f }t| }|j|dd	d
d t|ddd}t|| W d    d S 1 sw   Y  d S )NESP_012345_6789ESP_987654_3210
APF00006np
APF0001immg333333@g#@)obsidsimgidsdatar   r   Tr   r%   zobsids=Br&   r   )
r   ilocr	   to_hdfr   r,   r.   rI   r/   rJ   )r=   rI   rJ   rK   r   r@   pathr?   rB   rB   rC   test_categorical_conversion   s$   

"rP   c                 C   s   t dddtjgtjtjtjtjgg dtd gd tdd}|jd|d< |jd|d< |jd|d	< |}t| }|j	|d
ddd t
|d
}t|| W d    d S 1 s]w   Y  d S )Nr   r   r   )r   r   r   r   r   )dtyper   r   r   r   r   TrL   )r   r0   r1   r   objectr   r/   r   r	   rN   r   r,   r.   )r=   r   r@   rO   r?   rB   rB   rC   !test_categorical_nan_only_columns   s    

"rS   zwhere, df, expectedzcol=="q"col)r   r   r   zcol=="a"r   r'   r   r@   c                 C   s   |j d|_ ddi}t|j  }|j d|_ |j j||_ t| }|j|dd|d t||d}t	
|| W d    d S 1 sFw   Y  d S )Nr   rT   r   r   r   )r   min_itemsizer&   )rT   r/   sorteduniquer6   set_categoriesr	   rN   r   r,   r.   )r=   r'   r   r@   
max_widthscategorical_valuesrO   r?   rB   rB   rC   test_convert_value   s   

"r[   )numpyr0   r8   pandasr   r   r   r   r,   r   r   pandas.tests.io.pytables.commonr   r	   r
   mark
single_cpufilterwarnings
pytestmarkrD   rP   rS   parametrizestrr[   rB   rB   rB   rC   <module>   s&     	{