docstr: Initiates the options.
  
  Can also be useful to change parameters after class initiation.
  
  Parameters
  ----------
  options : dict
  
  Returns
  -------
  None
code: def init_options(self, options):
      """
      Initiates the options.
  
      Can also be useful to change parameters after class initiation.
  
      Parameters
      ----------
      options : dict
  
      Returns
      -------
      None
  
      """
      # Update 'options' dict passed to optimize.minimize
      # Do this first so we don't mutate `options` below.
      self.minimizer_kwargs["options"].update(options)
  
      # Ensure that 'jac', 'hess', and 'hessp' are passed directly to
      # `minimize` as keywords, not as part of its 'options' dictionary.
      for opt in ["jac", "hess", "hessp"]:
          if opt in self.minimizer_kwargs["options"]:
              self.minimizer_kwargs[opt] = self.minimizer_kwargs[
                  "options"
              ].pop(opt)
  
      # Default settings:
      self.minimize_every_iter = options.get(
          "minimize_every_iter", True
      )
  
      # Algorithm limits
      # Maximum number of iterations to perform.
      self.maxiter = options.get("maxiter", None)
      # Maximum number of function evaluations in the feasible domain
      self.maxfev = options.get("maxfev", None)
      # Maximum number of sampling evaluations (includes searching in
      # infeasible points
      self.maxev = options.get("maxev", None)
      # Maximum processing runtime allowed
      self.init = time.time()
      self.maxtime = options.get("maxtime", None)
      if "f_min" in options:
          # Specify the minimum objective function value, if it is known.
          self.f_min_true = options["f_min"]
          self.f_tol = options.get("f_tol", 1e-4)
      else:
          self.f_min_true = None
  
      self.minhgrd = options.get("minhgrd", None)
  
      # Objective function knowledge
      self.symmetry = options.get("symmetry", False)
      if self.symmetry:
          self.symmetry = [
              0,
          ] * len(self.bounds)
      else:
          self.symmetry = None
      # Algorithm functionality
      # Only evaluate a few of the best candidates
      self.local_iter = options.get("local_iter", False)
      self.infty_cons_sampl = options.get("infty_constraints", True)
  
      # Feedback
      self.disp = options.get("disp", False)
  
imports: from collections import namedtuple
  import time
  import logging
  import warnings
  import sys
  import numpy
  from scipy import spatial
  from scipy.optimize import OptimizeResult, minimize, Bounds
  from scipy.optimize._optimize import MemoizeJac
  from scipy.optimize._constraints import new_bounds_to_old
  from scipy.optimize._minimize import standardize_constraints
  from scipy._lib._util import _FunctionWrapper
  from scipy.optimize._shgo_lib._complex import Complex
label_desc: Use image node_id 2 for calling the SHGO obj's underlying member method code with example usage: obj.init_options(options) without return types