docs: def get_configuration(config_file=None):
      """Return an initialized ConfigParser.
  
      If no config filename is presented, `DEFAULT_USER_INI` is used if present.
      Also reads the built-in presets.
  
      :param config_file: string path
      """
      parser = configparser.ConfigParser()
      if config_file is None:
          # fallback to default user config file
          config_file = os.path.join(os.getenv("HOME"), DEFAULT_USER_INI)
          if not os.path.isfile(config_file):
              config_file = None
      else:
          if not os.path.isfile(config_file):
              raise ValueError("%s is not a file" % config_file)
  
      configs = [get_filename(PRESETS_INI)]
      if config_file:
          configs.append(config_file)
      LOG.debug("Attempting to read configuration from %r", configs)
      read_configs = parser.read(configs)
      LOG.debug("Successfully read configuration from %r", read_configs)
      LOG.debug("config file sections: %r", parser.sections())
      return parser