class_docstr: An example datasource that generates ranges of numbers from [0..n).
code: def estimate_inmemory_data_size(self) -> Optional[int]:
      if self._block_format == "tensor":
          element_size = int(np.product(self._tensor_shape))
      else:
          element_size = 1
      return 8 * self._n * element_size
  
file_path: ray/python/ray/data/datasource/range_datasource.py
imports: import builtins
  from copy import copy
  from typing import Iterable, List, Optional, Tuple
  import numpy
  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.data.datasource import Datasource, ReadTask
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 2 for calling the RangeDatasource obj's underlying member method code with example usage: obj.estimate_inmemory_data_size() and returns: unknown