o
    Ti_                     @   sB  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.d,d-d.d/g dggd0d1 Z/d2d3 Z0dS )4    N)	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 sXw   Y  ttjdd|dd}t| }|jd|dd t|j
ddd| W d    d S 1 sw   Y  d S )N)foobarZbazZqux)onetwothree)
r   r   r      r      r      r   r   )
r   r   r   r   r   r   r   r   r   r   Zfoo_nameZbar_name)Zlevelscodesnamesr   )
   r   )ABCindexcolumnsdftableformatr   r!   zcolumns=['A']wherer   )r    names)r   r   nprandomdefault_rngstandard_normalr   puttmassert_frame_equalselectr   Zassert_series_equal)
setup_pathr    r"   storeexpectedr*    r6   d/var/www/html/evchargy.com/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_select.pytest_select_columns_in_where   s*   

	
"r8   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 sew   Y  tt tjddg ddt tjd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 sLw   Y  d S )Nr   )r      )r   r   r   r   r&   z20130101 9:30r   T)periodsfreqr"   T)Z	by_blocksr   r      )sizer   r   Zaxisr   )r   r+   r,   r-   r.   r   r    r   appendr2   r0   r1   r!   locr
   ZintegersZreshape)r3   r"   r4   resultr5   r6   r6   r7   test_select_with_dups>   sh   





$rC   c                 C   s  t | }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    d S 1 sw   Y  d S )Nr"   r   r   r&   zcolumns=['A', 'B']data_columnszA > 0r   Tr   D)	r   r0   makeTimeDataFramer   r@   r2   reindexr1   r   )r3   r4   r"   rB   r5   r6   r6   r7   test_select   s4   




"rI   c                 C   sV  t | 5}ttdddtjd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|| q|||jdk jddgd}dD ]}|j	dd| ddgd}t|| qttjddtjddd}t|d |d| |	dd}|jt|jdd dgd }t|| ttjddtjd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d0 |j	d/d+d,}t|| ttd&td&d'd(d"}|d) d t|d)< tj|jd1< ||d- d.k }|jd2|dd	 |j	d2d+d,}t|| W d    n	1 sw   Y  t | 0}t }||d dk }|jd|dd	 td}|j	dd3gd,}t|| W d    d S 1 s$w   Y  d S )4N
2012-01-01,  r;   r   )tsr   r"   rM   r   rD   ts>=Timestamp('2012-02-01')
2012-02-01)   r   r   r&   r   objectr   r9   rP   r   boolvT)Ttruer   z	boolv == F)Ffalser   r=   )r   r   Zdf_intzindex<10 and columns=['A']r   r   Zf8Zdtype)r   r   r    Zdf_floatzindex<10.0 and columns=['A']   colsvaluesfloat64rX   df1
values>2.0r'   rY   g       @df2rE   r    r   df4z	A>np_zero)r   r   r	   r+   r,   r-   r.   r   r@   r2   rM   r   r0   r1   rA   rR   rH   listr    ZarangerangeapplystrnanilocZmakeDataFramerZ   )r3   r4   r"   rB   r5   vZnp_zeror6   r6   r7   test_select_dtypes   s   





>

&
$rg   c              	   C   s  t | }ttdddtjd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 )NrJ   rK   rL   r   a2   bcd   c                 S      g | ]}d |dqS rh   Z03dr6   .0ir6   r6   r7   
<listcomp>!      z0test_select_with_many_inputs.<locals>.<listcomp>)rM   r   r   usersr"   rD   rN   rO   z1ts>=Timestamp('2012-02-01') & users=['a','b','c'])rh   rj   rk   c                 S   rm   rn   r6   ro   r6   r6   r7   rr   4  rs   <   z.ts>=Timestamp('2012-02-01') and users=selector   z
B=selectorr   zts=selector)r   r   r	   r+   r,   r-   r.   ra   r   r@   r2   rM   r   r0   r1   rt   isinr   lenr   rY   )r3   r4   r"   rB   r5   selectorr6   r6   r7   test_select_with_many_inputs  sN   



"rz   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)iteratorrl   	chunksizerP      Zdf_non_tablez0can only use an iterator or chunksize on a tablematchr#   r$   r[   rD   {}_2r&   r   r   r]   r   r?   )ry   )ry   r}   )r   r0   rG   r   r@   r2   r`   r
   r1   rx   to_hdfpytestraises	TypeErrorr   renamer%   select_as_multiple)tmp_pathr3   r4   r"   r5   resultsrB   pathmsgr[   r]   r6   r6   r7   test_select_iteratorG  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   r0   rG   r   r@   r    r2   r1   r`   r
   )	r3   r}   r4   r5   beg_dtend_dtrB   r(   r   r6   r6   r7   "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   r0   rG   r   r@   r    r`   r2   r
   r1   rx   
r3   r}   r4   r5   r   r   r(   r   rB   Z	rexpectedr6   r6   r7   &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   r6   r6   r7   &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   rF   Zdf_timez day is out of range for month: 0r   zindex>0)r0   rG   r   r/   r    rx   r   envscoper2   rA   r1   r@   r   r   
ValueError)
r3   r"   r4   r   Zcrit1Zcrit2Zcrit3rB   r5   r   r6   r6   r7   test_frame_select6  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   r9   r"   r#   r%   rE   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&   )r0   rG   rA   r    r   r/   r2   r   r1   r   r   NotImplementedErrorr!   
differencerH   )r3   r"   r4   rB   r5   r   r6   r6   r7   test_frame_select_complexX  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 spw   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%   rE   zA=[2,3]r'   r   )   r   datac                 S   s"   g | ]}t d D ]}||fqqS )rP   )ra   )rp   rq   jr6   r6   r7   rr     s   " z.test_frame_select_complex2.<locals>.<listcomp>rP   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   r+   r,   r-   r.   r   from_tuplesra   r    tolistr   r2   r0   r1   )r   pphhparamsZ	selectionhistr5   Zl0r4   rB   r    r6   r6   r7   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'])r0   rG   r   r/   r   r   r   r2   )r3   r"   r4   r   r6   r6   r7   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"   rD   zx=nonezx!=noner]   r   intdf3zint=2zint!=2)r   r0   rG   rA   r    r@   r2   r   r1   copyr+   rd   r   r   )r3   r4   r"   rB   r5   r]   r6   r6   r7   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>0r[   )r(   ry   r   r   rD   r]   z!'No object named df3 in the file'r   z!'No object named df4 in the file'r_   r   r?   r   F)Z
check_freqzindex>df2.index[4]rP   ri   )Znperz,all tables must have exactly the same nrows!)r0   rG   r   r%   r   r   r   r   r   r@   KeyErrorr2   r1   r
   r   r   r   )r3   r[   r]   r4   r   rB   r5   r6   r6   r7   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   rW   rZ   rU   rX   r   r   )z13.0z14.0z15.0)g      @g      @g      @)r   r9   rP   )r    r"   Tr^   r\   r'   )r   r   ra   rb   rc   r+   rd   re   r@   r2   r0   r1   )r3   r4   r"   r5   rB   r6   r6   r7   test_nan_selection_bug_4858K  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)rh   rh   rk   rj   test & testrk   rj   e)r   r   r   r9   rP   r   r      )rh   rj   r   testr#   Tr   za = "test & test")r   rh   r   r@   r2   r0   r1   )r3   r"   r5   r4   rB   r6   r6   r7   (test_query_with_nested_special_character\  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   r@   r2   emptyrA   r0   r1   )r3   r"   r4   cutoffrB   r5   exactr6   r6   r7   test_query_long_float_literalj  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   rL   g?g333333?r   )r   	real_datefloatr   r&   r   r#   Tr   zreal_date > tsr'   )<>==g @r*   zdate z vzCannot compare z	 of type z to string columnr   rh   )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   r@   r   r2   rA   r0   r1   pdZ	Timedeltatyper   r   r   r   zip)r3   r"   r4   rM   rB   r5   oprf   queryr   colr6   r6   r7   test_query_compare_column_type  s\   


$r   r(   r   r6   )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   r/   r   r0   r1   )r   r(   r"   r   r4   rB   r6   r6   r7   test_select_empty_where  s   
"r   c                 C   s   | d }t tg dg dddgd}d }t|}|jd|dd	d
 |jddddd}W d    n1 s:w   Y  |d d }||ksKJ d S )Nzlarge_int.h5)rh   rj   rk   d)l l l {   r   yr&   r   TFr^   zy==-9223372036854775801r'   r   )r   r   r   r@   r2   get)r   r   r"   rB   r*   r5   r6   r6   r7   test_select_large_integer  s   
r   )1numpyr+   r   Zpandas._libs.tslibsr   Zpandasr   r   r   r   r   r   r   r0   r	   r
   r   r   r   Zpandas.tests.io.pytables.commonr   r   Zpandas.io.pytablesr   markZ
single_cpuZ
pytestmarkr8   rC   rI   rg   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zparametrizer   r   r6   r6   r6   r7   <module>   s<    4 D%p0BE17"6;*F6
