class_docstr: Interface for defining a custom :class:`~ray.data.Dataset` datasource.
  
  To read a datasource into a dataset, use :meth:`~ray.data.read_datasource`.
class_docstr_tok: ["Interface","for","defining","a","custom",":","class",":","`","~ray.data.Dataset","`","datasource",".","To","read","a","datasource","into","a","dataset",",","use",":","meth",":","`","~ray.data.read_datasource","`","."]
docstr: Execute the read and return read tasks.
  
  Args:
      parallelism: The requested read parallelism. The number of read
          tasks should equal to this value if possible.
  
  Returns:
      A list of read tasks that can be executed to read blocks from the
      datasource in parallel.
docstr_tok: ["Execute","the","read","and","return","read","tasks",".","Args",":","parallelism",":","The","requested","read","parallelism",".","The","number","of","read","tasks","should","equal","to","this","value","if","possible",".","Returns",":","A","list","of","read","tasks","that","can","be","executed","to","read","blocks","from","the","datasource","in","parallel","."]
code: def get_read_tasks(self, parallelism: int) -> List["ReadTask"]:
      """Execute the read and return read tasks.
  
      Args:
          parallelism: The requested read parallelism. The number of read
              tasks should equal to this value if possible.
  
      Returns:
          A list of read tasks that can be executed to read blocks from the
          datasource in parallel.
      """
      raise NotImplementedError
  
imports: import warnings
  from typing import Any, Callable, Iterable, List, Optional
  import numpy
  import ray
  from ray.data._internal.execution.interfaces import TaskContext
  from ray.data._internal.util import _check_pyarrow_version
  from ray.data.block import Block, BlockAccessor, BlockMetadata
  from ray.data.context import DataContext
  from ray.types import ObjectRef
  from ray.util.annotations import Deprecated, DeveloperAPI, PublicAPI
label_desc: Use image node_id 9 for calling the Datasource obj's underlying member method code with example usage: obj.get_read_tasks(parallelism) without return types