code: def _find_file(self, file_name: str, lookup_dir: Path) -> Path or None:
          '''Find a file in a directory by name. Check subdirectories recursively.
  
          :param file_name: Name of the file
          :lookup_dir: Starting directory
  
          :returns: Path to the found file or None if the file was not found
          :raises: FileNotFoundError
          '''
  
          self.logger.debug('Trying to find the file {file_name} inside the directory {lookup_dir}')
  
          result = None
  
          for item in lookup_dir.rglob('*'):
              if item.name == file_name:
                  result = item
                  break
          else:
              raise FileNotFoundError(file_name)
  
          self.logger.debug('File found: {result}')
  
          return resulf _find_file(self, file_name: str, lookup_dir: Path) -> Path or None:
          '''Find a file in a directory by name. Check subdirectories recursively.
  
          :param file_name: Name of the file
          :lookup_dir: Starting directory
  
          :returns: Path to the found file or None if the file was not found
          :raises: FileNotFoundError
          '''
  
          self.logger.debug('Trying to find the file {file_name} inside the directory {lookup_dir}')
  
          result = None
  
          for item in lookup_dir.rglob('*'):
              if item.name == file_name:
                  result = item
                  break
          else:
              raise FileNotFoundError(file_name)
  
          self.logger.debug('File found: {result}')
  
          return result
docs: Find a file in a directory by name. Check subdirectories recursively.
  
          :param file_name: Name of the file
          :lookup_dir: Starting directory
  
          :returns: Path to the found file or None if the file was not found
          :raises: FileNotFoundError