Example of POST vpz/input in Python language¶
For the simulator ‘wwdm.vpz’ whose Id is 266, enter the Python code/instructions in a Python interpreter.
Example illustrating :
modifying begin,
modifying duration,
modifying some parameters with ‘pars’,
value ‘all’ as ‘parselect’,
‘tree’ as style of presentation,
‘json’ as format,
with ‘application/json’ as ‘Content-Type’
Memo
# -*- coding: utf-8 -*- """erecord_cmn.utils.using.send_post_and_receive Methods that may be used by a user calling the erecord web services from python """ import pycurl import io import json def send_post_and_receive(url, inputdata): """Send POST request and return response datas""" # buffer = io.BytesIO() c = pycurl.Curl() c.setopt(c.POST, 1) c.setopt(c.HTTPHEADER, ['Content-Type: application/json']) c.setopt(c.URL, url) #c.setopt(c.FOLLOWLOCATION, True) json_inputdata = json.dumps( inputdata) c.setopt(c.POSTFIELDS, json_inputdata) c.setopt(c.WRITEFUNCTION, buffer.write) c.perform() buffer_str = buffer.getvalue() buffer.close() buffer_str = buffer_str.decode("utf8") responsedata = json.loads(buffer_str) return responsedata ## -*- coding: utf-8 -*- """erecord_cmn.utils.using.content_simulation_inputs_tree Methods that may be used by a user calling the erecord web services from python """ import json from __future__ import print_function # python 2.7 version case def content_simulation_inputs_tree(vpzinput): """Content of simulation input information in 'tree' style of presentation (vpzinput) """ # keys = vpzinput.keys() if "vleduration" in keys : # duration vleduration = vpzinput['vleduration'] duration_value = vleduration['value'] #duration_verbose_name = vleduration['verbose_name'] #duration_id = vleduration['id'] #vleduration print("duration value : ", duration_value) if "vlebegin" in keys : # begin vlebegin = vpzinput['vlebegin'] begin_value = vlebegin['value'] #begin_verbose_name = vlebegin['verbose_name'] #begin_id = vlebegin['id'] #vlebegin print("begin value : ", begin_value) if "vlecond_list" in keys : # conditions and parameters conds = vpzinput['vlecond_list'] for cond in conds : #cond.keys() cond_verbose_name = cond['verbose_name'] cond_id = cond['id'] cond_name = cond['name'] print("\nCondition name ", cond_name) #print(cond_id, cond_name, cond_verbose_name) print("List of its parameters (id, cname, pname, type, value, selected, verbose_name) :") pars = cond['vlepar_list'] for par in pars : #par.keys() par_verbose_name = par['verbose_name'] par_id = par['id'] par_cname = par['cname'] par_pname = par['pname'] par_type = par['type'] par_value = json.loads(par['value']) par_selected = par['selected'] print("- ", par_id, par_cname, par_pname, par_type, par_value, par_selected, par_verbose_name) #type(par_value) if "vleview_list" in keys : # views and output datas identity views = vpzinput['vleview_list'] for view in views : #view.keys() view_verbose_name = view['verbose_name'] view_id = view['id'] view_name = view['name'] view_type = view['type'] view_timestep = view['timestep'] view_output_format = view['output_format'] view_output_location = view['output_location'] view_output_name = view['output_name'] view_output_plugin = view['output_plugin'] print("\nView name ", view_name) #print(view_id, view_name, view_type, view_timestep, view_output_format, view_output_location, view_output_name, view_output_plugin, view_verbose_name) print("List of its output datas (id, vname, oname, shortname, selected, verbose_name) :") outs = view['vleout_list'] for out in outs : #out.keys() out_verbose_name = out['verbose_name'] out_id = out['id'] out_vname = out['vname'] out_oname = out['oname'] out_shortname = out['shortname'] out_selected = out['selected'] print("- ", out_id, out_vname, out_oname, out_shortname, out_selected, out_verbose_name) ## Python code : ####################### # request and response ####################### inputdata = {"vpz":266, "mode":"tree", "format":"json"} inputdata["duration"] = 6 inputdata["begin"] = 2453982.0 inputdata["parselect"] = "all" # some parameters modification with 'pars' parameter_A = {"selection_name":"cond_wwdm.A", "cname":"cond_wwdm","pname":"A","value":0.0064} parameter_Eb = {"selection_name":"cond_wwdm.Eb", "cname":"cond_wwdm","pname":"Eb","value":1.86} pars = list() pars.append(parameter_A) pars.append(parameter_Eb) inputdata["pars"] = pars responsedata = send_post_and_receive( url="http://erecord.toulouse.inra.fr:8000/vpz/input/", inputdata=inputdata) responsedata keys = responsedata.keys() keys ####################################################### # responsedata in case of 'tree' style of presentation ####################################################### # id as VpzInput if "id" in keys : id = responsedata['id'] content_simulation_inputs_tree(vpzinput=responsedata) pass