def _convert_value(value): """Parse string as python literal if possible and fallback to string.""" try: return restore(ast.literal_eval(value)) except (ValueError, SyntaxError): if SETTINGS.COMMAND_LINE.STRICT_PARSING: raise # use as string if nothing else worked return value
def _convert_value(value): """Parse string as python literal if possible and fallback to string.""" try: return restore(ast.literal_eval(value)) except (ValueError, SyntaxError): if SETTINGS.COMMAND_LINE.STRICT_PARSING: raise # use as string if nothing else worked return value
def to_json(self): return { "_id": self.run_id, "command": self.command, "start_time": self.start_time, "heartbeat": self.heartbeat, "stop_time": self.stop_time, "queue_time": self.queue_time, "status": self.status, "result": self.result, "meta": {"comment": self.comment, "priority": self.priority}, "resources": [r.to_json() for r in self.resources], "artifacts": [a.to_json() for a in self.artifacts], "host": self.host.to_json(), "experiment": self.experiment.to_json(), "config": restore(json.loads(self.config)), "captured_out": self.captured_out, "fail_trace": self.fail_trace, }
def to_json(self): return { '_id': self.run_id, 'command': self.command, 'start_time': self.start_time, 'heartbeat': self.heartbeat, 'stop_time': self.stop_time, 'queue_time': self.queue_time, 'status': self.status, 'result': self.result, 'meta': { 'comment': self.comment, 'priority': self.priority}, 'resources': [r.to_json() for r in self.resources], 'artifacts': [a.to_json() for a in self.artifacts], 'host': self.host.to_json(), 'experiment': self.experiment.to_json(), 'config': restore(json.loads(self.config)), 'captured_out': self.captured_out, 'fail_trace': self.fail_trace, }
def to_json(self): return { '_id': self.run_id, 'command': self.command, 'start_time': self.start_time, 'heartbeat': self.heartbeat, 'stop_time': self.stop_time, 'queue_time': self.queue_time, 'status': self.status, 'result': self.result, 'meta': { 'comment': self.comment, 'priority': self.priority}, 'resources': [r.to_json() for r in self.resources], 'artifacts': [a.to_json() for a in self.artifacts], 'host': self.host.to_json(), 'experiment': self.experiment.to_json(), 'config': restore(json.loads(self.config)), 'captured_out': self.captured_out, 'fail_trace': self.fail_trace, }
def test_serialize_pandas_dataframes(): pd, np = opt.pandas, opt.np df = pd.DataFrame(np.arange(20).reshape(5, 4), columns=list("ABCD")) b = restore(flatten(df)) assert np.all(df == b) assert np.all(df.dtypes == b.dtypes)
def test_serialize_tuples(): t = (1, "two") assert restore(flatten(t)) == t assert isinstance(restore(flatten(t)), tuple)
def test_serialize_numpy_arrays(): a = opt.np.array([[1, 2, 3], [4, 5, 6]], dtype=opt.np.float32) b = restore(flatten(a)) assert opt.np.all(b == a) assert b.dtype == a.dtype assert b.shape == a.shape
def test_serialize_non_str_keys(): d = {1: "one", 2: "two"} assert restore(flatten(d)) == d
from sacred.serializer import flatten, restore __all__ = ('load_config_file', 'save_config_file') class Handler(object): def __init__(self, load, dump, mode): self.load = load self.dump = dump self.mode = mode HANDLER_BY_EXT = { '.json': Handler( lambda fp: restore(json.load(fp)), lambda obj, fp: json.dump(flatten(obj), fp, sort_keys=True, indent=2), ''), '.pickle': Handler(pickle.load, pickle.dump, 'b'), } if opt.has_yaml: HANDLER_BY_EXT['.yaml'] = Handler(opt.yaml.load, opt.yaml.dump, '') HANDLER_BY_EXT['.yml'] = Handler(opt.yaml.load, opt.yaml.dump, '') def get_handler(filename): _, extension = os.path.splitext(filename) return HANDLER_BY_EXT[extension]
def get_sacred_results(params): return restore(get_sacred_runs().find_one(params)['result'])
from sacred.serializer import flatten, restore __sacred__ = True # marks files that should be filtered from stack traces __all__ = ('load_config_file', 'save_config_file') class Handler(object): def __init__(self, load, dump, mode): self.load = load self.dump = dump self.mode = mode HANDLER_BY_EXT = { '.json': Handler(lambda fp: restore(json.load(fp)), lambda obj, fp: json.dump(flatten(obj), fp, sort_keys=True, indent=2), ''), '.pickle': Handler(pickle.load, pickle.dump, 'b'), } if opt.has_yaml: HANDLER_BY_EXT['.yaml'] = Handler(opt.yaml.load, opt.yaml.dump, '') def get_handler(filename): _, extension = os.path.splitext(filename) return HANDLER_BY_EXT[extension]
def test_serialize_pandas_dataframes(): pd, np = opt.pandas, opt.np df = pd.DataFrame(np.arange(20).reshape(5, 4), columns=list('ABCD')) b = restore(flatten(df)) assert np.all(df == b) assert np.all(df.dtypes == b.dtypes)
def test_serialize_tuples(): t = (1, 'two') assert restore(flatten(t)) == t assert isinstance(restore(flatten(t)), tuple)
def test_serialize_numpy_arrays(): a = opt.np.array([[1, 2, 3], [4, 5, 6]], dtype=opt.np.float32) b = restore(flatten(a)) assert opt.np.all(b == a) assert b.dtype == a.dtype assert b.shape == a.shape
def test_serialize_non_str_keys(): d = {1: "one", 2: "two"} assert restore(flatten(d)) == d