def test_pickler_save_load_layout_entry2(self): Pickler.save(self.image1+self.image2, 'test_pickler_save_load_layout_entry2', info={'info':'example'}, key={1:2}) entries = Unpickler.entries('test_pickler_save_load_layout_entry2.hvz') loaded = Unpickler.load('test_pickler_save_load_layout_entry2.hvz', entries=['Image.II']) self.assertEqual(loaded, self.image2)
def test_pickler_save_no_file_extension(self): Pickler.save(self.image1, 'test_pickler_save_no_ext', info={'info': 'example'}, key={1: 2}) if 'test_pickler_save_no_ext.hvz' not in os.listdir('.'): raise AssertionError('File test_pickler_save_no_ext.hvz not found')
def __call__(self): """ Calls the collector specified by the user in the run_batch context. Invoked as an analysis function by RunBatchCommand. """ self.collector.interval_hook = topo.sim.run topo_time = topo.sim.time() filename = '%s%s_%s' % (self._info.batch_name, ('[%s]' % self._info.batch_tag if self._info.batch_tag else ''), topo_time) viewtree = Layout() viewtree = self.collector(viewtree, times=[topo_time]) spec_metadata = [(key, self._info.specs[key]) for key in self.metadata if '.' not in key] path_metadata = [(key, viewtree.items.get(tuple(key.split('.')), float('nan'))) for key in self.metadata if '.' in key] Pickler.save(viewtree, param.normalize_path(filename), key=dict(spec_metadata + path_metadata + [('time',topo_time)]))
def test_pickler_save_load_layout(self): Pickler.save(self.image1 + self.image2, 'test_pickler_save_load_layout', info={'info': 'example'}, key={1: 2}) loaded = Unpickler.load('test_pickler_save_load_layout.hvz') self.assertEqual(loaded, self.image1 + self.image2)
def test_pickler_save_and_load_info(self): input_info = {'info': 'example'} Pickler.save(self.image1, 'test_pickler_save_and_load_data.hvz', info=input_info) info = Unpickler.info('test_pickler_save_and_load_data.hvz') self.assertEqual(info['info'], input_info['info'])
def test_pickler_save_and_load_key(self): input_key = {'test_key': 'key_val'} Pickler.save(self.image1, 'test_pickler_save_and_load_data.hvz', key=input_key) key = Unpickler.key('test_pickler_save_and_load_data.hvz') self.assertEqual(key, input_key)
def __call__(self): """ Calls the collector specified by the user in the run_batch context. Invoked as an analysis function by RunBatchCommand. """ self.collector.interval_hook = topo.sim.run topo_time = topo.sim.time() filename = '%s%s_%s' % (self._info.batch_name, ('[%s]' % self._info.batch_tag if self._info.batch_tag else ''), topo_time) viewtree = Layout() viewtree = self.collector(viewtree, times=[topo_time]) spec_metadata = [(key, self._info.specs[key]) for key in self.metadata if '.' not in key] path_metadata = [(key, viewtree.items.get(tuple(key.split('.')), float('nan'))) for key in self.metadata if '.' in key] Pickler.save(viewtree, param.normalize_path(filename), key=dict(spec_metadata + path_metadata + [('time', topo_time)]))
def test_pickler_save_load_layout_entry2(self): Pickler.save(self.image1+self.image2, 'test_pickler_save_load_layout_entry2', info={'info':'example'}, key={1:2}) entries = Unpickler.entries('test_pickler_save_load_layout_entry2.hvz') assert ('Image.II' in entries), "Entry 'Image.II' missing" loaded = Unpickler.load('test_pickler_save_load_layout_entry2.hvz', entries=['Image.II']) self.assertEqual(loaded, self.image2)
def test_pickler_save_load_layout_entry1(self): Pickler.save(self.image1+self.image2, 'test_pickler_save_load_layout_entry1', info={'info':'example'}, key={1:2}) entries = Unpickler.entries('test_pickler_save_load_layout_entry1.hvz') assert ('Image.I' in entries), "Entry 'Image.I' missing" loaded = Unpickler.load('test_pickler_save_load_layout_entry1.hvz', entries=['Image.I']) self.assertEqual(loaded, self.image1)
def test_pickler_save_load_layout_entries(self): Pickler.save(self.image1 + self.image2, 'test_pickler_save_load_layout_entries', info={'info': 'example'}, key={1: 2}) entries = Unpickler.entries( 'test_pickler_save_load_layout_entries.hvz') self.assertEqual(entries, ['Image.I', 'Image.II'])
def test_pickler_save_load_single_layout(self): single_layout = Layout([self.image1]) Pickler.save(single_layout, 'test_pickler_save_load_single_layout', info={'info':'example'}, key={1:2}) entries = Unpickler.entries('test_pickler_save_load_single_layout.hvz') self.assertEqual(entries, ['Image.I(L)']) loaded = Unpickler.load('test_pickler_save_load_single_layout.hvz', entries=['Image.I(L)']) self.assertEqual(single_layout, loaded)
def test_pickler_save_load_single_layout(self): single_layout = Layout.from_values([self.image1]) Pickler.save(single_layout, 'test_pickler_save_load_single_layout', info={'info':'example'}, key={1:2}) entries = Unpickler.entries('test_pickler_save_load_single_layout.hvz') self.assertEqual(entries, ['Image.I(L)']) loaded = Unpickler.load('test_pickler_save_load_single_layout.hvz', entries=['Image.I(L)']) self.assertEqual(single_layout, loaded)
def save_holoviews(fpath, obj, save_components=False, save_doc=False, save_html=True, save_pickle=False, save_item=False): from holoviews.core.io import Pickler import holoviews as hv obj.opts(title="") if fpath.endswith('.html'): fpath = ".".join(fpath.split(".")[:-1]) if save_pickle: print("saving {}.hvz".format(fpath)) with open(fpath + '.hvz', 'wb') as f: Pickler.save(obj, f) if save_item: print("saving {}-item.json".format(fpath)) from bokeh.embed import json_item p = hv.render(obj, backend='bokeh') item_json = json_item(p) with open(fpath + '-item.json', 'w') as f: json.dump(item_json, f, indent=2) if save_doc: print("saving {}-doc.json".format(fpath)) from bokeh.document import Document p = hv.render(obj, backend='bokeh') doc = Document() doc.add_root(p) doc_json = doc.to_json() with open(fpath + '-doc.json', 'w') as f: json.dump(doc_json, f, indent=2) if save_components: print("saving {}.{{script|div}}".format(fpath)) from bokeh.embed import components p = hv.render(obj, backend='bokeh') script, div = components(p) with open(fpath + '.script', 'w') as f: f.write(script) with open(fpath + '.div', 'w') as f: f.write(div) if save_html: print("saving {}.html".format(fpath)) hv.save(obj, fpath + ".html")
def test_pickler_save(self): Pickler.save(self.image1, 'test_pickler_save.hvz', info={'info':'example'}, key={1:2})
def test_pickler_save_no_file_extension(self): Pickler.save(self.image1, 'test_pickler_save_no_ext', info={'info':'example'}, key={1:2}) if 'test_pickler_save_no_ext.hvz' not in os.listdir('.'): raise AssertionError('File test_pickler_save_no_ext.hvz not found')
def test_pickler_save_and_load_data_1(self): Pickler.save(self.image1, 'test_pickler_save_and_load_data_1.hvz') loaded = Unpickler.load('test_pickler_save_and_load_data_1.hvz') self.assertEqual(loaded, self.image1)
def test_serialize_deserialize_2(self): data,_ = Pickler(self.image2) obj = Unpickler(data) self.assertEqual(obj, self.image2)
def test_pickler_save_load_layout_entries(self): Pickler.save(self.image1+self.image2, 'test_pickler_save_load_layout_entries', info={'info':'example'}, key={1:2}) entries = Unpickler.entries('test_pickler_save_load_layout_entries.hvz') self.assertEqual(entries, ['Image.I', 'Image.II'] )
def test_pickler_save_layout(self): Pickler.save(self.image1+self.image2, 'test_pickler_save_layout', info={'info':'example'}, key={1:2})
def test_pickler_save_load_layout(self): Pickler.save(self.image1+self.image2, 'test_pickler_save_load_layout', info={'info':'example'}, key={1:2}) loaded = Unpickler.load('test_pickler_save_load_layout.hvz') self.assertEqual(loaded, self.image1+self.image2)
def test_pickler_save_and_load_info(self): input_info = {'info':'example'} Pickler.save(self.image1, 'test_pickler_save_and_load_data.hvz', info=input_info) info = Unpickler.info('test_pickler_save_and_load_data.hvz') self.assertEqual(info['info'], input_info['info'])
def test_pickler_save_and_load_key(self): input_key = {'test_key':'key_val'} Pickler.save(self.image1, 'test_pickler_save_and_load_data.hvz', key=input_key) key = Unpickler.key('test_pickler_save_and_load_data.hvz') self.assertEqual(key, input_key)