def get_setting(self, name, section=None, default=None, user=True):
    '''return a setting from the environment (first priority) and then
       secrets (second priority) if one can be found. If not, return None.

       Parameters
       ==========
       section: the section in the config, defaults to self.name
       name: they key (index) of the setting to look up
       default: (optional) if not found, return default instead.
       user: if True, load from user config. Otherwise, main config

    ''' 
    loader = self._load_config_user
    if not user:
        loader = self._load_config

    if section is None:
        section = self.name

    # First priority is the environment

    setting = os.environ.get(name)

    # Second priority is the secrets file

    if setting is None:

        # Loads user config on level of helper (already indexed)
        config = loader()
        if section in config:
            if name.lower() in config[section]:
                setting = config[section][name.lower()]

    # Third priority, return a default

    if setting is None and default is not None:
        setting = default

    return setting