Source code for dtale.config

import os

from six.moves.configparser import ConfigParser

import dtale.global_state as global_state
from dtale.utils import dict_merge

LOADED_CONFIG = None


[docs]def load_config_state(path): if not path: return None # load .ini file with properties specific to D-Tale config = ConfigParser() config.read(path) return config
[docs]def get_config(): global LOADED_CONFIG if LOADED_CONFIG: return LOADED_CONFIG ini_path = os.path.expandvars( os.environ.get("DTALE_CONFIG") or "$HOME/.config/dtale.ini" ) if os.path.isfile(ini_path): return load_config_state(ini_path) return None
[docs]def set_config(path): global LOADED_CONFIG LOADED_CONFIG = load_config_state(path)
[docs]def get_config_val(config, defaults, prop, getter="get", section="show"): if config.has_option(section, prop): return getattr(config, getter)(section, prop) return defaults[prop]
[docs]def load_app_settings(config): if config is None: return curr_app_settings = global_state.get_app_settings() theme = get_config_val(config, curr_app_settings, "theme", section="app") pin_menu = get_config_val( config, curr_app_settings, "pin_menu", section="app", getter="getboolean" ) language = get_config_val(config, curr_app_settings, "language", section="app") github_fork = get_config_val( config, curr_app_settings, "github_fork", section="app", getter="getboolean", ) hide_shutdown = get_config_val( config, curr_app_settings, "hide_shutdown", section="app", getter="getboolean", ) global_state.set_app_settings( dict( theme=theme, pin_menu=pin_menu, language=language, github_fork=github_fork, hide_shutdown=hide_shutdown, ) )
[docs]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, ) 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", "getboolean" ) 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(",") return dict_merge(defaults, config_options, options)
LOADED_CONFIG = get_config() load_app_settings(LOADED_CONFIG)