code: def make_node(self, slc, stop=None, step=None):
      # We need to accept and handle in make_node inputs the node
      # inputs to allow redoing a new op elsewhere in the graph by
      # optimization.
      if isinstance(slc, slice):
          assert stop is None
          assert step is None
          inp = [slc.start, slc.stop, slc.step]
      else:
          inp = [slc, stop, step]
      return Apply(
          self, list(map(as_int_none_variable, inp)), [slicetype()]
      )
  
imports: import numpy
  import pytensor
  from pytensor import _as_symbolic
  from pytensor.gradient import DisconnectedType
  from pytensor.graph.basic import Apply, Constant, Variable
  from pytensor.graph.op import Op
  from pytensor.link.c.type import Generic, Type
  from pytensor.tensor.type import integer_dtypes
label_desc: Use image node_id 1 for calling the MakeSlice obj's underlying member method code with example usage: obj.make_node(slc, stop, step) and returns: Apply