Skip to content

Add function to load configuration file respecting `$XDG_CONFIG_HOME`

Here is a prototype:

import os
import pathlib

def load_user_defaults(path: pathlib.Path) -> exposed.rc.UserDefaults:
    """Loads user defaults from its default location.

    This function respects `$XDG_CONFIG_HOME`, as the base directory where
    configuration files sit.

    Parameters:

      path: subpath, inside `$XDG_CONFIG_HOME`, where to read the configuration
        file from


    Returns:

      The user configuration, read out from the configuration file.

    """

    from exposed import rc

    config_env = os.environ.get("XDG_CONFIG_HOME")

    if config_env is None:
        config_dir = pathlib.Path.home() / ".config"
    else:
        config_dir = pathlib.Path(config_env)

    return rc.UserDefaults(config_dir / path)