Changeset 4004:f06869e31873 in orange


Ignore:
Timestamp:
07/19/07 16:00:10 (7 years ago)
Author:
janezd <janez.demsar@…>
Branch:
default
Convert:
2c9405704ef3200c645e9d0cec5d9d1c49beb2ff
Message:
  • added basket files
  • added warning for unrecognized format
File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Data/OWFile.py

    r3563 r4004  
    3030    def activateLoadedSettings(self): 
    3131        # remove missing data set names 
    32         self.recentFiles=filter(os.path.exists,self.recentFiles) 
     32        self.recentFiles=filter(os.path.exists, self.recentFiles) 
    3333        self.setFileList() 
    3434 
     
    4040 
    4141    # user selected a file from the combo box 
    42     def selectFile(self,n): 
     42    def selectFile(self, n): 
    4343        if n < len(self.recentFiles) : 
    4444            name = self.recentFiles[n] 
     
    9494 
    9595        filename = str(QFileDialog.getOpenFileName(startfile, 
    96         'Tab-delimited files (*.tab *.txt)\nC4.5 files (*.data)\nAssistant files (*.dat)\nRetis files (*.rda *.rdo)\nAll files(*.*)', 
     96        'Tab-delimited files (*.tab *.txt)\nC4.5 files (*.data)\nAssistant files (*.dat)\nRetis files (*.rda *.rdo)\nBasket files (*.basket)\nAll files(*.*)', 
    9797        None,'Open Orange Data File')) 
    9898 
     
    124124            fileExt=lower(os.path.splitext(fn)[1]) 
    125125            argdict = {"dontCheckStored": dontCheckStored, "use": self.domain} 
    126             if fileExt in (".txt",".tab",".xls"): 
    127                 preloader, loader = orange.ExampleGenerator, orange.ExampleTable 
    128                 if DK: 
    129                     argdict["DK"] = DK 
    130                 if DC: 
    131                     argdict["DC"] = DC 
    132             elif fileExt in (".c45",): 
    133                 preloader = loader = orange.C45ExampleGenerator 
    134             else: 
    135                 return 
    136  
    137             if dontCheckStored: 
    138                 data = loader(fn, **argdict) 
    139             else: 
    140                 # Load; if the domain is the same and there is no other file widget which 
    141                 # uses any of the same attributes like this one, reload 
    142                 # If the loader for a particular format cannot load the examle generator 
    143                 # (i.e. if it always returns an example table), the data is loaded twice. 
    144                 data = preloader(fn, **argdict) 
    145                 if oldDomain == data.domain and not self.attributesOverlap(data.domain): 
    146                     argdict["dontCheckStored"] = 1 
     126            if fileExt == ".basket": 
     127                data = orange.ExampleTable(fn, **argdict) 
     128            else: 
     129                if fileExt in (".txt",".tab",".xls"): 
     130                    preloader, loader = orange.ExampleGenerator, orange.ExampleTable 
     131                    if DK: 
     132                        argdict["DK"] = DK 
     133                    if DC: 
     134                        argdict["DC"] = DC 
     135                elif fileExt in (".c45",): 
     136                    preloader = loader = orange.C45ExampleGenerator 
     137                else: 
     138                    self.error("Unrecognized file format") 
     139                    self.send("Examples", None) 
     140                    self.send("Attribute Definitions", None) 
     141                    return 
     142     
     143                if dontCheckStored: 
    147144                    data = loader(fn, **argdict) 
    148                 elif not isinstance(data, orange.ExampleTable): 
    149                     data = loader(fn, **argdict) 
    150  
     145                else: 
     146                    # Load; if the domain is the same and there is no other file widget which 
     147                    # uses any of the same attributes like this one, reload 
     148                    # If the loader for a particular format cannot load the examle generator 
     149                    # (i.e. if it always returns an example table), the data is loaded twice. 
     150                    try: 
     151                        data = preloader(fn, **argdict) 
     152                        if oldDomain == data.domain and not self.attributesOverlap(data.domain): 
     153                            argdict["dontCheckStored"] = 1 
     154                            data = loader(fn, **argdict) 
     155                        elif not isinstance(data, orange.ExampleTable): 
     156                            data = loader(fn, **argdict) 
     157                    except Exception, (errValue): 
     158                        self.error(str(errValue)) 
     159                        self.send("Examples", None) 
     160                        self.send("Attribute Definitions", None) 
     161                        self.dataDomain = None 
     162                        self.infoa.setText('No data loaded due to an error.') 
     163                        self.infob.setText('') 
     164                        return 
     165                             
    151166            self.dataDomain = data.domain 
    152167 
     
    180195            self.send("Examples", None) 
    181196            self.send("Attribute Definitions", None) 
     197        self.error() 
    182198 
    183199 
Note: See TracChangeset for help on using the changeset viewer.