code: def gen_del(self):
      out = """
  // del {shortname}
  static void
  Py_{shortname}_del  (Py_{shortname} * self, PyObject * unused)
  {{""".format(
          **self.__dict__
      )
      for input_param in self.do_inputs:
          if input_param["type"] == "fmat_t *":
              out += """
    free(self->{0[name]}.data);""".format(
                  input_param
              )
      for o in self.outputs:
          name = o["name"]
          del_out = delfromtype_fn[o["type"]]
          out += """
    if (self->{name}) {{
      {del_out}(self->{name});
    }}""".format(
              del_out=del_out, name=name
          )
      del_fn = get_name(self.del_proto)
      out += """
    if (self->o) {{
      {del_fn}(self->o);
    }}
    Py_TYPE(self)->tp_free((PyObject *) self);
  }}
  """.format(
          del_fn=del_fn
      )
      return out
  
label_desc: Use image node_id 12 for calling the MappedObject obj's underlying member method code with example usage: obj.gen_del() and returns: out