Add separate option for including jobs to model store

This commit is contained in:
mvdbeek
2021-04-11 20:33:57 +02:00
parent 0a4aa468bf
commit 897590b2f3
3 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -157,7 +157,7 @@ class PortableDirectoryMetadataGenerator(MetadataCollectionStrategy):
# export model objects and object store configuration for extended metadata also.
export_directory = os.path.join(metadata_dir, "outputs_new")
with DirectoryModelExportStore(export_directory, for_edit=True, serialize_dataset_objects=True) as export_store:
with DirectoryModelExportStore(export_directory, for_edit=True, serialize_dataset_objects=True, serialize_jobs=False) as export_store:
for dataset in datasets_dict.values():
export_store.add_dataset(dataset)
+1 -1
View File
@@ -188,7 +188,7 @@ def set_metadata_portable():
job_context = ExpressionContext(dict(stdout=tool_stdout, stderr=tool_stderr))
# Load outputs.
export_store = store.DirectoryModelExportStore('metadata/outputs_populated', serialize_dataset_objects=True, for_edit=True, strip_metadata_files=False)
export_store = store.DirectoryModelExportStore('metadata/outputs_populated', serialize_dataset_objects=True, for_edit=True, strip_metadata_files=False, serialize_jobs=False)
try:
import_model_store = store.imported_store_for_metadata('metadata/outputs_new', object_store=object_store)
except AssertionError:
+6 -2
View File
@@ -1011,7 +1011,7 @@ class ModelExportStore(metaclass=abc.ABCMeta):
class DirectoryModelExportStore(ModelExportStore):
def __init__(self, export_directory, app=None, for_edit=False, serialize_dataset_objects=None, export_files=None, strip_metadata_files=True):
def __init__(self, export_directory, app=None, for_edit=False, serialize_dataset_objects=None, export_files=None, strip_metadata_files=True, serialize_jobs=True):
"""
:param export_directory: path to export directory. Will be created if it does not exist.
:param app: Galaxy App or app-like object. Must be provided if `for_edit` and/or `serialize_dataset_objects` are True
@@ -1019,6 +1019,7 @@ class DirectoryModelExportStore(ModelExportStore):
:param serialize_dataset_objects: If True will encode IDs using the host secret. Defaults `for_edit`.
:param export_files: How files should be exported, can be 'symlink', 'copy' or None, in which case files
will not be serialized.
:param serialize_jobs: Include job data in model export. Not needed for set_metadata script.
"""
if not os.path.exists(export_directory):
os.makedirs(export_directory)
@@ -1031,6 +1032,7 @@ class DirectoryModelExportStore(ModelExportStore):
sessionless = True
security = IdEncodingHelper(id_secret="randomdoesntmatter")
self.serialize_jobs = serialize_jobs
self.sessionless = sessionless
self.security = security
@@ -1257,7 +1259,7 @@ class DirectoryModelExportStore(ModelExportStore):
output_dataset_mapping[name].append(self.exported_key(dataset))
jobs_attrs.append({"id": job_id, 'output_dataset_mapping': output_dataset_mapping})
if not self.serialization_options.for_edit:
if self.serialize_jobs:
#
# Write jobs attributes file.
@@ -1301,6 +1303,8 @@ class DirectoryModelExportStore(ModelExportStore):
# Get jobs' attributes.
for job in jobs_dict.values():
if self.serialization_options.for_edit:
continue
job_attrs = job.serialize(self.security, self.serialization_options)
# -- Get input, output datasets. --