class_docstr: Abstract callable that provides concrete output paths when writing
  dataset blocks.
  
  Current subclasses:
      DefaultBlockWritePathProvider
docstr: Resolves and returns the write path for the given dataset block. When
  implementing this method, care should be taken to ensure that a unique
  path is provided for every dataset block.
  
  Args:
      base_path: The base path to write the dataset block out to. This is
          expected to be the same for all blocks in the dataset, and may
          point to either a directory or file prefix.
      filesystem: The filesystem implementation that will be used to
          write a file out to the write path returned.
      dataset_uuid: Unique identifier for the dataset that this block
          belongs to.
      block: The block to write.
      task_index: Ordered index of the write task within its parent
          dataset.
      block_index: Ordered index of the block to write within its parent
          write task.
      file_format: File format string for the block that can be used as
          the file extension in the write path returned.
  
  Returns:
      The dataset block write path.
docstr_tok: ["Resolves","and","returns","the","write","path","for","the","given","dataset","block",".","When","implementing","this","method",",","care","should","be","taken","to","ensure","that","a","unique","path","is","provided","for","every","dataset","block",".","Args",":","base_path",":","The","base","path","to","write","the","dataset","block","out","to",".","This","is","expected","to","be","the","same","for","all","blocks","in","the","dataset",",","and","may","point","to","either","a","directory","or","file","prefix",".","filesystem",":","The","filesystem","implementation","that","will","be","used","to","write","a","file","out","to","the","write","path","returned",".","dataset_uuid",":","Unique","identifier","for","the","dataset","that","this","block","belongs","to",".","block",":","The","block","to","write",".","task_index",":","Ordered","index","of","the","write","task","within","its","parent","dataset",".","block_index",":","Ordered","index","of","the","block","to","write","within","its","parent","write","task",".","file_format",":","File","format","string","for","the","block","that","can","be","used","as","the","file","extension","in","the","write","path","returned",".","Returns",":","The","dataset","block","write","path","."]
code: def _get_write_path_for_block(
      self,
      base_path: str,
      *,
      filesystem: Optional["pyarrow.fs.FileSystem"] = None,
      dataset_uuid: Optional[str] = None,
      task_index: Optional[int] = None,
      block_index: Optional[int] = None,
      file_format: Optional[str] = None,
  ) -> str:
      """
      Resolves and returns the write path for the given dataset block. When
      implementing this method, care should be taken to ensure that a unique
      path is provided for every dataset block.
  
      Args:
          base_path: The base path to write the dataset block out to. This is
              expected to be the same for all blocks in the dataset, and may
              point to either a directory or file prefix.
          filesystem: The filesystem implementation that will be used to
              write a file out to the write path returned.
          dataset_uuid: Unique identifier for the dataset that this block
              belongs to.
          block: The block to write.
          task_index: Ordered index of the write task within its parent
              dataset.
          block_index: Ordered index of the block to write within its parent
              write task.
          file_format: File format string for the block that can be used as
              the file extension in the write path returned.
  
      Returns:
          The dataset block write path.
      """
      raise NotImplementedError
  
file_path: ray/python/ray/data/datasource/block_path_provider.py
imports: import posixpath
  from typing import TYPE_CHECKING, Optional
  from ray.util.annotations import DeveloperAPI
label_desc: Use image node_id 1 for calling the BlockWritePathProvider obj's underlying member method code with example usage: obj._get_write_path_for_block(base_path) without return types