def _parse_yaml_config(config_data=None):
    """
    Gets the configuration from the found furious.yaml
    file and parses the data.
    Returns:
        a dictionary parsed from the yaml file
    """
    data_map = default_config()

    # If we were given config data to use, use it.  Otherwise, see if there is
    # a furious.yaml to read the config from.  Note that the empty string will
    # result in the default config being used.
    if config_data is None:
        config_data = _load_yaml_config()

    if not config_data:
        logging.debug("No custom furious config, using default config.")
        return data_map

    # TODO: validate the yaml contents
    config = yaml.safe_load(config_data)

    # If there was a valid custom config, it will be a dict.  Otherwise,
    # ignore it.
    if isinstance(config, dict):
        # Apply the custom config over the default config.  This allows us to
        # extend functionality without breaking old stuff.
        data_map.update(config)
    elif not None:
        raise InvalidYamlFile("The furious.yaml file "
                              "is invalid yaml")

    return data_map
def _parse_yaml_config ( config_data = None ) : data_map = default_config ( ) if config_data is None : config_data = _load_yaml_config ( ) if not config_data : logging . debug ( "No custom furious config, using default config." ) return data_map config = yaml . safe_load ( config_data ) if isinstance ( config , dict ) : data_map . update ( config ) elif not None : raise InvalidYamlFile ( "The furious.yaml file " "is invalid yaml" ) return data_map
Gets the configuration from the found furious.yaml
    file and parses the data.
    Returns:
        a dictionary parsed from the yaml file