code: def emit_Slice(self, IR_node):
      if self.IR_graph.get_parent(IR_node.name, [0]).type == "Shape":
          pass
      else:
          starts = IR_node.get_attr("starts")
          starts = [starts[0], starts[-1]] + starts[1:-1]
          ends = IR_node.get_attr("ends")
          ends = [ends[0], ends[-1]] + ends[1:-1]
          ends = [i if i != 0 else sys.maxsize for i in ends]
          self.add_body(
              1,
              "{:15} = helper.make_node('Slice', inputs=['{}'], outputs=['{}'], starts={}, ends={}, name='{}')".format(
                  IR_node.variable_name,
                  self.parent_variable_name(IR_node),
                  IR_node.variable_name,
                  starts,
                  ends,
                  IR_node.variable_name,
              ),
          )
          self.nodes.append(IR_node.variable_name)
  
imports: from mmdnn.conversion.common.DataStructure.emitter import Emitter
  from mmdnn.conversion.common.IR.IR_graph import IRGraph
  import os.path
  import mmdnn.conversion.common.IR.graph_pb2
  import numpy
  import sys
label_desc: Use image node_id 29 for calling the OnnxEmitter obj's underlying member method code with example usage: obj.emit_Slice(IR_node) without return types