@@ -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 ):
@@ -1156,12 +1156,13 @@ def walk(self, where="/"):
11561156
11571157 def get_node (self , key ):
11581158 """ return the node with the key or None if it does not exist """
1159+ import tables
11591160 self ._check_if_open ()
11601161 try :
11611162 if not key .startswith ('/' ):
11621163 key = '/' + key
11631164 return self ._handle .get_node (self .root , key )
1164- except :
1165+ except tables . exceptions . NoSuchNodeError :
11651166 return None
11661167
11671168 def get_storer (self , key ):
@@ -1270,7 +1271,7 @@ def _validate_format(self, format, kwargs):
12701271 # validate
12711272 try :
12721273 kwargs ['format' ] = _FORMAT_MAP [format .lower ()]
1273- except :
1274+ except KeyError :
12741275 raise TypeError ("invalid HDFStore format specified [{0}]"
12751276 .format (format ))
12761277
@@ -1307,7 +1308,7 @@ def error(t):
13071308
13081309 try :
13091310 pt = _TYPE_MAP [type (value )]
1310- except :
1311+ except KeyError :
13111312 error ('_TYPE_MAP' )
13121313
13131314 # we are actually a table
@@ -1318,7 +1319,7 @@ def error(t):
13181319 if u ('table' ) not in pt :
13191320 try :
13201321 return globals ()[_STORER_MAP [pt ]](self , group , ** kwargs )
1321- except :
1322+ except KeyError :
13221323 error ('_STORER_MAP' )
13231324
13241325 # existing node (and must be a table)
@@ -1354,12 +1355,12 @@ def error(t):
13541355 fields = group .table ._v_attrs .fields
13551356 if len (fields ) == 1 and fields [0 ] == u ('value' ):
13561357 tt = u ('legacy_frame' )
1357- except :
1358+ except IndexError :
13581359 pass
13591360
13601361 try :
13611362 return globals ()[_TABLE_MAP [tt ]](self , group , ** kwargs )
1362- except :
1363+ except KeyError :
13631364 error ('_TABLE_MAP' )
13641365
13651366 def _write_to_group (self , key , value , format , index = True , append = False ,
@@ -1624,7 +1625,7 @@ def is_indexed(self):
16241625 """ return whether I am an indexed column """
16251626 try :
16261627 return getattr (self .table .cols , self .cname ).is_indexed
1627- except :
1628+ except AttributeError :
16281629 False
16291630
16301631 def copy (self ):
@@ -1656,7 +1657,8 @@ def convert(self, values, nan_rep, encoding, errors):
16561657 kwargs ['name' ] = _ensure_decoded (self .index_name )
16571658 try :
16581659 self .values = Index (values , ** kwargs )
1659- except :
1660+ except (AttributeError , OverflowError , KeyError , IndexError ,
1661+ TypeError , ValueError ):
16601662
16611663 # if the output freq is different that what we recorded,
16621664 # it should be None (see also 'doc example part 2')
@@ -1869,7 +1871,7 @@ def create_for_block(
18691871 m = re .search (r"values_block_(\d+)" , name )
18701872 if m :
18711873 name = "values_%s" % m .groups ()[0 ]
1872- except :
1874+ except IndexError :
18731875 pass
18741876
18751877 return cls (name = name , cname = cname , ** kwargs )
@@ -2232,7 +2234,7 @@ def convert(self, values, nan_rep, encoding, errors):
22322234
22332235 try :
22342236 self .data = self .data .astype (dtype , copy = False )
2235- except :
2237+ except TypeError :
22362238 self .data = self .data .astype ('O' , copy = False )
22372239
22382240 # convert nans / decode
@@ -2325,7 +2327,7 @@ def set_version(self):
23252327 self .version = tuple (int (x ) for x in version .split ('.' ))
23262328 if len (self .version ) == 2 :
23272329 self .version = self .version + (0 ,)
2328- except :
2330+ except AttributeError :
23292331 self .version = (0 , 0 , 0 )
23302332
23312333 @property
@@ -2769,7 +2771,7 @@ def write_array(self, key, value, items=None):
27692771 else :
27702772 try :
27712773 items = list (items )
2772- except :
2774+ except TypeError :
27732775 pass
27742776 ws = performance_doc % (inferred_type , key , items )
27752777 warnings .warn (ws , PerformanceWarning , stacklevel = 7 )
@@ -2843,7 +2845,7 @@ class SeriesFixed(GenericFixed):
28432845 def shape (self ):
28442846 try :
28452847 return len (getattr (self .group , 'values' )),
2846- except :
2848+ except ( TypeError , AttributeError ) :
28472849 return None
28482850
28492851 def read (self , ** kwargs ):
@@ -2961,7 +2963,7 @@ def shape(self):
29612963 shape = shape [::- 1 ]
29622964
29632965 return shape
2964- except :
2966+ except AttributeError :
29652967 return None
29662968
29672969 def read (self , start = None , stop = None , ** kwargs ):
@@ -3495,7 +3497,7 @@ def create_axes(self, axes, obj, validate=True, nan_rep=None,
34953497 if axes is None :
34963498 try :
34973499 axes = _AXES_MAP [type (obj )]
3498- except :
3500+ except KeyError :
34993501 raise TypeError ("cannot properly create the storer for: "
35003502 "[group->%s,value->%s]"
35013503 % (self .group ._v_name , type (obj )))
@@ -3614,7 +3616,7 @@ def get_blk_items(mgr, blocks):
36143616 b , b_items = by_items .pop (items )
36153617 new_blocks .append (b )
36163618 new_blk_items .append (b_items )
3617- except :
3619+ except ( IndexError , KeyError ) :
36183620 raise ValueError (
36193621 "cannot match existing table structure for [%s] on "
36203622 "appending data" % ',' .join (pprint_thing (item ) for
@@ -3642,7 +3644,7 @@ def get_blk_items(mgr, blocks):
36423644 if existing_table is not None and validate :
36433645 try :
36443646 existing_col = existing_table .values_axes [i ]
3645- except :
3647+ except ( IndexError , KeyError ) :
36463648 raise ValueError ("Incompatible appended table [%s] with "
36473649 "existing table [%s]"
36483650 % (blocks , existing_table .values_axes ))
@@ -4460,7 +4462,7 @@ def _get_info(info, name):
44604462 """ get/create the info for this name """
44614463 try :
44624464 idx = info [name ]
4463- except :
4465+ except KeyError :
44644466 idx = info [name ] = dict ()
44654467 return idx
44664468
@@ -4782,7 +4784,7 @@ def __init__(self, table, where=None, start=None, stop=None, **kwargs):
47824784 )
47834785 self .coordinates = where
47844786
4785- except :
4787+ except ValueError :
47864788 pass
47874789
47884790 if self .coordinates is None :
0 commit comments