@@ -258,7 +258,7 @@ def _tables():
258258 try :
259259 _table_file_open_policy_is_strict = (
260260 tables .file ._FILE_OPEN_POLICY == 'strict' )
261- except :
261+ except AttributeError :
262262 pass
263263
264264 return _table_mod
@@ -395,11 +395,11 @@ def read_hdf(path_or_buf, key=None, mode='r', **kwargs):
395395 'contains multiple datasets.' )
396396 key = candidate_only_group ._v_pathname
397397 return store .select (key , auto_close = auto_close , ** kwargs )
398- except :
398+ except ( ValueError , TypeError ) :
399399 # if there is an error, close the store
400400 try :
401401 store .close ()
402- except :
402+ except AttributeError :
403403 pass
404404
405405 raise
@@ -517,7 +517,7 @@ def __getattr__(self, name):
517517 """ allow attribute access to get stores """
518518 try :
519519 return self .get (name )
520- except :
520+ except ( KeyError , ClosedFileError ) :
521521 pass
522522 raise AttributeError ("'%s' object has no attribute '%s'" %
523523 (type (self ).__name__ , name ))
@@ -675,7 +675,7 @@ def flush(self, fsync=False):
675675 if fsync :
676676 try :
677677 os .fsync (self ._handle .fileno ())
678- except :
678+ except OSError :
679679 pass
680680
681681 def get (self , key ):
@@ -1161,7 +1161,7 @@ def get_node(self, key):
11611161 if not key .startswith ('/' ):
11621162 key = '/' + key
11631163 return self ._handle .get_node (self .root , key )
1164- except :
1164+ except _table_mod . exceptions . NoSuchNodeError :
11651165 return None
11661166
11671167 def get_storer (self , key ):
@@ -1270,7 +1270,7 @@ def _validate_format(self, format, kwargs):
12701270 # validate
12711271 try :
12721272 kwargs ['format' ] = _FORMAT_MAP [format .lower ()]
1273- except :
1273+ except KeyError :
12741274 raise TypeError ("invalid HDFStore format specified [{0}]"
12751275 .format (format ))
12761276
@@ -1307,7 +1307,7 @@ def error(t):
13071307
13081308 try :
13091309 pt = _TYPE_MAP [type (value )]
1310- except :
1310+ except KeyError :
13111311 error ('_TYPE_MAP' )
13121312
13131313 # we are actually a table
@@ -1318,7 +1318,7 @@ def error(t):
13181318 if u ('table' ) not in pt :
13191319 try :
13201320 return globals ()[_STORER_MAP [pt ]](self , group , ** kwargs )
1321- except :
1321+ except KeyError :
13221322 error ('_STORER_MAP' )
13231323
13241324 # existing node (and must be a table)
@@ -1354,12 +1354,12 @@ def error(t):
13541354 fields = group .table ._v_attrs .fields
13551355 if len (fields ) == 1 and fields [0 ] == u ('value' ):
13561356 tt = u ('legacy_frame' )
1357- except :
1357+ except IndexError :
13581358 pass
13591359
13601360 try :
13611361 return globals ()[_TABLE_MAP [tt ]](self , group , ** kwargs )
1362- except :
1362+ except KeyError :
13631363 error ('_TABLE_MAP' )
13641364
13651365 def _write_to_group (self , key , value , format , index = True , append = False ,
@@ -1624,7 +1624,7 @@ def is_indexed(self):
16241624 """ return whether I am an indexed column """
16251625 try :
16261626 return getattr (self .table .cols , self .cname ).is_indexed
1627- except :
1627+ except AttributeError :
16281628 False
16291629
16301630 def copy (self ):
@@ -1654,9 +1654,10 @@ def convert(self, values, nan_rep, encoding, errors):
16541654 kwargs ['freq' ] = _ensure_decoded (self .freq )
16551655 if self .index_name is not None :
16561656 kwargs ['name' ] = _ensure_decoded (self .index_name )
1657+ # making an Index instance could throw a number of different errors
16571658 try :
16581659 self .values = Index (values , ** kwargs )
1659- except :
1660+ except Exception : # noqa: E722
16601661
16611662 # if the output freq is different that what we recorded,
16621663 # it should be None (see also 'doc example part 2')
@@ -1869,7 +1870,7 @@ def create_for_block(
18691870 m = re .search (r"values_block_(\d+)" , name )
18701871 if m :
18711872 name = "values_%s" % m .groups ()[0 ]
1872- except :
1873+ except IndexError :
18731874 pass
18741875
18751876 return cls (name = name , cname = cname , ** kwargs )
@@ -2232,7 +2233,7 @@ def convert(self, values, nan_rep, encoding, errors):
22322233
22332234 try :
22342235 self .data = self .data .astype (dtype , copy = False )
2235- except :
2236+ except TypeError :
22362237 self .data = self .data .astype ('O' , copy = False )
22372238
22382239 # convert nans / decode
@@ -2325,7 +2326,7 @@ def set_version(self):
23252326 self .version = tuple (int (x ) for x in version .split ('.' ))
23262327 if len (self .version ) == 2 :
23272328 self .version = self .version + (0 ,)
2328- except :
2329+ except AttributeError :
23292330 self .version = (0 , 0 , 0 )
23302331
23312332 @property
@@ -2769,7 +2770,7 @@ def write_array(self, key, value, items=None):
27692770 else :
27702771 try :
27712772 items = list (items )
2772- except :
2773+ except TypeError :
27732774 pass
27742775 ws = performance_doc % (inferred_type , key , items )
27752776 warnings .warn (ws , PerformanceWarning , stacklevel = 7 )
@@ -2843,7 +2844,7 @@ class SeriesFixed(GenericFixed):
28432844 def shape (self ):
28442845 try :
28452846 return len (getattr (self .group , 'values' )),
2846- except :
2847+ except ( TypeError , AttributeError ) :
28472848 return None
28482849
28492850 def read (self , ** kwargs ):
@@ -2961,7 +2962,7 @@ def shape(self):
29612962 shape = shape [::- 1 ]
29622963
29632964 return shape
2964- except :
2965+ except AttributeError :
29652966 return None
29662967
29672968 def read (self , start = None , stop = None , ** kwargs ):
@@ -3495,7 +3496,7 @@ def create_axes(self, axes, obj, validate=True, nan_rep=None,
34953496 if axes is None :
34963497 try :
34973498 axes = _AXES_MAP [type (obj )]
3498- except :
3499+ except KeyError :
34993500 raise TypeError ("cannot properly create the storer for: "
35003501 "[group->%s,value->%s]"
35013502 % (self .group ._v_name , type (obj )))
@@ -3614,7 +3615,7 @@ def get_blk_items(mgr, blocks):
36143615 b , b_items = by_items .pop (items )
36153616 new_blocks .append (b )
36163617 new_blk_items .append (b_items )
3617- except :
3618+ except ( IndexError , KeyError ) :
36183619 raise ValueError (
36193620 "cannot match existing table structure for [%s] on "
36203621 "appending data" % ',' .join (pprint_thing (item ) for
@@ -3642,7 +3643,7 @@ def get_blk_items(mgr, blocks):
36423643 if existing_table is not None and validate :
36433644 try :
36443645 existing_col = existing_table .values_axes [i ]
3645- except :
3646+ except ( IndexError , KeyError ) :
36463647 raise ValueError ("Incompatible appended table [%s] with "
36473648 "existing table [%s]"
36483649 % (blocks , existing_table .values_axes ))
@@ -4460,7 +4461,7 @@ def _get_info(info, name):
44604461 """ get/create the info for this name """
44614462 try :
44624463 idx = info [name ]
4463- except :
4464+ except KeyError :
44644465 idx = info [name ] = dict ()
44654466 return idx
44664467
@@ -4782,7 +4783,7 @@ def __init__(self, table, where=None, start=None, stop=None, **kwargs):
47824783 )
47834784 self .coordinates = where
47844785
4785- except :
4786+ except ValueError :
47864787 pass
47874788
47884789 if self .coordinates is None :
0 commit comments