Warning
This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.tools.imp_exp.export_history
#!/usr/bin/env python
"""
Export a history to an archive file using attribute files.
usage: %prog history_attrs dataset_attrs job_attrs out_file
-G, --gzip: gzip archive file
"""
import optparse
import os
import shutil
import sys
from galaxy.model.store import tar_export_directory
from galaxy.util import unicodify
[docs]def create_archive(export_directory, out_file, gzip=False):
"""Create archive from the given attribute/metadata files and save it to out_file."""
try:
tar_export_directory(export_directory, out_file, gzip)
# Status.
print('Created history archive.')
return 0
except Exception as e:
print('Error creating history archive: %s' % unicodify(e), file=sys.stderr)
return 1
finally:
shutil.rmtree(export_directory, ignore_errors=True)
[docs]def main(argv=None):
# Parse command line.
parser = optparse.OptionParser()
parser.add_option('-G', '--gzip', dest='gzip', action="store_true", help='Compress archive using gzip.')
parser.add_option('--galaxy-version', dest='galaxy_version', help='Galaxy version that initiated the command.', default=None)
(options, args) = parser.parse_args(argv)
galaxy_version = options.galaxy_version
if galaxy_version is None:
galaxy_version = "19.01" if len(args) == 4 else "19.05"
gzip = bool(options.gzip)
if galaxy_version == "19.01":
# This job was created pre 18.0X with old argument style.
out_file = args[3]
temp_directory = os.path.dirname(args[0])
else:
assert len(args) >= 2
# We have a 19.0X directory argument instead of individual arguments.
temp_directory = args[0]
out_file = args[1]
if galaxy_version == "19.01":
history_attrs = os.path.join(temp_directory, 'history_attrs.txt')
dataset_attrs = os.path.join(temp_directory, 'datasets_attrs.txt')
job_attrs = os.path.join(temp_directory, 'jobs_attrs.txt')
shutil.move(args[0], history_attrs)
shutil.move(args[1], dataset_attrs)
provenance_path = args[1] + ".provenance"
if os.path.exists(provenance_path):
shutil.move(provenance_path, dataset_attrs + ".provenance")
shutil.move(args[2], job_attrs)
# Create archive.
return create_archive(temp_directory, out_file, gzip=gzip)
if __name__ == "__main__":
main()