docstr: This function should be called by the derived class to create the
  inputs and outputs on the block
  
  Args:
     input_indexes : list
        list of indexes (can be tuples) defining the set to be used for
        the input variables
     output_indexes : list
        list of indexes (can be tuples) defining the set to be used for
        the input variables
docstr_tok: ["This","function","should","be","called","by","the","derived","class","to","create","the","inputs","and","outputs","on","the","block","Args",":","input_indexes",":","list","list","of","indexes","(","can","be","tuples",")","defining","the","set","to","be","used","for","the","input","variables","output_indexes",":","list","list","of","indexes","(","can","be","tuples",")","defining","the","set","to","be","used","for","the","input","variables"]
code: def _setup_inputs_outputs(self, *, input_indexes, output_indexes):
      """
      This function should be called by the derived class to create the
      inputs and outputs on the block
  
      Args:
         input_indexes : list
            list of indexes (can be tuples) defining the set to be used for
            the input variables
         output_indexes : list
            list of indexes (can be tuples) defining the set to be used for
            the input variables
      """
      self.__input_indexes = input_indexes
      self.__output_indexes = output_indexes
      if not input_indexes or not output_indexes:
          # TODO: implement this check higher up in the class hierarchy to provide more contextual error msg
          raise ValueError(
              "OmltBlock must have at least one input and at least one output."
          )
  
      self.inputs_set = pyo.Set(initialize=input_indexes)
      self.inputs = pyo.Var(self.inputs_set, initialize=0)
      self.outputs_set = pyo.Set(initialize=output_indexes)
      self.outputs = pyo.Var(self.outputs_set, initialize=0)
  
imports: import warnings
  import pyomo.environ
  from pyomo.core.base.block import _BlockData, declare_custom_block
label_desc: Use image node_id 2 for calling the OmltBlockData obj's underlying member method code with example usage: obj._setup_inputs_outputs() without return types