Source code for dtale.config

import json
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.get(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", ) max_column_width = get_config_val( config, curr_app_settings, "max_column_width", section="app", getter="getint" ) max_row_height = get_config_val( config, curr_app_settings, "max_row_height", section="app", getter="getint" ) main_title = get_config_val(config, curr_app_settings, "main_title", section="app") main_title_font = get_config_val( config, curr_app_settings, "main_title_font", section="app" ) query_engine = get_config_val( config, curr_app_settings, "query_engine", section="app" ) open_custom_filter_on_startup = get_config_val( config, curr_app_settings, "open_custom_filter_on_startup", section="app", getter="getboolean", ) open_predefined_filters_on_startup = get_config_val( config, curr_app_settings, "open_predefined_filters_on_startup", section="app", getter="getboolean", ) hide_drop_rows = get_config_val( config, curr_app_settings, "hide_drop_rows", 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, max_column_width=max_column_width, max_row_height=max_row_height, main_title=main_title, main_title_font=main_title_font, query_engine=query_engine, open_custom_filter_on_startup=open_custom_filter_on_startup, open_predefined_filters_on_startup=open_predefined_filters_on_startup, hide_drop_rows=hide_drop_rows, ) )
[docs]def load_chart_settings(config): if config is None: return curr_chart_settings = global_state.get_chart_settings() scatter_points = get_config_val( config, curr_chart_settings, "scatter_points", section="charts", getter="getint" ) three_dimensional_points = get_config_val( config, curr_chart_settings, "3d_points", section="charts", getter="getint" ) global_state.set_chart_settings( {"scatter_points": scatter_points, "3d_points": three_dimensional_points} )
[docs]def load_auth_settings(config): if config is None: return curr_auth_settings = global_state.get_auth_settings() active = get_config_val( config, curr_auth_settings, "active", section="auth", getter="getboolean" ) username = get_config_val(config, curr_auth_settings, "username", section="auth") password = get_config_val(config, curr_auth_settings, "password", section="auth") global_state.set_auth_settings( dict( active=active, username=username, password=password, ) )
[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, column_formats=None, nan_display=None, sort=None, locked=None, background_mode=None, range_highlights=None, vertical_headers=False, ) 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(",") 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" ) return dict_merge(defaults, config_options, options)
LOADED_CONFIG = get_config() load_app_settings(LOADED_CONFIG) load_auth_settings(LOADED_CONFIG) load_chart_settings(LOADED_CONFIG)