Created
September 1, 2015 12:49
-
-
Save apdavison/c4c1f5ba26345d20f7b3 to your computer and use it in GitHub Desktop.
An example of updating a Sumatra record
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks 👍 This was really helpful.