本文整理汇总了Python中Orange.OrangeWidgets.OWConcurrent.Task.future方法的典型用法代码示例。如果您正苦于以下问题:Python Task.future方法的具体用法?Python Task.future怎么用?Python Task.future使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Orange.OrangeWidgets.OWConcurrent.Task
的用法示例。
在下文中一共展示了Task.future方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: OWGEODatasets
# 需要导入模块: from Orange.OrangeWidgets.OWConcurrent import Task [as 别名]
# 或者: from Orange.OrangeWidgets.OWConcurrent.Task import future [as 别名]
#.........这里部分代码省略.........
return
finally:
self._datatask = None
data_name = data.name
samples, _ = self.selectedSamples()
self.warning(0)
message = None
if self.outputRows:
def samplesinst(ex):
out = []
for meta in data.domain.metas:
out.append((meta.name, ex[meta].value))
if data.domain.class_var.name != 'class':
out.append((data.domain.class_var.name,
ex[data.domain.class_var].value))
return out
samples = set(samples)
mask = [samples.issuperset(samplesinst(ex)) for ex in data]
data = data[numpy.array(mask, dtype=bool)]
if len(data) == 0:
message = "No samples with selected sample annotations."
else:
samples = set(samples)
domain = Orange.data.Domain(
[attr for attr in data.domain.attributes
if samples.issuperset(attr.attributes.items())],
data.domain.class_var,
data.domain.metas
)
# domain.addmetas(data.domain.getmetas())
if len(domain.attributes) == 0:
message = "No samples with selected sample annotations."
stypes = set(s[0] for s in samples)
for attr in domain.attributes:
attr.attributes = dict(
(key, value) for key, value in attr.attributes.items()
if key in stypes
)
data = Orange.data.Table(domain, data)
if message is not None:
self.warning(0, message)
data_hints.set_hint(data, "taxid", self.currentGds.get("taxid", ""),
10.0)
data_hints.set_hint(data, "genesinrows", self.outputRows, 10.0)
data.name = data_name
self.send("Expression Data", data)
model = self.treeWidget.model().sourceModel()
row = self.gds.index(self.currentGds)
model.setData(model.index(row, 0), " ", Qt.DisplayRole)
self.updateInfo()
self.selectionChanged = False
def splitterMoved(self, *args):
self.splitterSettings = [bytes(sp.saveState()) for sp in self.splitters]
def send_report(self):
self.report_items("GEO Dataset",
[("ID", self.currentGds['dataset_id']), ("Title", self.currentGds['title']),
("Organism", self.currentGds['sample_organism'])])
self.report_items("Data", [("Samples", self.currentGds['sample_count']),
("Features", self.currentGds['feature_count']),
("Genes", self.currentGds['gene_count'])])
self.report_name("Sample annotations")
subsets = defaultdict(list)
for subset in self.currentGds['subsets']:
subsets[subset['type']].append((subset['description'], len(subset['sample_id'])))
self.report_html += "<ul>"
for type in subsets:
self.report_html += "<b>" + type + ":</b></br>"
for desc, count in subsets[type]:
self.report_html += 9 * " " + "<b>{}:</b> {}</br>".format(desc, count)
self.report_html += "</ul>"
def onDeleteWidget(self):
if self._inittask:
self._inittask.future().cancel()
self._inittask.finished.disconnect(self._initializemodel)
if self._datatask:
self._datatask.future().cancel()
self._datatask.finished.disconnect(self._on_dataready)
self._executor.shutdown(wait=False)
super(OWGEODatasets, self).onDeleteWidget()
def onNameEdited(self):
if self.currentGds:
gds_id = self.currentGds["dataset_id"]
self.datasetNames[gds_id] = unicode(self.nameEdit.text())
self.commitIf()
示例2: OWGEODatasets
# 需要导入模块: from Orange.OrangeWidgets.OWConcurrent import Task [as 别名]
# 或者: from Orange.OrangeWidgets.OWConcurrent.Task import future [as 别名]
#.........这里部分代码省略.........
sample_type=sample_type,
title=self.datasetName or self.currentGds["title"]
)
self._datatask = Task(function=get_data)
self._datatask.finished.connect(self._on_dataready)
self._executor.submit(self._datatask)
def _on_dataready(self):
self.setEnabled(True)
self.setBlocking(False)
self.progressBarSet(50)
try:
data = self._datatask.result()
except urllib2.URLError as error:
self.error(0, "Error while connecting to the NCBI ftp server! %r" %
error)
self._datatask = None
self.progressBarFinished()
return
self._datatask = None
data_name = data.name
samples, _ = self.selectedSamples()
self.warning(0)
message = None
if self.outputRows:
def samplesinst(ex):
out = []
for i, a in data.domain.get_metas().items():
out.append((a.name, ex[i].value))
if data.domain.class_var.name != 'class':
out.append((data.domain.class_var.name, ex[-1].value))
return out
samples = set(samples)
select = [1 if samples.issuperset(samplesinst(ex)) else 0
for ex in data]
data = data.select(select)
if len(data) == 0:
message = "No samples with selected sample annotations."
else:
samples = set(samples)
domain = orange.Domain(
[attr for attr in data.domain.attributes
if samples.issuperset(attr.attributes.items())],
data.domain.classVar
)
domain.addmetas(data.domain.getmetas())
if len(domain.attributes) == 0:
message = "No samples with selected sample annotations."
stypes = set(s[0] for s in samples)
for attr in domain.attributes:
attr.attributes = dict(
(key, value) for key, value in attr.attributes.items()
if key in stypes
)
data = orange.ExampleTable(domain, data)
if message is not None:
self.warning(0, message)
data_hints.set_hint(data, "taxid", self.currentGds.get("taxid", ""),
10.0)
data_hints.set_hint(data, "genesinrows", self.outputRows, 10.0)
self.progressBarFinished()
data.name = data_name
self.send("Expression Data", data)
model = self.treeWidget.model().sourceModel()
row = self.gds.index(self.currentGds)
model.setData(model.index(row, 0), QVariant(" "), Qt.DisplayRole)
self.updateInfo()
self.selectionChanged = False
def splitterMoved(self, *args):
self.splitterSettings = [str(sp.saveState()) for sp in self.splitters]
def onDeleteWidget(self):
if self._inittask:
self._inittask.future().cancel()
self._inittask.finished.disconnect(self._initializemodel)
if self._datatask:
self._datatask.future().cancel()
self._datatask.finished.disconnect(self._on_dataready)
self._executor.shutdown(wait=False)
super(OWGEODatasets, self).onDeleteWidget()
def onNameEdited(self):
if self.currentGds:
gds_id = self.currentGds["dataset_id"]
self.datasetNames[gds_id] = unicode(self.nameEdit.text())
self.commitIf()
示例3: OWGeneNetwork
# 需要导入模块: from Orange.OrangeWidgets.OWConcurrent import Task [as 别名]
# 或者: from Orange.OrangeWidgets.OWConcurrent.Task import future [as 别名]
#.........这里部分代码省略.........
def set_source_db(self, dbindex):
self.network_source = dbindex
self.invalidate()
def set_organism(self, index):
self.current_taxid_index = index
self.taxid = self.taxids[index]
self.invalidate()
def set_gene_var(self, index):
self.gene_var_index = index
self.invalidate()
def query_genes(self):
if self.use_attr_names:
if self.data is not None:
return [var.name for var in self.data.domain.attributes]
else:
return []
elif self.gene_var_index >= 0:
var = self.varmodel[self.gene_var_index]
genes = [str(inst[var]) for inst in self.data
if not inst[var].isSpecial()]
return list(unique(genes))
else:
return []
def invalidate(self):
self._invalidated = True
if self.nettask is not None:
self.nettask.finished.disconnect(self._on_result_ready)
self.nettask.future().cancel()
self.nettask = None
if self.autocommit:
QTimer.singleShot(10, self._maybe_commit)
@Slot()
def _maybe_commit(self):
if self._invalidated:
self.commit()
@Slot()
def advance(self):
self.progressBarValue = (self.progressBarValue + 1) % 100
@Slot(float)
def set_progress(self, value):
self.progressBarValue = value
def commit(self):
include_neighborhood = self.include_neighborhood
query_genes = self.query_genes()
source = SOURCES[self.network_source]
if source.score_filter:
min_score = self.min_score
assert source.name == "STRING"
min_score = min_score * 1000
else:
min_score = None
taxid = self.taxid
progress = methodinvoke(self, "advance")
if self.geneinfo is None: