Changeset 1343:67c0a2030d8c in orange-bioinformatics


Ignore:
Timestamp:
03/09/11 18:10:40 (3 years ago)
Author:
ales_erjavec <ales.erjavec@…>
Branch:
default
Convert:
204fde1814ed2e9e29c869bbb2867d08fa14b67e
Message:

Improved ftplib.error_temp handling (waiting 3 seconds before retrying).
Display an error in the GEO Datasets widget after 3 retrys.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • obiData.py

    r1339 r1343  
    125125                if retryCount >= 3: 
    126126                    raise 
     127                else: 
     128                    time.sleep(3) 
    127129            except socket.error: 
    128130                if retryCount >= 3: 
  • widgets/OWGEODatasets.py

    r1272 r1343  
    336336            
    337337    def commit(self): 
    338         if self.currentGds:  
     338        if self.currentGds: 
     339            self.error(0)  
    339340            sample_type = None 
    340341            self.progressBarInit() 
     
    351352                                           transpose=self.outputRows, 
    352353                                           sample_type=sample_type if sample_type!="Include all" else None), 
    353                                   onResult=self.onData, onFinished=lambda: self.setEnabled(True), 
     354                                  onResult=self.onData, 
     355                                  onFinished=lambda: self.setEnabled(True), 
     356                                  onError=self.onAsyncError, 
    354357                                  threadPool=QThreadPool.globalInstance() 
    355358                                 ) 
    356359            call.__call__() #invoke 
    357360#            data = gds.getdata(report_genes=self.mergeSpots, transpose=self.outputRows, sample_type=sample_type if sample_type!="Include all" else None) 
     361 
     362    def onAsyncError(self, (exctype, value, tb)): 
     363        import ftplib 
     364        if issubclass(exctype, ftplib.error_temp): 
     365            self.error(0, "Can not download dataset from NCBI ftp server! Try again later.") 
     366        elif issubclass(exctype, ftplib.all_errors): 
     367            self.error(0, "Error while connecting to the NCBI ftp server! %s" % str(value)) 
     368        else: 
     369            sys.excepthook(exctype, value, tb) 
     370             
     371        self.progressBarFinished() 
     372 
    358373    def onData(self, data): 
    359374        self.progressBarSet(50) 
Note: See TracChangeset for help on using the changeset viewer.