@@ -257,29 +257,36 @@ def browse_file(self, in_demos=False):
257257
258258 # Open a file, create data from it and send it over the data channel
259259 def load_data (self ):
260+ # We need to catch any exception type since anything can happen in
261+ # file readers
262+ # pylint: disable=broad-except
260263 self .editor_model .set_domain (None )
261- self .reader = self ._get_reader ()
262- if not self .reader :
263- self .data = None
264- self .send ("Data" , None )
265- self .info .setText ("No data." )
266- return
267- self ._update_sheet_combo ()
268264
269- errors = []
270- with catch_warnings (record = True ) as warnings :
271- try :
272- data = self .reader .read ()
273- except Exception as ex :
274- errors .append ("An error occurred:" )
275- errors .append (str (ex ))
276- data = None
277- self .editor_model .reset ()
278- self .warning (warnings [- 1 ].message .args [0 ] if warnings else '' )
279-
280- if data is None :
265+ error = None
266+ try :
267+ self .reader = self ._get_reader ()
268+ if self .reader is None :
269+ self .send ("Data" , None )
270+ self .info .setText ("No data." )
271+ self .sheet_box .hide ()
272+ return
273+ except Exception as ex :
274+ error = ex
275+
276+ if not error :
277+ self ._update_sheet_combo ()
278+ with catch_warnings (record = True ) as warnings :
279+ try :
280+ data = self .reader .read ()
281+ except Exception as ex :
282+ error = ex
283+ self .warning (warnings [- 1 ].message .args [0 ] if warnings else '' )
284+
285+ if error :
281286 self .send ("Data" , None )
282- self .info .setText ("\n " .join (errors ))
287+ self .info .setText ("An error occurred:\n {}" .format (error ))
288+ self .editor_model .reset ()
289+ self .sheet_box .hide ()
283290 return
284291
285292 self .info .setText (self ._describe (data ))
0 commit comments