@@ -1168,13 +1168,14 @@ def test_append_frame_column_oriented(self):
1168
1168
1169
1169
# selection on the non-indexable
1170
1170
result = store .select (
1171
- 'df1' , ('columns=A' , Term ( 'index=df.index[0:4]' ) ))
1171
+ 'df1' , ('columns=A' , 'index=df.index[0:4]' ))
1172
1172
expected = df .reindex (columns = ['A' ], index = df .index [0 :4 ])
1173
1173
tm .assert_frame_equal (expected , result )
1174
1174
1175
1175
# this isn't supported
1176
- self .assertRaises (TypeError , store .select , 'df1' , (
1177
- 'columns=A' , Term ('index>df.index[4]' )))
1176
+ with pytest .raises (TypeError ):
1177
+ store .select ('df1' ,
1178
+ 'columns=A and index>df.index[4]' )
1178
1179
1179
1180
def test_append_with_different_block_ordering (self ):
1180
1181
@@ -1275,15 +1276,15 @@ def check_indexers(key, indexers):
1275
1276
assert_panel4d_equal (result , expected )
1276
1277
1277
1278
# partial selection2
1278
- result = store .select ('p4d' , [ Term (
1279
- 'labels=l1' ), Term ( ' items=ItemA'), Term ( ' minor_axis=B' )] )
1279
+ result = store .select (
1280
+ 'p4d' , " labels=' l1' and items=' ItemA' and minor_axis='B'" )
1280
1281
expected = p4d .reindex (
1281
1282
labels = ['l1' ], items = ['ItemA' ], minor_axis = ['B' ])
1282
1283
assert_panel4d_equal (result , expected )
1283
1284
1284
1285
# non-existant partial selection
1285
- result = store .select ('p4d' , [ Term (
1286
- 'labels=l1' ), Term ( ' items=Item1'), Term ( ' minor_axis=B' )] )
1286
+ result = store .select (
1287
+ 'p4d' , " labels=' l1' and items=' Item1' and minor_axis='B'" )
1287
1288
expected = p4d .reindex (labels = ['l1' ], items = [],
1288
1289
minor_axis = ['B' ])
1289
1290
assert_panel4d_equal (result , expected )
@@ -1465,13 +1466,13 @@ def test_append_with_data_columns(self):
1465
1466
assert (store ._handle .root .df .table .cols .B .is_indexed is True )
1466
1467
1467
1468
# data column searching
1468
- result = store .select ('df' , [ Term ( 'B>0' )] )
1469
+ result = store .select ('df' , 'B>0' )
1469
1470
expected = df [df .B > 0 ]
1470
1471
tm .assert_frame_equal (result , expected )
1471
1472
1472
1473
# data column searching (with an indexable and a data_columns)
1473
1474
result = store .select (
1474
- 'df' , [ Term ( 'B>0' ), Term ( ' index>df.index[3]')] )
1475
+ 'df' , 'B>0 and index>df.index[3]' )
1475
1476
df_new = df .reindex (index = df .index [4 :])
1476
1477
expected = df_new [df_new .B > 0 ]
1477
1478
tm .assert_frame_equal (result , expected )
@@ -1483,7 +1484,7 @@ def test_append_with_data_columns(self):
1483
1484
df_new .loc [5 :6 , 'string' ] = 'bar'
1484
1485
_maybe_remove (store , 'df' )
1485
1486
store .append ('df' , df_new , data_columns = ['string' ])
1486
- result = store .select ('df' , [ Term ( ' string=foo')] )
1487
+ result = store .select ('df' , " string=' foo'" )
1487
1488
expected = df_new [df_new .string == 'foo' ]
1488
1489
tm .assert_frame_equal (result , expected )
1489
1490
@@ -1536,15 +1537,15 @@ def check_col(key, name, size):
1536
1537
_maybe_remove (store , 'df' )
1537
1538
store .append (
1538
1539
'df' , df_new , data_columns = ['A' , 'B' , 'string' , 'string2' ])
1539
- result = store .select ('df' , [Term ('string=foo' ), Term (
1540
- 'string2=foo' ), Term ('A>0' ), Term ('B<0' )])
1540
+ result = store .select ('df' ,
1541
+ "string='foo' and string2='foo'"
1542
+ " and A>0 and B<0" )
1541
1543
expected = df_new [(df_new .string == 'foo' ) & (
1542
1544
df_new .string2 == 'foo' ) & (df_new .A > 0 ) & (df_new .B < 0 )]
1543
1545
tm .assert_frame_equal (result , expected , check_index_type = False )
1544
1546
1545
1547
# yield an empty frame
1546
- result = store .select ('df' , [Term ('string=foo' ), Term (
1547
- 'string2=cool' )])
1548
+ result = store .select ('df' , "string='foo' and string2='cool'" )
1548
1549
expected = df_new [(df_new .string == 'foo' ) & (
1549
1550
df_new .string2 == 'cool' )]
1550
1551
tm .assert_frame_equal (result , expected , check_index_type = False )
@@ -1564,7 +1565,7 @@ def check_col(key, name, size):
1564
1565
store .append ('df_dc' , df_dc ,
1565
1566
data_columns = ['B' , 'C' , 'string' ,
1566
1567
'string2' , 'datetime' ])
1567
- result = store .select ('df_dc' , [ Term ( 'B>0' )] )
1568
+ result = store .select ('df_dc' , 'B>0' )
1568
1569
1569
1570
expected = df_dc [df_dc .B > 0 ]
1570
1571
tm .assert_frame_equal (result , expected , check_index_type = False )
@@ -1591,7 +1592,7 @@ def check_col(key, name, size):
1591
1592
store .append ('df_dc' , df_dc , data_columns = [
1592
1593
'B' , 'C' , 'string' , 'string2' ])
1593
1594
1594
- result = store .select ('df_dc' , [ Term ( 'B>0' )] )
1595
+ result = store .select ('df_dc' , 'B>0' )
1595
1596
expected = df_dc [df_dc .B > 0 ]
1596
1597
tm .assert_frame_equal (result , expected )
1597
1598
@@ -2259,7 +2260,7 @@ def test_remove_where(self):
2259
2260
with catch_warnings (record = True ):
2260
2261
2261
2262
# non-existance
2262
- crit1 = Term ( 'index>foo' )
2263
+ crit1 = 'index>foo'
2263
2264
self .assertRaises (KeyError , store .remove , 'a' , [crit1 ])
2264
2265
2265
2266
# try to remove non-table (with crit)
@@ -2352,7 +2353,7 @@ def test_remove_startstop(self):
2352
2353
# TODO: unused?
2353
2354
date = wp .major_axis .take (np .arange (0 , 30 , 3 )) # noqa
2354
2355
2355
- crit = Term ( 'major_axis=date' )
2356
+ crit = 'major_axis=date'
2356
2357
store .put ('wp7' , wp , format = 't' )
2357
2358
n = store .remove ('wp7' , where = [crit ], stop = 80 )
2358
2359
self .assertTrue (n == 28 )
@@ -2371,7 +2372,7 @@ def test_remove_crit(self):
2371
2372
# group row removal
2372
2373
_maybe_remove (store , 'wp3' )
2373
2374
date4 = wp .major_axis .take ([0 , 1 , 2 , 4 , 5 , 6 , 8 , 9 , 10 ])
2374
- crit4 = Term ( 'major_axis=date4' )
2375
+ crit4 = 'major_axis=date4'
2375
2376
store .put ('wp3' , wp , format = 't' )
2376
2377
n = store .remove ('wp3' , where = [crit4 ])
2377
2378
self .assertTrue (n == 36 )
@@ -2386,8 +2387,8 @@ def test_remove_crit(self):
2386
2387
store .put ('wp' , wp , format = 'table' )
2387
2388
date = wp .major_axis [len (wp .major_axis ) // 2 ]
2388
2389
2389
- crit1 = Term ( 'major_axis>date' )
2390
- crit2 = Term ( "minor_axis=['A', 'D']" )
2390
+ crit1 = 'major_axis>date'
2391
+ crit2 = "minor_axis=['A', 'D']"
2391
2392
n = store .remove ('wp' , where = [crit1 ])
2392
2393
self .assertTrue (n == 56 )
2393
2394
@@ -2403,15 +2404,15 @@ def test_remove_crit(self):
2403
2404
store .put ('wp2' , wp , format = 'table' )
2404
2405
2405
2406
date1 = wp .major_axis [1 :3 ]
2406
- crit1 = Term ( 'major_axis=date1' )
2407
+ crit1 = 'major_axis=date1'
2407
2408
store .remove ('wp2' , where = [crit1 ])
2408
2409
result = store .select ('wp2' )
2409
2410
expected = wp .reindex (
2410
2411
major_axis = wp .major_axis .difference (date1 ))
2411
2412
assert_panel_equal (result , expected )
2412
2413
2413
2414
date2 = wp .major_axis [5 ]
2414
- crit2 = Term ( 'major_axis=date2' )
2415
+ crit2 = 'major_axis=date2'
2415
2416
store .remove ('wp2' , where = [crit2 ])
2416
2417
result = store ['wp2' ]
2417
2418
expected = wp .reindex (
@@ -2422,7 +2423,7 @@ def test_remove_crit(self):
2422
2423
assert_panel_equal (result , expected )
2423
2424
2424
2425
date3 = [wp .major_axis [7 ], wp .major_axis [9 ]]
2425
- crit3 = Term ( 'major_axis=date3' )
2426
+ crit3 = 'major_axis=date3'
2426
2427
store .remove ('wp2' , where = [crit3 ])
2427
2428
result = store ['wp2' ]
2428
2429
expected = wp .reindex (major_axis = wp .major_axis
@@ -2435,7 +2436,7 @@ def test_remove_crit(self):
2435
2436
_maybe_remove (store , 'wp4' )
2436
2437
store .put ('wp4' , wp , format = 'table' )
2437
2438
n = store .remove (
2438
- 'wp4' , where = [ Term ( ' major_axis>wp.major_axis[-1]' )] )
2439
+ 'wp4' , where = " major_axis>wp.major_axis[-1]" )
2439
2440
result = store .select ('wp4' )
2440
2441
assert_panel_equal (result , wp )
2441
2442
@@ -2508,8 +2509,9 @@ def test_terms(self):
2508
2509
store .put ('wpneg' , wpneg , format = 'table' )
2509
2510
2510
2511
# panel
2511
- result = store .select ('wp' , [Term (
2512
- 'major_axis<"20000108"' ), Term ("minor_axis=['A', 'B']" )])
2512
+ result = store .select (
2513
+ 'wp' ,
2514
+ "major_axis<'20000108' and minor_axis=['A', 'B']" )
2513
2515
expected = wp .truncate (
2514
2516
after = '20000108' ).reindex (minor = ['A' , 'B' ])
2515
2517
assert_panel_equal (result , expected )
@@ -2555,27 +2557,25 @@ def test_terms(self):
2555
2557
store .select ('p4d' , t )
2556
2558
2557
2559
# valid for p4d only
2558
- terms = [(("labels=['l1', 'l2']" ),),
2559
- Term ("labels=['l1', 'l2']" ),
2560
- ]
2561
-
2560
+ terms = ["labels=['l1', 'l2']" ]
2562
2561
for t in terms :
2563
2562
store .select ('p4d' , t )
2564
2563
2565
- with tm .assertRaisesRegexp (TypeError ,
2566
- 'Only named functions are supported' ):
2567
- store .select ('wp' , Term (
2568
- 'major_axis == (lambda x: x)("20130101")' ))
2564
+ with tm .assertRaisesRegexp (
2565
+ TypeError , 'Only named functions are supported' ):
2566
+ store .select (
2567
+ 'wp' ,
2568
+ 'major_axis == (lambda x: x)("20130101")' )
2569
2569
2570
2570
with catch_warnings (record = True ):
2571
2571
# check USub node parsing
2572
- res = store .select ('wpneg' , Term ( 'items == -1' ) )
2572
+ res = store .select ('wpneg' , 'items == -1' )
2573
2573
expected = Panel ({- 1 : wpneg [- 1 ]})
2574
2574
tm .assert_panel_equal (res , expected )
2575
2575
2576
2576
with tm .assertRaisesRegexp (NotImplementedError ,
2577
2577
'Unary addition not supported' ):
2578
- store .select ('wpneg' , Term ( 'items == +1' ) )
2578
+ store .select ('wpneg' , 'items == +1' )
2579
2579
2580
2580
def test_term_compat (self ):
2581
2581
with ensure_clean_store (self .path ) as store :
@@ -2593,7 +2593,7 @@ def test_term_compat(self):
2593
2593
Timestamp ('20000102' ), ['A' , 'B' ]]
2594
2594
assert_panel_equal (result , expected )
2595
2595
2596
- store .remove ('wp' , Term ( 'major_axis>20000103' ) )
2596
+ store .remove ('wp' , 'major_axis>20000103' )
2597
2597
result = store .select ('wp' )
2598
2598
expected = wp .loc [:, wp .major_axis <= Timestamp ('20000103' ), :]
2599
2599
assert_panel_equal (result , expected )
@@ -2609,27 +2609,25 @@ def test_term_compat(self):
2609
2609
2610
2610
# stringified datetimes
2611
2611
result = store .select (
2612
- 'wp' , [Term ('major_axis' , '>' ,
2613
- datetime .datetime (2000 , 1 , 2 ))])
2612
+ 'wp' , 'major_axis>datetime.datetime(2000, 1, 2)' )
2614
2613
expected = wp .loc [:, wp .major_axis > Timestamp ('20000102' )]
2615
2614
assert_panel_equal (result , expected )
2616
2615
2617
2616
result = store .select (
2618
- 'wp' , [Term ('major_axis' , '>' ,
2619
- datetime .datetime (2000 , 1 , 2 , 0 , 0 ))])
2617
+ 'wp' , 'major_axis>datetime.datetime(2000, 1, 2)' )
2620
2618
expected = wp .loc [:, wp .major_axis > Timestamp ('20000102' )]
2621
2619
assert_panel_equal (result , expected )
2622
2620
2623
2621
result = store .select (
2624
- 'wp' , [ Term ( 'major_axis' , '=' ,
2625
- [datetime .datetime (2000 , 1 , 2 , 0 , 0 ),
2626
- datetime .datetime (2000 , 1 , 3 , 0 , 0 )])] )
2622
+ 'wp' ,
2623
+ "major_axis= [datetime.datetime(2000, 1, 2, 0, 0), "
2624
+ " datetime.datetime(2000, 1, 3, 0, 0)]" )
2627
2625
expected = wp .loc [:, [Timestamp ('20000102' ),
2628
2626
Timestamp ('20000103' )]]
2629
2627
assert_panel_equal (result , expected )
2630
2628
2631
2629
result = store .select (
2632
- 'wp' , [ Term ( ' minor_axis' , '=' , ['A' , 'B' ])] )
2630
+ 'wp' , " minor_axis= ['A', 'B']" )
2633
2631
expected = wp .loc [:, :, ['A' , 'B' ]]
2634
2632
assert_panel_equal (result , expected )
2635
2633
@@ -3091,7 +3089,7 @@ def test_select(self):
3091
3089
_maybe_remove (store , 'wp' )
3092
3090
store .append ('wp' , wp )
3093
3091
items = ['Item%03d' % i for i in range (80 )]
3094
- result = store .select ('wp' , Term ( 'items=items' ) )
3092
+ result = store .select ('wp' , 'items=items' )
3095
3093
expected = wp .reindex (items = items )
3096
3094
assert_panel_equal (expected , result )
3097
3095
@@ -3143,7 +3141,7 @@ def test_select_dtypes(self):
3143
3141
_maybe_remove (store , 'df' )
3144
3142
store .append ('df' , df , data_columns = ['ts' , 'A' ])
3145
3143
3146
- result = store .select ('df' , [ Term ( "ts>=Timestamp('2012-02-01')" )] )
3144
+ result = store .select ('df' , "ts>=Timestamp('2012-02-01')" )
3147
3145
expected = df [df .ts >= Timestamp ('2012-02-01' )]
3148
3146
tm .assert_frame_equal (expected , result )
3149
3147
@@ -3158,23 +3156,23 @@ def test_select_dtypes(self):
3158
3156
expected = (df [df .boolv == True ] # noqa
3159
3157
.reindex (columns = ['A' , 'boolv' ]))
3160
3158
for v in [True , 'true' , 1 ]:
3161
- result = store .select ('df' , Term (
3162
- 'boolv == %s' % str ( v )), columns = ['A' , 'boolv' ])
3159
+ result = store .select ('df' , 'boolv == %s' % str ( v ),
3160
+ columns = ['A' , 'boolv' ])
3163
3161
tm .assert_frame_equal (expected , result )
3164
3162
3165
3163
expected = (df [df .boolv == False ] # noqa
3166
3164
.reindex (columns = ['A' , 'boolv' ]))
3167
3165
for v in [False , 'false' , 0 ]:
3168
- result = store .select ('df' , Term (
3169
- 'boolv == %s' % str (v ) ), columns = ['A' , 'boolv' ])
3166
+ result = store .select (
3167
+ 'df' , ' boolv == %s' % str (v ), columns = ['A' , 'boolv' ])
3170
3168
tm .assert_frame_equal (expected , result )
3171
3169
3172
3170
# integer index
3173
3171
df = DataFrame (dict (A = np .random .rand (20 ), B = np .random .rand (20 )))
3174
3172
_maybe_remove (store , 'df_int' )
3175
3173
store .append ('df_int' , df )
3176
3174
result = store .select (
3177
- 'df_int' , [ Term ( "index<10" ), Term ( " columns=['A']")] )
3175
+ 'df_int' , "index<10 and columns=['A']" )
3178
3176
expected = df .reindex (index = list (df .index )[0 :10 ], columns = ['A' ])
3179
3177
tm .assert_frame_equal (expected , result )
3180
3178
@@ -3184,7 +3182,7 @@ def test_select_dtypes(self):
3184
3182
_maybe_remove (store , 'df_float' )
3185
3183
store .append ('df_float' , df )
3186
3184
result = store .select (
3187
- 'df_float' , [ Term ( "index<10.0" ), Term ( " columns=['A']")] )
3185
+ 'df_float' , "index<10.0 and columns=['A']" )
3188
3186
expected = df .reindex (index = list (df .index )[0 :10 ], columns = ['A' ])
3189
3187
tm .assert_frame_equal (expected , result )
3190
3188
@@ -3255,36 +3253,36 @@ def test_select_with_many_inputs(self):
3255
3253
store .append ('df' , df , data_columns = ['ts' , 'A' , 'B' , 'users' ])
3256
3254
3257
3255
# regular select
3258
- result = store .select ('df' , [ Term ( "ts>=Timestamp('2012-02-01')" )] )
3256
+ result = store .select ('df' , "ts>=Timestamp('2012-02-01')" )
3259
3257
expected = df [df .ts >= Timestamp ('2012-02-01' )]
3260
3258
tm .assert_frame_equal (expected , result )
3261
3259
3262
3260
# small selector
3263
3261
result = store .select (
3264
- 'df' , [ Term ( "ts>=Timestamp('2012-02-01') & "
3265
- " users=['a','b','c']")] )
3262
+ 'df' ,
3263
+ "ts>=Timestamp('2012-02-01') & users=['a','b','c']" )
3266
3264
expected = df [(df .ts >= Timestamp ('2012-02-01' )) &
3267
3265
df .users .isin (['a' , 'b' , 'c' ])]
3268
3266
tm .assert_frame_equal (expected , result )
3269
3267
3270
3268
# big selector along the columns
3271
3269
selector = ['a' , 'b' , 'c' ] + ['a%03d' % i for i in range (60 )]
3272
3270
result = store .select (
3273
- 'df' , [ Term ( "ts>=Timestamp('2012-02-01')" ),
3274
- Term ( ' users=selector' )] )
3271
+ 'df' ,
3272
+ "ts>=Timestamp('2012-02-01') and users=selector" )
3275
3273
expected = df [(df .ts >= Timestamp ('2012-02-01' )) &
3276
3274
df .users .isin (selector )]
3277
3275
tm .assert_frame_equal (expected , result )
3278
3276
3279
3277
selector = range (100 , 200 )
3280
- result = store .select ('df' , [ Term ( 'B=selector' )] )
3278
+ result = store .select ('df' , 'B=selector' )
3281
3279
expected = df [df .B .isin (selector )]
3282
3280
tm .assert_frame_equal (expected , result )
3283
3281
self .assertEqual (len (result ), 100 )
3284
3282
3285
3283
# big selector along the index
3286
3284
selector = Index (df .ts [0 :100 ].values )
3287
- result = store .select ('df' , [ Term ( 'ts=selector' )] )
3285
+ result = store .select ('df' , 'ts=selector' )
3288
3286
expected = df [df .ts .isin (selector .values )]
3289
3287
tm .assert_frame_equal (expected , result )
3290
3288
self .assertEqual (len (result ), 100 )
@@ -3355,17 +3353,6 @@ def test_select_iterator(self):
3355
3353
result = concat (results )
3356
3354
tm .assert_frame_equal (expected , result )
3357
3355
3358
- # where selection
3359
- # expected = store.select_as_multiple(
3360
- # ['df1', 'df2'], where= Term('A>0'), selector='df1')
3361
- # results = []
3362
- # for s in store.select_as_multiple(
3363
- # ['df1', 'df2'], where= Term('A>0'), selector='df1',
3364
- # chunksize=25):
3365
- # results.append(s)
3366
- # result = concat(results)
3367
- # tm.assert_frame_equal(expected, result)
3368
-
3369
3356
def test_select_iterator_complete_8014 (self ):
3370
3357
3371
3358
# GH 8014
@@ -3682,7 +3669,7 @@ def test_frame_select(self):
3682
3669
df = tm .makeTimeDataFrame ()
3683
3670
store .append ('df_time' , df )
3684
3671
self .assertRaises (
3685
- ValueError , store .select , 'df_time' , [ Term ( "index>0" )] )
3672
+ ValueError , store .select , 'df_time' , "index>0" )
3686
3673
3687
3674
# can't select if not written as table
3688
3675
# store['frame'] = df
0 commit comments