Skip to content

Instantly share code, notes, and snippets.

@apdavison
Created September 1, 2015 12:49
Show Gist options
  • Save apdavison/c4c1f5ba26345d20f7b3 to your computer and use it in GitHub Desktop.
Save apdavison/c4c1f5ba26345d20f7b3 to your computer and use it in GitHub Desktop.
An example of updating a Sumatra record
from __future__ import unicode_literals
import numpy
import sys
import time
from sumatra.projects import load_project
from sumatra.parameters import build_parameters
def main(parameters):
numpy.random.seed(parameters["seed"])
distr = getattr(numpy.random, parameters["distr"])
data = distr(size=parameters["n"])
output_file = "%s.dat" % parameters["sumatra_label"]
numpy.savetxt(output_file, data)
parameter_file = sys.argv[1]
parameters = build_parameters(parameter_file)
project = load_project()
record = project.new_record(parameters=parameters,
main_file=__file__,
reason="reason for running this simulation")
project.add_record(record)
parameters.update({"sumatra_label": record.label})
start_time = time.time()
main(parameters)
record.outcome += "Ran main function\n"
project.record_store.save(project.name, record)
do_something_else(parameters)
record.outcome += "Did something else\n"
# could also update other fields, such as stdout_stderr
project.record_store.save(project.name, record)
record.duration = time.time() - start_time
record.output_data = record.datastore.find_new_data(record.timestamp)
project.record_store.save(project.name, record)
project.save()
@srush
Copy link

srush commented Sep 14, 2015

Thanks 👍 This was really helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment