code: def direct_ft_maximise(obj, bounds, max_evals, *args, **kwargs):
      """
      A wrapper for maximising a function which calls direct_ft_minimise. See arguments
      under direct_ft_minimise for more details.
      """
      min_obj = lambda x: -obj(x)
      min_val, max_pt, history = direct_ft_minimise(
          min_obj, bounds, max_evals, *args, **kwargs
      )
      max_val = -min_val
      if history is not None:
          history.curr_opt_vals = -history.curr_opt_vals
          history.curr_true_opt_vals = history.curr_opt_vals
          history.query_vals = -history.query_vals
      return max_val, max_pt, history
  
imports: from __future__ import print_function
  from __future__ import division
  from argparse import Namespace
  from datetime import datetime
  from warnings import warn
  import os
  import numpy
  from .general_utils import map_to_bounds
  from .doo import DOOFunction, pdoo_wrap
label_desc: Use image node_id 6 for calling a global function with example usage: direct_ft_maximise(obj, bounds, max_evals) and returns: max_val,  max_pt,  history