code: def make_node(self, *inputs):
      inputs = list(map(as_variable, inputs))
      for input in inputs:
          if not isinstance(input.type, MyType):
              print(input, input.type, type(input), type(input.type))
              raise Exception("Error 1")
      outputs = [
          MyVariable(sum([input.type.thingy for input in inputs]))
      ]
      return Apply(self, inputs, outputs)
  
imports: from __future__ import absolute_import, print_function, division
  from itertools import count
  import pickle
  import unittest
  from nose.plugins.skip import SkipTest
  import numpy
  from theano import sparse, shared, tensor
  from theano.gof.graph import Apply, as_string, clone, general_toposort, inputs, io_toposort, is_same_graph, Variable
  from theano.gof.op import Op
  from theano.gof.type import Type
label_desc: Use image node_id 1 for calling the MyOp obj's underlying member method code with example usage: obj.make_node() and returns: Apply