docs: def path_walk(
      p: tcod.path.AStar, recompute: bool
  ) -> Union[Tuple[int, int], Tuple[None, None]]:
      """Return the next (x, y) point in a path, or (None, None) if it's empty.
  
      When ``recompute`` is True and a previously valid path reaches a point
      where it is now blocked, a new path will automatically be found.
  
      Args:
          p (AStar): An AStar instance.
          recompute (bool): Recompute the path automatically.
      Returns:
          Union[Tuple[int, int], Tuple[None, None]]:
              A single (x, y) point, or (None, None)
      """
      x = ffi.new("int *")
      y = ffi.new("int *")
      if lib.TCOD_path_walk(p._path_c, x, y, recompute):
          return x[0], y[0]
      return None, None