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