docs: 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