| 123456789101112131415161718192021222324252627282930 | 
							- from pathlib import Path
 - 
 - 
 - def search_file_upwards(
 -     base_dir_path: Path,
 -     target_file_name: str,
 -     max_search_parent_depth: int,
 - ) -> Path:
 -     """
 -     Find a target file in the current directory or its parent directories up to a specified depth.
 -     :param base_dir_path: Starting directory path to search from.
 -     :param target_file_name: Name of the file to search for.
 -     :param max_search_parent_depth: Maximum number of parent directories to search upwards.
 -     :return: Path of the file if found, otherwise None.
 -     """
 -     current_path = base_dir_path.resolve()
 -     for _ in range(max_search_parent_depth):
 -         candidate_path = current_path / target_file_name
 -         if candidate_path.is_file():
 -             return candidate_path
 -         parent_path = current_path.parent
 -         if parent_path == current_path:  # reached the root directory
 -             break
 -         else:
 -             current_path = parent_path
 - 
 -     raise ValueError(
 -         f"File '{target_file_name}' not found in the directory '{base_dir_path.resolve()}' or its parent directories"
 -         f" in depth of {max_search_parent_depth}."
 -     )
 
 
  |