Hi,
How come there are two incompatible protocol for RandomAccessDataSource?
https://github.com/google/grain/blob/main/grain/_src/python/dataset/base.py#L34
and
https://github.com/google/grain/blob/main/grain/_src/python/data_sources.py#L131
This makes things complicated as MapDataset.source() takes the former, but the latter is the one that is public.