def from_dict(cls, node_dict):
"""
Creates a node from a dict representation
:param node_dict: dict
:return: datamodel.base.node.Node
"""
# import classes, so we can instantiate them at need
import robograph.datamodel
# retrieve the class object so we can instantiate the node
klass = eval(node_dict['class'])
node = klass(name=node_dict['name'])
# now retrieve the parameters
parameters = dict()
for p in node_dict['params']:
parameters[p] = node_dict['params'][p]
# are we deserializing a pickled function?
if isinstance(node_dict['params'][p], unicode):
if "py/bytes" in node_dict['params'][p]:
parameters[p] = cloudpickle.loads(jsonpickle.loads(node_dict['params'][p]))
node.input(parameters)
node.set_output_label(node_dict['output_label'])
return node
评论列表
文章目录