⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 owextendedfile.py

📁 orange源码 数据挖掘技术
💻 PY
字号:
"""
<name>Extended File</name>
<description>Reads data from a file; can accept an existing domain.</description>
<icon>icons/ExtendedFile.png</icon>
<priority>11</priority>
<contact>Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)</contact> 
"""

#
# Adds an input signal to the file widget
#

from OWFile import *

class OWExtendedFile(OWSubFile):
    settingsList=["recentFiles", "symbolDC", "symbolDK"]
    def __init__(self,parent=None, signalManager = None):
        OWSubFile.__init__(self, parent, signalManager, "AdvancedFile")

        self.inputs = [("Attribute Definitions", orange.Domain, self.setDomain)]
        self.outputs = [("Examples", ExampleTable), ("Classified Examples", ExampleTableWithClass), ("Attribute Definitions", orange.Domain)]
    
        #set default settings
        self.recentFiles=["(none)"]
        self.resetDomain = 0
        self.domain = None
        self.symbolDC = "?"
        self.symbolDK = "~"
        #get settings from the ini file, if they exist
        self.loadSettings()
        
        #GUI
        self.box = QHGroupBox("Data File", self.controlArea)
        self.filecombo=QComboBox(self.box)
        self.filecombo.setMinimumWidth(250)
        button = OWGUI.button(self.box, self, '...', callback = self.browseFile, disabled=0)
        button.setMaximumWidth(25)

        # settings
        box = QVGroupBox("Settings", self.controlArea)
        OWGUI.lineEdit(box, self, "symbolDC", "Don't care symbol:  ", orientation="horizontal", tooltip="Default values: empty fields (space), '?' or 'NA'")
        OWGUI.lineEdit(box, self, "symbolDK", "Don't know symbol:  ", orientation="horizontal", tooltip="Default values: '~' or '*'")

        # info
        box = QVGroupBox("Info", self.controlArea)
        self.infoa = QLabel('No data loaded.', box)
        self.infob = QLabel('', box)
            
        self.rbox = QHGroupBox("Reload", self.controlArea)
        self.reloadBtn = OWGUI.button(self.rbox, self, "Reload File", callback = self.reload)
        OWGUI.separator(self.rbox, 8, 0)
        self.resetDomainCb = OWGUI.checkBox(self.rbox, self, "resetDomain", "Reset domain at next reload")

        self.resize(150,100)


    def setDomain(self, domain):
        domainChanged = self.domain != domain
        self.domain = domain
        
        if self.domain:
            self.resetDomainCb.setDisabled(1)
        else:
            self.resetDomainCb.setDisabled(0)
            
        if domainChanged and len(self.recentFiles) > 0 and os.path.exists(self.recentFiles[0]):
            self.resetDomain = 1
            self.openFile(self.recentFiles[0], 1)
            

    def reload(self):
        if self.recentFiles:
            return self.openFile(self.recentFiles[0], 1)

    # set the file combo box
    def setFileList(self):
        self.filecombo.clear()
        if not self.recentFiles:
            self.filecombo.insertItem("(none)")
            self.reloadBtn.disabled = 1
        for file in self.recentFiles:
            if file == "(none)":
                if len(self.recentFiles)==1:
                    self.filecombo.insertItem("(none)")
                    self.reloadBtn.disabled = 1
            else:
                self.filecombo.insertItem(os.path.split(file)[1])
                self.reloadBtn.disabled = 0
        self.filecombo.insertItem("Browse documentation data sets...")
        #self.filecombo.adjustSize() #doesn't work properly :(
        self.filecombo.updateGeometry()


    def openFile(self,fn, throughReload = 0):
        self.openFileBase(fn, throughReload=throughReload, DK=self.symbolDK, DC=self.symbolDC)
        

if __name__ == "__main__":
    a=QApplication(sys.argv)
    ow=OWAdvancedFile()
    ow.activateLoadedSettings()
    a.setMainWidget(ow)
    ow.show()
    ow.symbolDK = "<NO DATA>"
    ow.openFile(r"C:\Documents and Settings\peterjuv\My Documents\STEROLTALK\array-pro\experiments\Tadeja 2nd image analysis\10vs10mg original data\0449.txt")
    a.exec_loop()
    #save settings 
    ow.saveSettings()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -