1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
U
­ý°dхã@sFddlmZddlZddlZddlmZddlZddlm    Z    m
Z
m Z m Z m Z mZmZmZmZmZmZddlmZmZddlmZejjZdd„Zd    d
„Zd d „Zd d„Z dd„Z!dd„Z"dd„Z#dd„Z$dd„Z%dd„Z&dd„Z'dd„Z(dd „Z)d!d"„Z*d#d$„Z+d%d&„Z,d'd(„Z-d)d*„Z.d+d,„Z/ej 0d-d.d/d0gdgg¡d1d2„ƒZ1dS)3é)Úcatch_warningsN)Ú    Timestamp) Ú    DataFrameÚHDFStoreÚIndexÚ
MultiIndexÚSeriesÚ_testingÚ bdate_rangeÚconcatÚ
date_rangeÚisnaÚread_hdf)Ú _maybe_removeÚensure_clean_store)ÚTermc Cstddddgdddggdddd    d    d
d
d d d g
dd    d
dd    d    d
dd    d
g
gd d gd}ttj dd ¡|dddgd}t|ƒN}|jd|dd|dg}t |j    ddgd|¡t |j    ddd|¡W5QRXt
tj d¡|dd}t|ƒ,}|jd|ddt  |j    ddd|¡W5QRXdS)NÚfooÚbarZbazZquxZoneZtwoZthreeréééZfoo_nameZbar_name)ÚlevelsÚcodesÚnamesé
ÚAÚBÚC©ÚindexÚcolumnsÚdfÚtable©Úformat©r z columns=['A']©Úwhere)rÚnameÚs) rrÚnpÚrandomÚrandnrÚputÚtmÚassert_frame_equalÚselectrZassert_series_equal)Ú
setup_pathrr!ÚstoreÚexpectedr)©r4ú[d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/pytables/test_select.pyÚtest_select_columns_in_where s.ý
 
 
r6c    Cs^ttj dd¡ddddgd}tdddd|_t|ƒ„}| d    |¡| d    ¡}|}t    j
||d
d |jd    |j d}|}t    j
||d
d |jd    dgd}|j dd…dgf}t     
||¡W5QRXt ttj dd¡ddddgdttjjd dd d dd¡ddgdgdd}tdddd|_t|ƒÀ}| d    |¡| d    ¡}|}t    j
||d
d |jd    |j d}|}t    j
||d
d |j dd…dgf}|jd    dgd}t    j
||d
d |j dd…ddgf}|jd    ddgd}t    j
||d
d W5QRXt|ƒb}| d    |¡| d    |¡|j dd…ddgf}t ||gƒ}|jd    ddgd}t    j
||d
d W5QRXdS)Nrérrr%z 20130101 9:30ÚT)ÚperiodsÚfreqr!T)Z    by_blocksré)Úsizerrr©Zaxis)rr*r+r,r rrÚappendr0r.r/r Úlocr ÚrandintZreshape)r1r!r2Úresultr3r4r4r5Útest_select_with_dups<sX
 
ÿþù    
 
 
   rBc
Cs®t|ƒš}tdd‚t ¡}t|dƒ| d|¡|jdddgd}|jddgd}t ||¡| ddg¡}|jddgd}t ||¡t|dƒ|jd|dgd|jdd    gddgd}||j    d
kjddgd}t ||¡t|dƒ|jd|dd|jdd    gddgd}||j    d
kjddgd}t ||¡t|dƒ|jd|dgd|jdd    gd d gd}||j    d
kjd d gd}t ||¡W5QRXW5QRXdS) NT)Úrecordr!rrr%zcolumns=['A', 'B']©Ú data_columnszA > 0rrÚD)
rrr.ÚmakeTimeDataFramerr>r0Úreindexr/r)r1r2r!rAr3r4r4r5Ú test_selectzs4 
 
 
 
rIc    Csôt|ƒ@}ttdddtj d¡dœƒ}t|dƒ|jd|ddgd| dd    ¡}||j    t
d
ƒk}t   ||¡ttj d d ¡dd gd}d|d<d|j dd …df<|ddk|d<t|dƒ|jd|dd||jdkjddgd}dD]*}|jdd|›ddgd}t   ||¡qî||jdkjddgd}dD],}|jdd|›ddgd}t   ||¡q8ttj d¡tj d¡dœƒ}t|dƒ| d|¡| dd¡}|jt|jƒdd…dgd}t   ||¡ttj d¡tj d¡tjdd d!d"œƒ}t|d#ƒ| d#|¡| d#d$¡}|jt|jƒdd…dgd}t   ||¡W5QRXt|ƒ.}ttd%ƒtd%ƒd&œd'd!}|d(d t¡|d(<|jd)|dd|jd)d*d+}||d,d-k}t   ||¡tj|jd<||d,d-k}|jd.|ddd/|jd.d*d+}t   ||¡ttd%ƒtd%ƒd&œd'd!}|d(d t¡|d(<tj|jd0<||d,d-k}|jd1|dd|jd1d*d+}t   ||¡W5QRXt|ƒT}t  ¡}||ddk}|jd|ddt d¡}|jdd2gd+}t   ||¡W5QRXdS)3Nú
2012-01-01é,©r9)Útsrr!rMrrDúts>=Timestamp('2012-02-01')ú
2012-02-01érrr%rÚobjectrr7rÚboolvT)TÚtruerz    boolv == F)FÚfalserr;)rrZdf_intzindex<10 and columns=['A']rrZf8©Zdtype)rrrZdf_floatzindex<10.0 and columns=['A']é ©ÚcolsÚvaluesÚfloat64rXÚdf1ú
values>2.0r&rYg@Údf2©rErrÚdf4z    A>np_zero)rrr
r*r+r,rr>r0rMrr.r/r?rRrHZrandÚlistrZarangeÚrangeÚapplyÚstrÚnanÚilocZ makeDataFramerZ)r1r2r!rAr3ÚvZnp_zeror4r4r5Útest_select_dtypes sˆ 
 
þÿ
 
 
 
 
 ýÿ
 
 
 
rgc    CsÚt|ƒÆ}ttdddtj d¡tdƒdgddgddgdd    d
„tdƒDƒd œƒ}t|d ƒ|jd |d dddgd|     d d¡}||j
t dƒk}t   ||¡|     d d¡}||j
t dƒk|j dddg¡@}t   ||¡dddgdd
„tdƒDƒ}|     d d¡}||j
t dƒk|j |¡@}t   ||¡tddƒ}|     d d¡}||j |¡}t   ||¡t|ƒdks|t‚t|j
dd…jƒ}|     d d¡}||j
 |j¡}t   ||¡t|ƒdksÌt‚W5QRXdS)NrJrKrLÚaé2ÚbÚcédcSsg|]}d|d›‘qS©rhZ03dr4©Ú.0Úir4r4r5Ú
<listcomp>sz0test_select_with_many_inputs.<locals>.<listcomp>)rMrrÚusersr!rMrrrrrDrNrOz1ts>=Timestamp('2012-02-01') & users=['a','b','c']cSsg|]}d|d›‘qSrmr4rnr4r4r5rq&sé<z.ts>=Timestamp('2012-02-01') and users=selectoréÈz
B=selectorrz ts=selector)rrr
r*r+r,rarr>r0rMrr.r/rrÚisinrÚlenÚAssertionErrorrrY)r1r2r!rAr3Úselectorr4r4r5Útest_select_with_many_inputs    sL 
 
ÿþýüÿ
   ÿ   
    ryc     CsFt|ƒ²}t d¡}t|dƒ| d|¡| d¡}t|jdddƒ}t|ƒ}t ||¡t|jdddƒ}t    |ƒdks|t
‚t|ƒ}t ||¡t|jdddƒ}t|ƒ}t ||¡W5QRX||}t d¡}|  |d    ¡d
}t j t|d t|d    ddW5QRXt j t|d t|d    ddW5QRX||}t d¡}|j |dd d tt|dddƒ}t|ƒ}t    |ƒdks€t
‚t ||¡t |t|dƒ¡t|ƒ–}t d¡}    |jd|    ddt d¡jdjd}
d|
d<| d|
¡t|    |
gdd}|jddgdd}t|jddgdddƒ}t|ƒ}t ||¡W5QRXdS)Niôr!T)Úiteratorrl©Ú    chunksizerPé–Z df_non_tablez0can only use an iterator or chunksize on a table©Úmatchr"r#r[rDú{}_2r%rrr]rr=)rx)rxr|)rr.rGrr>r0r`r r/rvrwÚto_hdfÚpytestÚraisesÚ    TypeErrorrÚrenamer$Úselect_as_multiple) Útmp_pathr1r2r!r3ÚresultsrAÚpathÚmsgr[r]r4r4r5Útest_select_iterator9sX
 
 
 
 
 
 
 
 ÿr‹c        Csôd}t|ƒÊ}t dd¡}t|dƒ| d|¡|jd}|jd}| d¡}t ||¡d|›d}|jd|d    }t ||¡d
|›d}|jd|d    }t ||¡d|›d |›d}|jd|d    }t ||¡W5QRXt|ƒ}t dd¡}t|dƒ| d|¡|jd}|jd}t|jd|d ƒ}t    |ƒ}t ||¡d|›d}t|jd||d ƒ}t    |ƒ}t ||¡d
|›d}t|jd||d ƒ}t    |ƒ}t ||¡d|›d |›d}t|jd||d ƒ}t    |ƒ}t ||¡W5QRXdS)NçˆÃ@éà†ÚSr!réÿÿÿÿú
index >= 'ú'r&ú
index <= 'ú' & index <= 'r{©r'r|)
rr.rGrr>rr0r/r`r )    r1r|r2r3Úbeg_dtÚend_dtrAr'rˆr4r4r5Ú"test_select_iterator_complete_8014{sN
 
 
 
 
 
 
 
     r—c
    Csœd}t|ƒ}t dd¡}t|dƒ| d|¡|jd}|jd}d|›d}t|jd||d    ƒ}t|ƒ}||j|k}    t     |    |¡d
|›d}t|jd||d    ƒ}t|ƒ}||j|k}    t     |    |¡d|›d |›d}t|jd||d    ƒ}t|ƒ}||j|k|j|k@}    t     |    |¡W5QRXt|ƒd}t dd¡}t|dƒ| d|¡|jd }d |›d}t|jd||d    ƒ}dt
|ƒksŽt ‚W5QRXdS)NrŒrrŽr!réþÿÿÿrr‘r”r’r“rz    index > 'r© rr.rGrr>rr`r0r r/rvrw©
r1r|r2r3r•r–r'rˆrAZ    rexpectedr4r4r5Ú&test_select_iterator_non_complete_8014Às<  
 
 
 
 
 
 r›c
    Csˆd}t|ƒp}t dd¡}t|dƒ| d|¡|jd}|j|d}d|›d}t|jd||d    ƒ}t|ƒ}||j|k}    t     |    |¡d
|›d}t|jd||d    ƒ}t
|ƒdks¼t ‚t|ƒ}||j|k}    t     |    |¡d|›d |›d}t|jd||d    ƒ}t
|ƒdkst ‚t|ƒ}||j|k|j|k@}    t     |    |¡d
|›d |›d}t|jd||d    ƒ}t
|ƒdkszt ‚W5QRXdS) Ni'i †rŽr!rrrr‘r”r’r“z' & index >= 'r™ršr4r4r5Ú&test_select_iterator_many_empty_framesñs6  
 
         rœc
 
Cst ¡}t|ƒê}|jd|dd|jt|ƒd}tdƒ}|jjd|ksPt    ‚d}d}| 
d||g¡}|j |d…d    d
gf}t  ||¡| 
d|g¡}|j dd…d    gf}t  ||¡t ¡}|  d |¡d }    tjt|    d | 
d d¡W5QRXW5QRXdS)NÚframer"r#rz index>=dateÚdatezcolumns=['A', 'D']z    columns=ArrFZdf_timez day is out of range for month: 0r~zindex>0)r.rGrr-rrvrÚenvZscoperwr0r?r/r>r‚rƒÚ
ValueError)
r1r!r2ržZcrit1Zcrit2Zcrit3rAr3rŠr4r4r5Útest_frame_select(s&
   r¡c
Cst ¡}d|d<d|j|jdd…df<t|ƒÌ}|jd|ddgd| dd    ¡}|j|j|jd
k|jdk@}t ||¡| dd ¡}|j|j|jd
k|jdk@}t ||¡| dd ¡}|j|j|jd
k|jdkB}t ||¡| dd ¡}|j|j|jd
k|j|jdk@|jdkB}t ||¡| dd¡}|j|jdk}t ||¡d}t    j
t |d| dd¡W5QRX| dd¡}|jdd…|j   ddg¡f}t ||¡| dd¡}|j|j|jd
kjddgd}t ||¡W5QRXdS)NrÚstringrrr7r!r"©r$rEz index>df.index[3] & string="bar"rz 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'])rrz(index>df.index[3] & columns in ['A','B']r%)r.rGr?rrr-r0r¢r/r‚rƒÚNotImplementedErrorr Ú
differencerH)r1r!r2rAr3rŠr4r4r5Útest_frame_select_complexJsH          ÿÿÿ      "r§c     Csà|d}|d}tddddddgiƒ}|j|ddd    dgd
t|dd d }ttj d d¡dgtjdd„tdƒDƒddgdd}|j|ddd    dt|ddd }|j     
¡}t |ƒ }|j ddd }    t  |    |¡W5QRXt|ddd }    t  |    |¡|j    }
t|ddd }    t  |    |¡t|ddd }    t  |    |¡t|ddd }    t  |    |¡t|ddd }    t  |    |¡t |ƒn}|j ddd }    t  |    |¡|j ddd }    t  |    |¡|j ddd }    t  |    |¡|j ddd }    t  |    |¡W5QRXdS)Nz
params.hdfzhist.hdfrrrrr!Úwr")Úmoder$rEzA=[2,3]r&éÚdatacSs"g|]}tdƒD] }||f‘qqS)rP)ra)rorpÚjr4r4r5rqs
z.test_frame_select_complex2.<locals>.<listcomp>rPÚl1Úl2)r)r r)r©r$z l1=[2, 3, 4]zl1=l0zl1=indexzl1=selection.indexzl1=selection.index.tolist()zl1=list(selection.index))rrrr*r+r,rÚ from_tuplesrarÚtolistrr0r.r/) r‡ÚppÚhhÚparamsZ    selectionÚhistr3Zl0r2rArr4r4r5Útest_frame_select_complex2€sN ÿý
 
 
   rµc
Cs€t ¡}t|ƒf}|jd|ddd}tjt|d| dd¡W5QRXtjt|d| dd¡W5QRXW5QRXdS)Nr!r"r#z unable to collapse Joint Filtersr~zcolumns=['A'] | columns=['B']z!columns=['A','B'] & columns=['C'])r.rGrr-r‚rƒr¥r0)r1r!r2rŠr4r4r5Útest_invalid_filtering»s
r¶c    Cstt|ƒ`}t ¡}d|d<d|j|jdd…df<|jd|dgd| dd¡}||jdk}t ||¡| dd    ¡}||jdk}t ||¡|     ¡}t
j |j|jdkdf<|jd
|dgd| d
d    ¡}|t |jƒ}t ||¡d |d <d|j|jdd…d f<|jd |d gd| d d¡}||j dk}t ||¡| d d¡}||j dk}t ||¡W5QRXdS)NÚnoneÚxÚrér!rDzx=nonezx!=noner]rÚintÚdf3zint=2zint!=2)rr.rGr?rr>r0r¸r/Úcopyr*rdr r»)r1r2r!rAr3r]r4r4r5Útest_string_selectÍs4          r¾c
Cs¬t ¡}t ¡jdjd}d|d<t|ƒv}d}tjt|d|jdddgd    d
W5QRX|j    d    |d d gd |     d|¡tjt|d|jdddgd    d
W5QRXtjt|d|jdgddgd    d
W5QRXd}tjt
|d|jd    dgddgd    d
W5QRXtjt
|d|jdgddgd    d
W5QRXtjt
dd|jd    dgddgdd
W5QRX|  d    ddg¡}|jd    gddgd    d
}t  ||¡|jd    ddgd    d
}t  ||¡|jd    dgddgd    d
}t ||gdd}||jdk|jdk@}tj ||dd|jd    dgddd
}t ||gdd}|dd…}t  ||¡|     dtjdd¡d}tjt|d|jd    dgddgd    d
W5QRXW5QRXdS)Nr€r%rrzkeys must be a list/tupler~zA>0zB>0r[)r'rxrrrDr]z!'No object named df3 in the file'r¼z!'No object named df4 in the file'r_rr=rF)Z
check_freqzindex>df2.index[4]rPri)Znperz,all tables must have exactly the same nrows!)r.rGr…r$rr‚rƒr„r†r>ÚKeyErrorr0r/r rrr )r1r[r]r2rŠrAr3r4r4r5Útest_select_as_multiple÷sz   ÿ ÿÿ  ÿÿ  ÿrÀc    Cs¦t|ƒ”}ttdƒtdƒdœdd}|dd t¡|d<tj|jd<tdd    d
gd d d gdœdddgd}|jd|ddgd|j    ddd}t
  ||¡W5QRXdS)Nr¤rWrZrUrXrrz13.0z14.0z15.0g@g@g@rr7rP)rr!Tr^r\r&) rrrarbrcr*rdrer>r0r.r/)r1r2r!r3rAr4r4r5Útest_nan_selection_bug_4858=s
 þrÁc
Cs~tddddddddgdddd    d
d d d gdœƒ}||jdk}t|ƒ$}|jd|ddd| dd¡}W5QRXt ||¡dS)Nrhrkrjz test & testÚerrrr7rPr¤rºé)rhrjÚtestr"Tr£za = "test & test")rrhrr>r0r.r/)r1r!r3r2rAr4r4r5Ú(test_query_with_nested_special_characterNsþÿ
rÅc    CsÐtddddgiƒ}t|ƒ¬}|jd|dddd    }| dd
|d ›¡}|jsPt‚d }| dd |d ›¡}|jddgdd…f}t ||¡d}| dd|d ›¡}|jdgdd…f}t ||¡W5QRXdS)Nrg~eÍÍAg $eÍÍAg'1eÍÍArÄr"Tr£g©eÍÍAzA < z.4fgÅ eÍÍAzA > rrzA == )    rrr>r0Úemptyrwr?r.r/)r1r!r2ÚcutoffrAr3Úexactr4r4r5Útest_query_long_float_literal\s
 
 rÉc Cstddgtdddddgddgdœd    d
d d gd }t|ƒ¼}|jd|dddtdƒ}|jddd}|jdgdd…f}t ||¡dD]f}ddtdƒt     
dd¡fD]N}d|›d}d|›dt |ƒ›d}    t j t|    d|jd|dW5QRXq¨d}dD]R}
|
›d|›d}|
d
kr$d }    nd!}    t j t|    d|jd|dW5QRXqtd"d#dgd d d
gƒD]†\}}
|
›d|›d}|jd|d}|d$kr°|jd%gdd…f}n2|d&krÐ|jdgdd…f}n|jgdd…f}t ||¡qjqŠW5QRXdS)'Nz
2014-01-01z
2014-01-02rrLgš™™™™™ñ?g333333ó?r)ržÚ    real_dateÚfloatr»ržrÊrËr»r%rÄr"Tr£zreal_date > tsr&)ú<ú>ú==gÍÌÌÌÌÌ@r)zdate z vzCannot compare z     of type z to string columnr~rh)r»rËrÊú z+Given date string "a" not likely a datetimezcould not convert string to Ú1z1.1rÎrrÍ)rr rr>rr0r?r.r/ÚpdZ    TimedeltaÚtyper‚rƒr„r Úzip) r1r!r2rMrAr3ÚoprfÚqueryrŠÚcolr4r4r5Útest_query_compare_column_typersP
ü
ù
 
 
ÿ 
 
r×r'r¹r4)Nc    CsVtdddgƒ}|d}t|ƒ.}| d|d¡t|d|d}t ||¡W5QRXdS)Nrrrzempty_where.h5r!Útr&)rrr-rr.r/)r‡r'r!r‰r2rAr4r4r5Útest_select_empty_where¨s 
rÙ)2ÚwarningsrÚnumpyr*r‚Zpandas._libs.tslibsrZpandasrÑrrrrrr    r.r
r r r rZpandas.tests.io.pytables.commonrrZpandas.io.pytablesrÚmarkZ
single_cpuZ
pytestmarkr6rBrIrgryr‹r—r›rœr¡r§rµr¶r¾rÀrÁrÅrÉr×Z parametrizerÙr4r4r4r5Ú<module>s:  4  >&i0BE17"6;*F6