class_docstr: Class for controlling display and output settings.
class_docstr_tok: ["Class","for","controlling","display","and","output","settings","."]
docstr: Switch default options and backend if new backend is supplied in
  items.
docstr_tok: ["Switch","default","options","and","backend","if","new","backend","is","supplied","in","items","."]
code: def update_options(cls, options, items):
      """
      Switch default options and backend if new backend is supplied in
      items.
      """
      # Get new backend
      backend_spec = items.get("backend", Store.current_backend)
      split = backend_spec.split(":")
      backend, mode = (
          split if len(split) == 2 else (split[0], "default")
      )
      if ":" not in backend_spec:
          backend_spec += ":default"
  
      if "max_branches" in items:
          print(
              "Warning: The max_branches option is now deprecated. Ignoring."
          )
          del items["max_branches"]
  
      # Get previous backend
      prev_backend = Store.current_backend
      renderer = Store.renderers[prev_backend]
      prev_backend_spec = prev_backend + ":" + renderer.mode
  
      # Update allowed formats
      for p in ["fig", "holomap"]:
          cls.allowed[p] = list_formats(p, backend_spec)
  
      # Return if backend invalid and let validation error
      if backend not in Store.renderers:
          options["backend"] = backend_spec
          return options
  
      # Get backend specific options
      backend_options = dict(cls._backend_options[backend_spec])
      cls._backend_options[prev_backend_spec] = {
          k: v for k, v in cls.options.items() if k in cls.remembered
      }
  
      # Fill in remembered options with defaults
      for opt in cls.remembered:
          if opt not in backend_options:
              backend_options[opt] = cls.defaults[opt]
  
      # Switch format if mode does not allow it
      for p in ["fig", "holomap"]:
          if backend_options.get(p) not in cls.allowed[p]:
              backend_options[p] = cls.allowed[p][0]
  
      # Ensure backend and mode are set
      backend_options["backend"] = backend_spec
      backend_options["mode"] = mode
  
      return backend_options
  
imports: from collections import defaultdict
  from ..core import Store
label_desc: Use image node_id 7 for calling the OutputSettings obj's underlying member method code with example usage: obj.update_options(cls, options, items) and returns: backend_options, options