def dump(data, format='json'): data = unbunchify(data) s = None if format == 'json': s = jsondump.dumps(data, indent=4) if format == 'yaml': s = yaml.dump(data, Dumper=Dumper, default_flow_style=False) assert s, format return s
def load(self, fzip): fzip = path(fzip).abspath() with ZipFile(fzip, 'r') as myzip: # print myzip.filelist fcsv = filter( lambda x: x.filename.endswith('csv'), myzip.filelist)[0] fyaml = filter( lambda x: x.filename.endswith('yaml'), myzip.filelist)[0] s = myzip.read(fyaml) smeas = myzip.read(fcsv) data = unbunchify(dumper.load(s, format='yaml')) df = pd.read_csv(StringIO(smeas), index_col=0) # print df # print self.data print '"%s" was loaded' % fzip # self.project = self.data['project'] # self.json=s data = bunchify(data) # print data data['measurements'] = df # print data return data
def load(self, fzip): fzip = path(fzip).abspath() with ZipFile(fzip, 'r') as myzip: # print myzip.filelist fcsv = filter(lambda x: x.filename.endswith('csv'), myzip.filelist)[0] fyaml = filter(lambda x: x.filename.endswith('yaml'), myzip.filelist)[0] s = myzip.read(fyaml) smeas = myzip.read(fcsv) data = unbunchify(dumper.load(s, format='yaml')) df = pd.read_csv(StringIO(smeas), index_col=0) # print df # print self.data print '"%s" was loaded' % fzip # self.project = self.data['project'] # self.json=s data = bunchify(data) # print data data['measurements'] = df # print data return data
def save(self, data, fname=None): if not fname: fname = self.auto_name() fname = path(fname) # fname.abspath().parent.makedirs_p() # smeas = dumper.dump(self.data.measurements) df = pd.DataFrame(unbunchify(data.measurements)) # print df buff = StringIO() df.to_csv(buff) smeas = buff.getvalue() # print smeas del data.measurements s = dumper.dump(data, format='yaml') fjson = fname + '.yaml' fzip = fname + '.zip' fcsv = fname + '.csv' with ZipFile(fzip, 'w', compression=ZIP_DEFLATED) as myzip: myzip.writestr(fjson.name, s) myzip.writestr(fcsv.name, smeas) # myzip.writestr('schematic.txt', self.data.schematic) print '"%s" was saved' % fzip
def __repr__(self): return 'Node(%r,\n%s)' % ( self._api, indent(pprint.pformat(bunch.unbunchify(self)), prefix=' '))
def as_dict(self): return bunch.unbunchify(self)
json=json_data, headers=headers, verify=False) return attribute_update_response if __name__ == "__main__": pi_webapi_server = 'SECRETWEBSERVER' pi_asset_server = 'SECRETAFSERVER' pi_asset_database = 'Sandbox' # 1.0 -------------------------------------------------------------------------------------------------------------- # Get the root level PI Web API pi_webapi_root = get_pi_webapi_root(pi_webapi_server) print unbunchify(pi_webapi_root) # 2.0 -------------------------------------------------------------------------------------------------------------- # Get AF server af_server = get_asset_server(pi_webapi_root, pi_asset_server) # 3.0 -------------------------------------------------------------------------------------------------------------- # Get AF database from server af_database = get_database(af_server, pi_asset_database) # Get AF element from database af_element = get_element(af_database, "MyElement") # Get AF attribute from element af_attribute = get_attribute(af_element, "MyAttribute")
attribute_update_response = req.patch(af_attribute_dict.Links.Self, json=json_data, headers=headers, verify=False) return attribute_update_response if __name__ == "__main__": pi_webapi_server = 'SECRETWEBSERVER' pi_asset_server = 'SECRETAFSERVER' pi_asset_database = 'Sandbox' # 1.0 -------------------------------------------------------------------------------------------------------------- # Get the root level PI Web API pi_webapi_root = get_pi_webapi_root(pi_webapi_server) print unbunchify(pi_webapi_root) # 2.0 -------------------------------------------------------------------------------------------------------------- # Get AF server af_server = get_asset_server(pi_webapi_root, pi_asset_server) # 3.0 -------------------------------------------------------------------------------------------------------------- # Get AF database from server af_database = get_database(af_server, pi_asset_database) # Get AF element from database af_element = get_element(af_database, "MyElement") # Get AF attribute from element af_attribute = get_attribute(af_element, "MyAttribute")
from bunch import Bunch, bunchify, unbunchify import json import yaml b = Bunch() b = bunchify({"foo": "bar", "baz": ["qqr", "abc"], "ppp": {"a": "b", "c": "d"}}) print b print json.dumps(b) print yaml.dump(b) print unbunchify(b)