code: def get_optimiser_args(tester, nn_type, optimiser_args):
      """Returns arguments for the optimiser."""
      reporter = get_reporter("default")
      options = load_options(optimiser_args, reporter=reporter)
      if nn_type == "cnn":
          options.pre_eval_points = tester.cnn_init_pool
          options.pre_eval_vals = tester.cnn_init_vals
          options.pre_eval_true_vals = tester.cnn_init_vals
          constraint_checker = tester.cnn_constraint_checker
          mutation_op = tester.cnn_mutation_op
      else:
          options.pre_eval_points = tester.mlp_init_pool
          options.pre_eval_vals = tester.mlp_init_vals
          options.pre_eval_true_vals = tester.mlp_init_vals
          constraint_checker = tester.mlp_constraint_checker
          mutation_op = tester.mlp_mutation_op
      options_clone = deepcopy(options)
      return (
          options,
          options_clone,
          reporter,
          constraint_checker,
          mutation_op,
      )
  
imports: from copy import deepcopy
  from argparse import Namespace
  import unittest
  from .None import nn_ga_optimiser
  from .nn_domains import NNDomain
  from .syn_nn_functions import cnn_syn_func1, mlp_syn_func1
  from .nn_domains import CNNConstraintChecker, MLPConstraintChecker
  from .nn_modifiers import get_nn_modifier_from_args
  from .unittest_nn_modifier_class import networks_are_equal
  from .nn_opt_utils import get_initial_cnn_pool, get_initial_mlp_pool
  from ..exd.experiment_caller import FunctionCaller
  from ..exd.worker_manager import SyntheticWorkerManager
  from ..utils.reporters import get_reporter
  from ..utils.option_handler import load_options
  from ..utils.base_test_class import BaseTestClass, execute_tests
label_desc: Use image node_id 2 for calling a global function with example usage: get_optimiser_args(tester, nn_type, optimiser_args) and returns: options,  options_clone,  reporter,  constraint_checker,  mutation_op