mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #17937 from mvdbeek/fix_peek_display
[24.0] Never fail dataset serialization if display_peek fails
This commit is contained in:
@@ -337,10 +337,10 @@ class Data(metaclass=DataMeta):
|
||||
|
||||
def display_peek(self, dataset: DatasetProtocol) -> str:
|
||||
"""Create HTML table, used for displaying peek"""
|
||||
if not dataset.peek:
|
||||
return "Peek not available"
|
||||
out = ['<table cellspacing="0" cellpadding="3">']
|
||||
try:
|
||||
if not dataset.peek:
|
||||
dataset.set_peek()
|
||||
data = dataset.peek
|
||||
lines = data.splitlines()
|
||||
for line in lines:
|
||||
|
||||
@@ -50,6 +50,10 @@ class _QIIME2ResultBase(CompressedZipArchive):
|
||||
dataset.peek = "\n".join(map(": ".join, self._peek(dataset)))
|
||||
|
||||
def display_peek(self, dataset: DatasetProtocol) -> str:
|
||||
if dataset.metadata.semantic_type is None:
|
||||
# Proxy for metadata elements not (yet) set
|
||||
return "Peek unavailable"
|
||||
|
||||
def make_row(pair):
|
||||
return f"<tr><th>{pair[0]}</th><td>{html.escape(pair[1])}</td></tr>"
|
||||
|
||||
|
||||
@@ -4666,7 +4666,11 @@ class DatasetInstance(RepresentById, UsesCreateAndUpdateTime, _HasTable):
|
||||
return self.datatype.as_display_type(self, type, **kwd)
|
||||
|
||||
def display_peek(self):
|
||||
return self.datatype.display_peek(self)
|
||||
try:
|
||||
return self.datatype.display_peek(self)
|
||||
except Exception:
|
||||
log.exception("Error occurred while generating dataset peek")
|
||||
return None
|
||||
|
||||
def display_name(self):
|
||||
return self.datatype.display_name(self)
|
||||
|
||||
@@ -38,6 +38,9 @@ def test_qza_set_peek():
|
||||
with get_input_files("qiime2.qza") as input_files:
|
||||
dataset = MockDataset(1)
|
||||
dataset.set_file_name(input_files[0])
|
||||
dataset.metadata.semantic_type = None
|
||||
dataset.metadata.uuid = None
|
||||
assert qza.display_peek(dataset) == "Peek unavailable"
|
||||
|
||||
qza.set_meta(dataset)
|
||||
qza.set_peek(dataset)
|
||||
|
||||
Reference in New Issue
Block a user