docs: def transformation_post(node_id, info_in_id, info_out_id):
      """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.
      """
      exp = experiment(session)
  
      # Get the parameters.
      transformation_type = request_parameter(parameter="transformation_type",
                                              parameter_type="known_class",
                                              default=models.Transformation)
      if type(transformation_type) == Response:
          return transformation_type
  
      # Check that the node etc. exists.
      node = models.Node.query.get(node_id)
      if node is None:
          return error_response(
              error_type="/transformation POST, node does not exist")
  
      info_in = models.Info.query.get(info_in_id)
      if info_in is None:
          return error_response(
              error_type="/transformation POST, info_in does not exist",
              participant=node.participant)
  
      info_out = models.Info.query.get(info_out_id)
      if info_out is None:
          return error_response(
              error_type="/transformation POST, info_out does not exist",
              participant=node.participant)
  
      try:
          # execute the request
          transformation = transformation_type(info_in=info_in,
                                               info_out=info_out)
          assign_properties(transformation)
          session.commit()
  
          # ping the experiment
          exp.transformation_post_request(node=node,
                                          transformation=transformation)
          session.commit()
      except:
          return error_response(error_type="/tranaformation POST failed",
                                participant=node.participant)
  
      # return the data
      return success_response(field="transformation",
                              data=transformation.__json__(),
                              request_type="transformation post")