Example #1
0
    def StartDownload(self):
        self.updateWidget.removeButton.setEnabled(False)
        self.updateWidget.updateButton.setEnabled(False)
        self.setData(2, Qt.DisplayRole, QVariant(""))
        serverFiles = orngServerFiles.ServerFiles(access_code=self.master.accessCode if self.master.accessCode else None) 
        
        pb = ItemProgressBar(self.treeWidget())
        pb.setRange(0, 100)
        pb.setTextVisible(False)
        
        self.task = AsyncCall(threadPool=QThreadPool.globalInstance())
        
        if not getattr(self.master, "_sum_progressBar", None):
            self.master._sum_progressBar = OWGUI.ProgressBar(self.master,0)
            self.master._sum_progressBar.in_progress = 0
        master_pb = self.master._sum_progressBar
        master_pb.iter += 100
        master_pb.in_progress += 1
        self._progressBarRedirect = ProgressBarRedirect(QThread.currentThread(), master_pb)
#        QObject.connect(self.thread, SIGNAL("advance()"), lambda :(pb.setValue(pb.value()+1), master_pb.advance()))
        QObject.connect(self.task, SIGNAL("advance()"), pb.advance, Qt.QueuedConnection)
        QObject.connect(self.task, SIGNAL("advance()"), self._progressBarRedirect.advance, Qt.QueuedConnection)
        QObject.connect(self.task, SIGNAL("finished(QString)"), self.EndDownload, Qt.QueuedConnection)
        self.treeWidget().setItemWidget(self, 2, pb)
        pb.show()
        
        self.task.apply_async(orngServerFiles.download, args=(self.domain, self.filename, serverFiles), kwargs=dict(callback=self.task.emitAdvance))
Example #2
0
    def UpdateFilesList(self):
        self.retryButton.hide()
        #        self.progressBarInit()
        pb = OWGUI.ProgressBar(self, 3)
        self.filesView.clear()
        #        self.tagsWidget.clear()
        self.allTags = set()
        allTitles = set()
        self.updateItems = []
        if self.accessCode:
            self.serverFiles = orngServerFiles.ServerFiles(
                access_code=self.accessCode)

        self.error(0)
        try:
            domains = self.serverFiles.listdomains(
            ) if self.domains is None else self.domains
            pb.advance()
            serverInfo = dict([(dom, self.serverFiles.allinfo(dom))
                               for dom in domains])
            pb.advance()
        except IOError, ex:
            self.error(
                0,
                "Could not connect to server! Press the Retry button to try again."
            )
            self.retryButton.show()
            domains = orngServerFiles.listdomains(
            ) if self.domains is None else self.domains
            pb.advance()
            serverInfo = {}
            pb.advance()
Example #3
0
def files_report():
    import orngServerFiles as sf
    sf = sf.ServerFiles()
    html = []
    for domain in sf.listdomains():
        if domain not in ["demo", "demo2", "test", "gad"]:
            allinfo = sf.allinfo(domain)
            html += ["<h2>%s</h2>" % domain,
                     "<table><tr><th>Title</th><th>Date</th><th>Filename</th></tr>"] + \
                    ["<tr><td>%s</td><td>%s</td><td>%s</td></tr>" % (info["title"], info["datetime"], file) \
                     for file, info in allinfo.items()] + \
                    ["</table>"]
    return "\n".join(html)
Example #4
0
    def __init__(self, parent=None, signalManager=None, name="Databases update", wantCloseButton=False, searchString="", showAll=True, domains=None, accessCode=""):
        OWWidget.__init__(self, parent, signalManager, name)
        self.searchString = searchString
        self.accessCode = accessCode
        self.showAll = showAll
        self.domains = domains
        self.serverFiles = orngServerFiles.ServerFiles()
        box = OWGUI.widgetBox(self.mainArea, orientation="horizontal")
        import OWGUIEx
        self.lineEditFilter = OWGUIEx.lineEditHint(box, self, "searchString", "Filter", caseSensitive=False, delimiters=" ", matchAnywhere=True, listUpdateCallback=self.SearchUpdate, callbackOnType=True, callback=self.SearchUpdate)

        box = OWGUI.widgetBox(self.mainArea, "Files")
        self.filesView = QTreeWidget(self)
        self.filesView.setHeaderLabels(["Options", "Title", "Size"])
        self.filesView.setRootIsDecorated(False)
        self.filesView.setSelectionMode(QAbstractItemView.NoSelection)
        self.filesView.setSortingEnabled(True)
        self.filesView.setItemDelegate(UpdateItemDelegate(self.filesView))
        self.connect(self.filesView.model(), SIGNAL("layoutChanged()"), self.SearchUpdate)
        box.layout().addWidget(self.filesView)

        box = OWGUI.widgetBox(self.mainArea, orientation="horizontal")
        OWGUI.button(box, self, "Update all local files", callback=self.UpdateAll, tooltip="Update all updatable files")
        OWGUI.button(box, self, "Download filtered", callback=self.DownloadFiltered, tooltip="Download all filtered files shown")
        OWGUI.rubber(box)
        OWGUI.lineEdit(box, self, "accessCode", "Access Code", orientation="horizontal", callback=self.RetrieveFilesList)
        self.retryButton = OWGUI.button(box, self, "Retry", callback=self.RetrieveFilesList)
        self.retryButton.hide()
        box = OWGUI.widgetBox(self.mainArea, orientation="horizontal")
        OWGUI.rubber(box)
        if wantCloseButton:
            OWGUI.button(box, self, "Close", callback=self.accept, tooltip="Close")

##        statusBar = QStatusBar()
        self.infoLabel = QLabel()
        self.infoLabel.setAlignment(Qt.AlignCenter)
##        statusBar.addWidget(self.infoLabel)
##        self.mainArea.layout().addWidget(statusBar)
        self.mainArea.layout().addWidget(self.infoLabel)
        self.infoLabel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)

        self.updateItems = []
        self.allTags = []
        
        self.resize(800, 600)
        
#        QTimer.singleShot(50, self.UpdateFilesList)
        QTimer.singleShot(50, self.RetrieveFilesList)
Example #5
0
##!interval=7
##[email protected]

import obiPPI, orngServerFiles
import os, sys, shutil, urllib2, tarfile
from getopt import getopt

opt = dict(getopt(sys.argv[1:], "u:p:", ["user="******"password="******"-u", opt.get("--user", "username"))
password = opt.get("-p", opt.get("--password", "password"))

serverFiles = orngServerFiles.ServerFiles(username, password)

try:
    os.mkdir(orngServerFiles.localpath("PPI"))
except OSError:
    pass

obiPPI.MIPS.download()

try:
    serverFiles.create_domain("PPI")
except Exception, ex:
    print ex
filename = orngServerFiles.localpath("PPI", "mppi.gz")
serverFiles.upload("PPI",
                   "allppis.xml",
                   filename,
                   "MIPS Protein interactions",
                   tags=[
Example #6
0
 def RetrieveFilesList(self):
     self.serverFiles = orngServerFiles.ServerFiles(access_code=self.accessCode)
     self.pb = ProgressBar(self, 3)
     self.async_retrieve = createTask(retrieveFilesList, (self.serverFiles, self.domains, self.pb.advance), onResult=self.SetFilesList, onError=self.HandleError)
     
     self.setEnabled(False)
Example #7
0
            results[-1][2] = parts[1].strip("\t ")
ontology.close()

output = file('mesh-ontology.dat', 'w')

for i in results:
    print i[0] + "\t"
    output.write(i[0] + "\t")
    g = len(i[1])
    for k in i[1]:
        g -= 1
        if (g > 0):
            output.write(k + ";")
        else:
            output.write(k + "\t" + i[2] + "\n")
output.close()
print "Ontology downloaded."

ordinary = orngServerFiles.ServerFiles()
authenticated = orngServerFiles.ServerFiles(username, password)

authenticated.upload('MeSH',
                     'mesh-ontology.dat',
                     'mesh-ontology.dat',
                     title="MeSH ontology",
                     tags=['MeSH', 'ontology', 'orngMeSH'])
#authenticated.upload('MeSH', 'cid-annotation.dat', 'cid-annotation.dat', title="Annotation for chemicals (CIDs)", tags =['CID','MeSH','orngMeSH','annotation'])

authenticated.unprotect('MeSH', 'mesh-ontology.dat')
os.remove('mesh-ontology.dat')
print "Ontology uploaded to server."
import orngServerFiles
reload(orngServerFiles)

domain = "demo"
# remove the domain from the local repository
if domain in orngServerFiles.listdomains():
    orngServerFiles.remove_domain(domain, force=True)

# download all the files for this domain from the server
server = orngServerFiles.ServerFiles()
for filename in server.listfiles(domain):
    orngServerFiles.download(domain, filename, verbose=False)

# make sure that both file lists are the same
files_on_server = server.listfiles(domain)
print "Domain: %s" % domain
intersection = set(files_on_server).intersection(set(orngServerFiles.listfiles(domain)))
if len(intersection) == len(files_on_server):
    print "Same number of files on server and local repository."
else:
    print "Directories on server and local repository are different."