o
    d                      @   sF  d dl mZ d dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
mZ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 ejj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(dd  Z)d!d" Z*d#d$ Z+d%d& Z,d'd( Z-d)d* Z.d+d, Z/ej0d-d.d/d0g dggd1d2 Z1dS )3    )catch_warningsN)	Timestamp)	DataFrameHDFStoreIndex
MultiIndexSeries_testingbdate_rangeconcat
date_rangeisnaread_hdf)_maybe_removeensure_clean_store)Termc                 C   s   t g dg dgg dg dgddgd}ttjdd	|g d
d}t| ,}|jd|dd |dg }t|j	ddgd| t|j	ddd| W d    n1 sVw   Y  t
tjd|dd}t| }|jd|dd t|j	ddd| W d    d S 1 sw   Y  d S )N)foobarbazqux)onetwothree)
r   r   r      r      r      r   r   )
r   r   r   r   r   r   r   r   r   r   foo_namebar_name)levelscodesnames
   r   )ABCindexcolumnsdftableformatr"   r'   zcolumns=['A']where)r&   names)r   r   nprandomrandnr   puttmassert_frame_equalselectr   assert_series_equal)
setup_pathr&   r(   storeexpectedr0    r<   i/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/io/pytables/test_select.pytest_select_columns_in_where    s"   

	
"r>   c                 C   s  t tjddg dd}tdddd|_t| G}|d| |d}|}t	j
||d	d
 |jd|jd}|}t	j
||d	d
 |jddgd}|jd d dgf }t	
|| W d    n1 scw   Y  tt tjddg ddt tjjddddddddgdgdd}tdddd|_t| e}|d| |d}|}t	j
||d	d
 |jd|jd}|}t	j
||d	d
 |jd d dgf }|jddgd}t	j
||d	d
 |jd d ddgf }|jdddgd}t	j
||d	d
 W d    n	1 sw   Y  t| 7}|d| |d| |jd d ddgf }t||g}|jdddgd}t	j
||d	d
 W d    d S 1 sEw   Y  d S )Nr!      )r"   r"   r#   r#   r,   z20130101 9:30T)periodsfreqr(   T)	by_blocksr"   r      )sizer   r$   r   axisr#   )r   r1   r2   r3   r   r&   r   appendr7   r5   r6   r'   locr   randintreshape)r9   r(   r:   resultr;   r<   r<   r=   test_select_with_dups<   s\   

	


$rM   c              	   C   s  t | }tdd t }t|d |d| |jdddgd}|jddgd}t|| |ddg}|jddgd}t|| t|d |jd|dgd |jdd	gddgd}||j	d
k jddgd}t|| t|d |jd|dd |jdd	gddgd}||j	d
k jddgd}t|| t|d |jd|dgd |jdd	gddgd}||j	d
k jddgd}t|| W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )NT)recordr(   r"   r#   r,   zcolumns=['A', 'B']data_columnszA > 0r   r$   D)
r   r   r5   makeTimeDataFramer   rH   r7   reindexr6   r"   )r9   r:   r(   rL   r;   r<   r<   r=   test_selectz   s<   




"rT   c                 C   s4  t | $}ttdddtjdd}t|d |jd|ddgd |dd	}||j	t
d
k }t|| ttjddddgd}d|d< d|jdddf< |d dk|d< t|d |jd|dd ||jdk jddgd}dD ]}|jdd| ddgd}t|| qw||jdk jddgd}dD ]}|jdd| ddgd}t|| qttjdtjdd}t|d |d| |dd}|jt|jdd dgd}t|| ttjdtjdtjdd d!d"}t|d# |d#| |d#d$}|jt|jdd dgd}t|| W d    n	1 s-w   Y  t | }ttd%td%d&d'd!}|d( d t|d(< |jd)|dd |jd)d*d+}||d, d-k }t|| tj|jd< ||d, d-k }|jd.|ddd/ |jd.d*d+}t|| ttd%td%d&d'd!}|d( d t|d(< tj|jd0< ||d, d-k }|jd1|dd |jd1d*d+}t|| W d    n	1 sw   Y  t | 0}t }||d dk }|jd|dd td}|jdd2gd+}t|| W d    d S 1 sw   Y  d S )3N
2012-01-01,  rA   )tsr"   r(   rX   r"   rO   ts>=Timestamp('2012-02-01')
2012-02-01   r   r#   r,   r   objectr   r?   r   boolvT)Ttruer   z	boolv == F)Ffalser   rD   )r"   r#   df_intzindex<10 and columns=['A']r!   r%   f8dtype)r"   r#   r&   df_floatzindex<10.0 and columns=['A']   colsvaluesfloat64rg   df1
values>2.0r-   rh   g       @df2rP   r&   r   df4z	A>np_zero)r   r   r
   r1   r2   r3   r   rH   r7   rX   r   r5   r6   rI   r]   rS   randlistr&   arangerangeapplystrnanilocmakeDataFrameri   )r9   r:   r(   rL   r;   vnp_zeror<   r<   r=   test_select_dtypes   s   








7

&
$rz   c              	   C   s  t | }ttdddtjdtddgd dgd  dgd  d	d
 tdD  d}t|d |jd|g dd |	dd}||j
tdk }t|| |	dd}||j
tdk|jg d@  }t|| g ddd
 tdD  }|	dd}||j
tdk|j|@  }t|| tdd}|	dd}||j| }t|| t|dksJ t|j
dd j}|	dd}||j
|j }t|| t|dksJ W d    d S 1 sw   Y  d S )NrU   rV   rW   a2   bcd   c                 S      g | ]}d |dqS r{   03dr<   .0ir<   r<   r=   
<listcomp>      z0test_select_with_many_inputs.<locals>.<listcomp>)rX   r"   r#   usersr(   rO   rY   rZ   z1ts>=Timestamp('2012-02-01') & users=['a','b','c'])r{   r}   r~   c                 S   r   r   r<   r   r<   r<   r=   r   &  r   <   z.ts>=Timestamp('2012-02-01') and users=selector   z
B=selectorr   zts=selector)r   r   r
   r1   r2   r3   rr   r   rH   r7   rX   r   r5   r6   r   isinr#   lenr   rh   )r9   r:   r(   rL   r;   selectorr<   r<   r=   test_select_with_many_inputs	  sN   




"r   c                 C   s  t |^}td}t|d |d| |d}t|jddd}t|}t|| t|jddd}t	|dks>J t|}t|| t|jddd}t|}t|| W d    n1 sew   Y  | | }td}|
|d	 d
}tjt|d t|d	dd W d    n1 sw   Y  tjt|d t|d	dd W d    n1 sw   Y  | | }td}|j
|ddd tt|ddd}t|}t	|dksJ t|| t|t|d t |Q}td}	|jd|	dd tdjdjd}
d|
d< |d|
 t|	|
gdd}|jddgdd}t|jddgddd}t|}t|| W d    d S 1 sEw   Y  d S )Ni  r(   T)iteratorr   	chunksizer[      df_non_tablez0can only use an iterator or chunksize on a tablematchr)   r*   rj   rO   {}_2r,   r   r   rl   r   rF   )r   )r   r   )r   r5   rR   r   rH   r7   rp   r   r6   r   to_hdfpytestraises	TypeErrorr   renamer+   select_as_multiple)tmp_pathr9   r:   r(   r;   resultsrL   pathmsgrj   rl   r<   r<   r=   test_select_iterator9  s`   







$r   c           	      C   s  d}t | j}tdd}t|d |d| |jd }|jd }|d}t|| d| d}|jd|d	}t|| d
| d}|jd|d	}t|| d| d| d}|jd|d	}t|| W d    n1 ssw   Y  t | }tdd}t|d |d| |jd }|jd }t|jd|d}t	|}t|| d| d}t|jd||d}t	|}t|| d
| d}t|jd||d}t	|}t|| d| d| d}t|jd||d}t	|}t|| W d    d S 1 sw   Y  d S )N     @ Sr(   r   
index >= ''r-   
index <= '' & index <= 'r   r.   r   )
r   r5   rR   r   rH   r&   r7   r6   rp   r   )	r9   r   r:   r;   beg_dtend_dtrL   r.   r   r<   r<   r=   "test_select_iterator_complete_8014{  sR   








$r   c           
      C   s  d}t | }tdd}t|d |d| |jd }|jd }d| d}t|jd||d	}t|}||j|k }	t	|	| d
| d}t|jd||d	}t|}||j|k }	t	|	| d| d| d}t|jd||d	}t|}||j|k|j|k@  }	t	|	| W d    n1 sw   Y  t | 7}tdd}t|d |d| |jd }d| d}t|jd||d	}dt
|ksJ W d    d S 1 sw   Y  d S )Nr   r   r   r(   r   r   r   r   r   r   r   z	index > 'r   r   r5   rR   r   rH   r&   rp   r7   r   r6   r   
r9   r   r:   r;   r   r   r.   r   rL   	rexpectedr<   r<   r=   &test_select_iterator_non_complete_8014  s@   






"r   c           
      C   s  d}t | }tdd}t|d |d| |jd }|j|d  }d| d}t|jd||d	}t|}||j|k }	t	|	| d
| d}t|jd||d	}t
|dks]J t|}||j|k }	t	|	| d| d| d}t|jd||d	}t
|dksJ t|}||j|k|j|k@  }	t	|	| d
| d| d}t|jd||d	}t
|dksJ W d    d S 1 sw   Y  d S )Ni'  i r   r(   r   r   r   r   r   r   r   z' & index >= 'r   r   r<   r<   r=   &test_select_iterator_many_empty_frames  s8   


	"r   c           
   	   C   s>  t  }t| }|jd|dd |jt|d  }td}|jjd |ks(J d}d}|	d||g}|j
|d d	d
gf }t || |	d|g}|j
d d d	gf }t || t  }|d| d}	tjt|	d |	dd W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nframer)   r*   r   zindex>=datedatezcolumns=['A', 'D']z	columns=Ar"   rQ   df_timez day is out of range for month: 0r   zindex>0)r5   rR   r   r4   r&   r   r   envscoper7   rI   r6   rH   r   r   
ValueError)
r9   r(   r:   r   crit1crit2crit3rL   r;   r   r<   r<   r=   test_frame_select(  s.   
"r   c              	   C   s2  t  }d|d< d|j|jdd df< t| }|jd|ddgd |dd	}|j|j|jd
 k|jdk@  }t || |dd}|j|j|jd
 k|jdk@  }t || |dd}|j|j|jd
 k|jdkB  }t || |dd}|j|j|jd
 k|j|jd k@ |jdkB  }t || |dd}|j|jdk }t || d}t	j
t|d |dd W d    n1 sw   Y  |dd}|jd d |jddgf }t || |dd}|j|j|jd
 k jddgd}t || W d    d S 1 sw   Y  d S )Nr   stringr   r   r?   r(   r)   r+   rP   z index>df.index[3] & string="bar"r   z index>df.index[3] & string="foo"z index>df.index[3] | string="bar"z7(index>df.index[3] & index<=df.index[6]) | string="bar"   zstring!="bar"z6cannot use an invert condition when passing to numexprr   z~(string="bar")z~(columns=['A','B'])r"   r#   z(index>df.index[3] & columns in ['A','B']r,   )r5   rR   rI   r&   r   r4   r7   r   r6   r   r   NotImplementedErrorr'   
differencerS   )r9   r(   r:   rL   r;   r   r<   r<   r=   test_frame_select_complexJ  sJ   
   "$r   c                 C   s  | d }| d }t dg di}|j|ddddgd t|dd	d
}t tjdddgtjdd tdD ddgdd}|j|dddd t|ddd
}|j	
 }t|}|jddd
}	t|	| W d    n1 snw   Y  t|ddd
}	t|	| |j	}
t|ddd
}	t|	| t|ddd
}	t|	| t|ddd
}	t|	| t|ddd
}	t|	| t|=}|jddd
}	t|	| |jddd
}	t|	| |jddd
}	t|	| |jddd
}	t|	| W d    d S 1 sw   Y  d S )Nz
params.hdfzhist.hdfr"   )r   r   r   r   r   r(   wr)   )moder+   rP   zA=[2,3]r-      r   datac                 S   s"   g | ]}t d D ]}||fqqS )r[   )rr   )r   r   jr<   r<   r=   r     s   " z.test_frame_select_complex2.<locals>.<listcomp>r[   l1l2)r    )r'   r&   )r   r+   zl1=[2, 3, 4]zl1=l0zl1=indexzl1=selection.indexzl1=selection.index.tolist()zl1=list(selection.index))r   r   r   r1   r2   r3   r   from_tuplesrr   r&   tolistr   r7   r5   r6   )r   pphhparams	selectionhistr;   l0r:   rL   r&   r<   r<   r=   test_frame_select_complex2  sP   


"r   c              	   C   s   t  }t| U}|jd|dd d}tjt|d |dd W d    n1 s+w   Y  tjt|d |dd W d    n1 sHw   Y  W d    d S W d    d S 1 s`w   Y  d S )Nr(   r)   r*   z unable to collapse Joint Filtersr   zcolumns=['A'] | columns=['B']z!columns=['A','B'] & columns=['C'])r5   rR   r   r4   r   r   r   r7   )r9   r(   r:   r   r<   r<   r=   test_invalid_filtering  s   
	"r   c                 C   s  t | }t }d|d< d|j|jdd df< |jd|dgd |dd}||jdk }t|| |dd	}||jdk }t|| |	 }t
j|j|jdkdf< |jd
|dgd |d
d	}|t|j }t|| d|d< d|j|jdd df< |jd|dgd |dd}||jdk }t|| |dd}||jdk }t|| W d    d S 1 sw   Y  d S )Nnonex r      r(   rO   zx=nonezx!=nonerl   r   intdf3zint=2zint!=2)r   r5   rR   rI   r&   rH   r7   r   r6   copyr1   ru   r   r   )r9   r:   r(   rL   r;   rl   r<   r<   r=   test_string_select  s6   
"r   c              	   C   sb  t  }t  jdjd}d|d< t| }d}tjt|d |jd ddgd	d
 W d    n1 s5w   Y  |j	d	|ddgd |	d| tjt|d |jd ddgd	d
 W d    n1 sfw   Y  tjt|d |jd gddgd	d
 W d    n1 sw   Y  d}tjt
|d |jd	dgddgd	d
 W d    n1 sw   Y  tjt
|d |jdgddgd	d
 W d    n1 sw   Y  tjt
dd |jd	dgddgdd
 W d    n1 sw   Y  |d	ddg}|jd	gddgd	d
}t || |jd	ddgd	d
}t || |jd	dgddgd	d
}t||gdd}||jdk|jdk@  }t j||dd |jd	dgddd
}t||gdd}|dd  }t || |	dt jdd d}tjt|d |jd	dgddgd	d
 W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   r,   r   r   zkeys must be a list/tupler   zA>0zB>0rj   )r.   r   r"   r#   rO   rl   z!'No object named df3 in the file'r   z!'No object named df4 in the file'rn   r   rF   r   F)
check_freqzindex>df2.index[4]r[   r|   )nperz,all tables must have exactly the same nrows!)r5   rR   r   r+   r   r   r   r   r   rH   KeyErrorr7   r6   r   r"   r#   r   )r9   rj   rl   r:   r   rL   r;   r<   r<   r=   test_select_as_multiple  sv   
 ;$r   c                 C   s   t | M}ttdtdddd}|d d t|d< tj|jd< tg dg d	dg d
d}|jd|ddgd |j	ddd}t
|| W d    d S 1 sTw   Y  d S )Nr   rf   ri   rb   rg   r!   r   )z13.0z14.0z15.0)g      @g      @g      @)r   r?   r[   )r&   r(   Trm   rk   r-   )r   r   rr   rs   rt   r1   ru   rv   rH   r7   r5   r6   )r9   r:   r(   r;   rL   r<   r<   r=   test_nan_selection_bug_4858=  s   
"r   c                 C   sz   t g dg dd}||jdk }t| }|jd|ddd |dd	}W d    n1 s0w   Y  t|| d S )
N)r{   r{   r~   r}   test & testr~   r}   e)r   r   r   r?   r[   r   r      )r{   r}   r   testr)   Tr   za = "test & test")r   r{   r   rH   r7   r5   r6   )r9   r(   r;   r:   rL   r<   r<   r=   (test_query_with_nested_special_characterN  s   
r   c                 C   s   t dg di}t| \}|jd|ddd d}|dd|d	}|js'J d
}|dd|d	}|jddgd d f }t|| d}|dd|d	}|jdgd d f }t|| W d    d S 1 skw   Y  d S )Nr"   )g~  eA$  eAg'1  eAr   r)   Tr   g  eAzA < z.4fg   eAzA > r   r   r   zA == )r   r   rH   r7   emptyrI   r5   r6   )r9   r(   r:   cutoffrL   r;   exactr<   r<   r=   test_query_long_float_literal\  s   

"r   c                 C   s,  t ddgtdddddgddgdg dd	}t| }|jd
|ddd td}|jd
dd}|jdgd d f }t|| dD ]}ddtdt	
ddfD ]1}d| d}d| dt| d}	tjt|	d |jd
|d W d    n1 s|w   Y  qPd}dD ]1}
|
 d| d}|
dkrd}	nd}	tjt|	d |jd
|d W d    n1 sw   Y  qtg dg dD ]@\}}
|
 d| d}|jd
|d}|d kr|jd!gd d f }n|d"kr|jdgd d f }n	|jg d d f }t|| qqBW d    d S 1 sw   Y  d S )#N
2014-01-01z
2014-01-02r   rW   g?g333333?r   )r   	real_datefloatr   r,   r   r)   Tr   zreal_date > tsr-   )<>==g @r0   zdate z vzCannot compare z	 of type z to string columnr   r{   )r   r   r    r   z+Given date string "a" not likely a datetimezcould not convert string to )1z1.1r   r   r   r   )r   r   r   rH   r   r7   rI   r5   r6   pd	Timedeltatyper   r   r   r   zip)r9   r(   r:   rX   rL   r;   oprx   queryr   colr<   r<   r=   test_query_compare_column_typer  s\   


$r   r.   r   r<   )Nc                 C   sj   t g d}| d }t|}|d|d t|d|d}t|| W d    d S 1 s.w   Y  d S )N)r   r   r   zempty_where.h5r(   tr-   )r   r   r4   r   r5   r6   )r   r.   r(   r   r:   rL   r<   r<   r=   test_select_empty_where  s   
"r   )2warningsr   numpyr1   r   pandas._libs.tslibsr   pandasr   r   r   r   r   r   r	   r5   r
   r   r   r   r   pandas.tests.io.pytables.commonr   r   pandas.io.pytablesr   mark
single_cpu
pytestmarkr>   rM   rT   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   parametrizer   r<   r<   r<   r=   <module>   s<    4>&i0BE17"6;*F6