@app.route(<EOL>"<STR_LIT>", methods=["<STR_LIT:POST>"]<EOL>)<EOL>def transformation_post(node_id, info_in_id, info_out_id):
exp = Experiment(session)<EOL>transformation_type = request_parameter(<EOL>parameter="<STR_LIT>",<EOL>parameter_type="<STR_LIT>",<EOL>default=models.Transformation,<EOL>)<EOL>if type(transformation_type) == Response:<EOL><INDENT>return transformation_type<EOL><DEDENT>node = models.Node.query.get(node_id)<EOL>if node is None:<EOL><INDENT>return error_response(<EOL>error_type="<STR_LIT>" "<STR_LIT>".format(node_id)<EOL>)<EOL><DEDENT>info_in = models.Info.query.get(info_in_id)<EOL>if info_in is None:<EOL><INDENT>return error_response(<EOL>error_type="<STR_LIT>".format(<EOL>info_in_id<EOL>),<EOL>participant=node.participant,<EOL>)<EOL><DEDENT>info_out = models.Info.query.get(info_out_id)<EOL>if info_out is None:<EOL><INDENT>return error_response(<EOL>error_type="<STR_LIT>".format(<EOL>info_out_id<EOL>),<EOL>participant=node.participant,<EOL>)<EOL><DEDENT>try:<EOL><INDENT>transformation = transformation_type(info_in=info_in, info_out=info_out)<EOL>assign_properties(transformation)<EOL>session.commit()<EOL>exp.transformation_post_request(node=node, transformation=transformation)<EOL>session.commit()<EOL><DEDENT>except Exception:<EOL><INDENT>return error_response(<EOL>error_type="<STR_LIT>", participant=node.participant<EOL>)<EOL><DEDENT>return success_response(transformation=transformation.__json__())<EOL>
Transform an info.

    The ids of the node, info in and info out must all be in the url.
    You can also pass transformation_type.