|  | @@ -1,35 +1,31 @@
 | 
	
		
			
				|  |  |  import logging
 | 
	
		
			
				|  |  | -import os
 | 
	
		
			
				|  |  | +from typing import Any
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import yaml
 | 
	
		
			
				|  |  |  from yaml import YAMLError
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  logger = logging.getLogger(__name__)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -def load_yaml_file(file_path: str, ignore_error: bool = False) -> dict:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def load_yaml_file(file_path: str, ignore_error: bool = True, default_value: Any = {}) -> Any:
 | 
	
		
			
				|  |  |      """
 | 
	
		
			
				|  |  | -    Safe loading a YAML file to a dict
 | 
	
		
			
				|  |  | +    Safe loading a YAML file
 | 
	
		
			
				|  |  |      :param file_path: the path of the YAML file
 | 
	
		
			
				|  |  |      :param ignore_error:
 | 
	
		
			
				|  |  | -        if True, return empty dict if error occurs and the error will be logged in warning level
 | 
	
		
			
				|  |  | +        if True, return default_value if error occurs and the error will be logged in warning level
 | 
	
		
			
				|  |  |          if False, raise error if error occurs
 | 
	
		
			
				|  |  | -    :return: a dict of the YAML content
 | 
	
		
			
				|  |  | +    :param default_value: the value returned when errors ignored
 | 
	
		
			
				|  |  | +    :return: an object of the YAML content
 | 
	
		
			
				|  |  |      """
 | 
	
		
			
				|  |  |      try:
 | 
	
		
			
				|  |  | -        if not file_path or not os.path.exists(file_path):
 | 
	
		
			
				|  |  | -            raise FileNotFoundError(f'Failed to load YAML file {file_path}: file not found')
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        with open(file_path, encoding='utf-8') as file:
 | 
	
		
			
				|  |  | +        with open(file_path, encoding='utf-8') as yaml_file:
 | 
	
		
			
				|  |  |              try:
 | 
	
		
			
				|  |  | -                return yaml.safe_load(file)
 | 
	
		
			
				|  |  | +                return yaml.safe_load(yaml_file)
 | 
	
		
			
				|  |  |              except Exception as e:
 | 
	
		
			
				|  |  |                  raise YAMLError(f'Failed to load YAML file {file_path}: {e}')
 | 
	
		
			
				|  |  | -    except FileNotFoundError as e:
 | 
	
		
			
				|  |  | -        logger.debug(f'Failed to load YAML file {file_path}: {e}')
 | 
	
		
			
				|  |  | -        return {}
 | 
	
		
			
				|  |  |      except Exception as e:
 | 
	
		
			
				|  |  |          if ignore_error:
 | 
	
		
			
				|  |  |              logger.warning(f'Failed to load YAML file {file_path}: {e}')
 | 
	
		
			
				|  |  | -            return {}
 | 
	
		
			
				|  |  | +            return default_value
 | 
	
		
			
				|  |  |          else:
 | 
	
		
			
				|  |  |              raise e
 |