code: def build_show_options(options=None):
      defaults = dict(
          host=None,
          port=None,
          debug=False,
          subprocess=True,
          reaper_on=True,
          open_browser=False,
          notebook=False,
          force=False,
          ignore_duplicate=True,
          app_root=None,
          allow_cell_edits=True,
          inplace=False,
          drop_index=False,
          precision=2,
          show_columns=None,
          hide_columns=None,
          column_formats=None,
          nan_display=None,
          sort=None,
          locked=None,
          background_mode=None,
          range_highlights=None,
          vertical_headers=False,
          hide_shutdown=None,
          column_edit_options=None,
          auto_hide_empty_columns=False,
          highlight_filter=False,
          hide_header_editor=None,
          lock_header_menu=None,
          hide_header_menu=None,
          hide_main_menu=None,
          hide_column_menus=None,
          enable_custom_filters=None,
          enable_web_uploads=None,
      )
      config_options = {}
      config = get_config()
      if config and config.has_section("show"):
          config_options["host"] = get_config_val(
              config, defaults, "host"
          )
          config_options["port"] = get_config_val(
              config, defaults, "port"
          )
          config_options["debug"] = get_config_val(
              config, defaults, "debug", "getboolean"
          )
          config_options["subprocess"] = get_config_val(
              config, defaults, "subprocess", "getboolean"
          )
          config_options["reaper_on"] = get_config_val(
              config, defaults, "reaper_on", "getboolean"
          )
          config_options["open_browser"] = get_config_val(
              config, defaults, "open_browser", "getboolean"
          )
          config_options["notebook"] = get_config_val(
              config, defaults, "notebook", "getboolean"
          )
          config_options["force"] = get_config_val(
              config, defaults, "force", "getboolean"
          )
          config_options["ignore_duplicate"] = get_config_val(
              config, defaults, "ignore_duplicate", "getboolean"
          )
          config_options["app_root"] = get_config_val(
              config, defaults, "app_root"
          )
          config_options["allow_cell_edits"] = get_config_val(
              config, defaults, "allow_cell_edits"
          )
          if isinstance(
              config_options["allow_cell_edits"], string_types
          ):
              if config_options["allow_cell_edits"] == "True":
                  config_options["allow_cell_edits"] = True
              elif config_options["allow_cell_edits"] == "False":
                  config_options["allow_cell_edits"] = False
              else:
                  config_options["allow_cell_edits"] = config_options[
                      "allow_cell_edits"
                  ].split(",")
  
          config_options["inplace"] = get_config_val(
              config, defaults, "inplace", "getboolean"
          )
          config_options["drop_index"] = get_config_val(
              config, defaults, "drop_index", "getboolean"
          )
          config_options["precision"] = get_config_val(
              config, defaults, "precision", "getint"
          )
          config_options["show_columns"] = get_config_val(
              config, defaults, "show_columns"
          )
          if config_options["show_columns"]:
              config_options["show_columns"] = config_options[
                  "show_columns"
              ].split(",")
          config_options["hide_columns"] = get_config_val(
              config, defaults, "hide_columns"
          )
          if config_options["hide_columns"]:
              config_options["hide_columns"] = config_options[
                  "hide_columns"
              ].split(",")
          config_options["column_formats"] = get_config_val(
              config, defaults, "column_formats"
          )
          if config_options["column_formats"]:
              config_options["column_formats"] = json.loads(
                  config_options["column_formats"]
              )
          config_options["nan_display"] = get_config_val(
              config, defaults, "nan_display"
          )
          config_options["sort"] = get_config_val(
              config, defaults, "sort"
          )
          if config_options["sort"]:
              config_options["sort"] = [
                  tuple(sort.split("|"))
                  for sort in config_options["sort"].split(",")
              ]
          config_options["locked"] = get_config_val(
              config, defaults, "locked"
          )
          if config_options["locked"]:
              config_options["locked"] = config_options["locked"].split(
                  ","
              )
          config_options["background_mode"] = get_config_val(
              config, defaults, "background_mode"
          )
          config_options["range_highlights"] = get_config_val(
              config, defaults, "range_highlights"
          )
          if config_options["range_highlights"]:
              config_options["range_highlights"] = json.loads(
                  config_options["range_highlights"]
              )
          config_options["vertical_headers"] = get_config_val(
              config, defaults, "vertical_headers", "getboolean"
          )
          config_options["column_edit_options"] = get_config_val(
              config, defaults, "column_edit_options"
          )
          if config_options["column_edit_options"]:
              config_options["column_edit_options"] = json.loads(
                  config_options["column_edit_options"]
              )
          config_options["auto_hide_empty_columns"] = get_config_val(
              config, defaults, "auto_hide_empty_columns", "getboolean"
          )
          config_options["highlight_filter"] = get_config_val(
              config, defaults, "highlight_filter", "getboolean"
          )
  
      return dict_merge(defaults, config_options, options)
  
file_path: dtale/dtale/config.py
imports: import json
  import os
  from six import string_types
  from six.moves.configparser import ConfigParser
  import dtale.global_state
  from dtale.utils import dict_merge
label_desc: Use image node_id 8 for calling a global function with example usage: build_show_options(options) and returns: dict_merge