mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-24 02:04:04 +08:00
Add separate option for including jobs to model store
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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. --
|
||||
|
||||
Reference in New Issue
Block a user