As discussed in https://github.com/single-cell-data/SOMA/pull/76, the full implementation of ExperientAxisQuery should be provided by the base SOMA implementation since it does not vary from storage engine to storage engine. This copies most of the implementation from the existing TileDB version, with some reorganization to make the main query class a little smaller:
Pulls more of the caching-specific behavior of join IDs into the _JoinIDCache class.
Pulls more indexing-related work into the _AxisIndexer class.
Makes formerly-public AxisIndexer private. (If this should be public this can be easily reverted.)
Renames methods to by_[axis].
Separates out index caching logic from main methods.
As discussed in https://github.com/single-cell-data/SOMA/pull/76, the full implementation of
ExperientAxisQuery
should be provided by the base SOMA implementation since it does not vary from storage engine to storage engine. This copies most of the implementation from the existing TileDB version, with some reorganization to make the main query class a little smaller:_JoinIDCache
class._AxisIndexer
class.AxisIndexer
private. (If this should be public this can be easily reverted.)by_[axis]
._Axis
enum internally for axis selection.AxisQueryResult
name.