File tree 2 files changed +15
-23
lines changed
2 files changed +15
-23
lines changed Original file line number Diff line number Diff line change @@ -580,35 +580,26 @@ def __enter__(self):
580
580
def __exit__ (self , exc_type , exc_value , traceback ):
581
581
self .close ()
582
582
583
- def keys (self , kind : Optional [ str ] = "pandas" ) -> List [str ]:
583
+ def keys (self ) -> List [str ]:
584
584
"""
585
585
Return a list of keys corresponding to objects stored in HDFStore.
586
-
587
- Parameters
588
- ----------
589
- kind : str, default 'pandas'
590
- When kind equals 'pandas' return pandas objects
591
- When kind equals 'table' return Table objects
592
- Otherwise fail with a ValueError
586
+ If the store contains pandas native tables, it will return their names.
587
+ Otherwise the list of names of HDF5 Table objects will be returned.
593
588
594
589
Returns
595
590
-------
596
591
list
597
592
List of ABSOLUTE path-names (e.g. have the leading '/').
598
-
599
- Raises
600
- ------
601
- raises ValueError if kind has an illegal value
602
593
"""
603
- if kind == "pandas" :
604
- return [n ._v_pathname for n in self .groups ()]
594
+ # if kind == "pandas":
595
+ objects = [n ._v_pathname for n in self .groups ()]
596
+ if objects :
597
+ return objects
605
598
606
- if kind == "tables" :
607
- self ._check_if_open ()
608
- return [
609
- n ._v_pathname for n in self ._handle .walk_nodes ("/" , classname = "Table" )
610
- ]
611
- raise ValueError (f"`kind` should be either 'pandas' or 'table' but is [{ kind } ]" )
599
+ self ._check_if_open ()
600
+ return [
601
+ n ._v_pathname for n in self ._handle .walk_nodes ("/" , classname = "Table" )
602
+ ]
612
603
613
604
def __iter__ (self ):
614
605
return iter (self .keys ())
Original file line number Diff line number Diff line change @@ -297,6 +297,7 @@ def test_keys(self, setup_path):
297
297
assert set (store ) == expected
298
298
299
299
def test_non_pandas_keys (self , setup_path ):
300
+ # GH 29916
300
301
class Table1 (tables .IsDescription ):
301
302
value1 = tables .Float32Col ()
302
303
@@ -313,10 +314,10 @@ class Table3(tables.IsDescription):
313
314
h5file .create_table (group , "table2" , Table2 , "Table 2" )
314
315
h5file .create_table (group , "table3" , Table3 , "Table 3" )
315
316
with HDFStore (path ) as store :
316
- assert len (store .keys (kind = "tables" )) == 3
317
+ assert len (store .keys ()) == 3
317
318
expected = {"/group/table1" , "/group/table2" , "/group/table3" }
318
- assert set (store .keys (kind = "tables" )) == expected
319
- assert set (store . keys ( kind = "pandas" )) == set ()
319
+ assert set (store .keys ()) == expected
320
+ assert set (store ) == expected
320
321
321
322
def test_keys_ignore_hdf_softlink (self , setup_path ):
322
323
You can’t perform that action at this time.
0 commit comments