Improvements
* Refactor `MultiRangeIndexer` & `DataFrameIndexer`: addition of ABC `_BaseIndexer` with virtual method `_run_query` and generator `_BaseIndexer.__iter__`; remove `_iter_state`; and fix bugs related to incomplete queries [1134](https://github.com/TileDB-Inc/TileDB-Py/pull/1134)
Bug Fixes
* Fix race condition in `{Dense,Sparse}Array.__new__` [1096](https://github.com/TileDB-Inc/TileDB-Py/pull/1096)
* Correcting `stats_dump` issues: Python stats now also in JSON form if `json=True`, resolve name mangling of `json` argument and `json` module, and pulling "timer" and "counter" stats from `stats_json_core` for `libtiledb`>=2.3 [1140](https://github.com/TileDB-Inc/TileDB-Py/pull/1140)
API Changes
* Addition of `tiledb.DictionaryFilter` [1074](https://github.com/TileDB-Inc/TileDB-Py/pull/1074)
* Add support for `Datatype::TILEDB_BOOL` [1110](https://github.com/TileDB-Inc/TileDB-Py/pull/1110)
* Addition of `Group.__contains__` to check if member with given name is in Group [1125](https://github.com/TileDB-Inc/TileDB-Py/pull/1125)
* Support with-statement for `Group`s [1124](https://github.com/TileDB-Inc/TileDB-Py/pull/1124)
* Addition of `keys`, `values`, and `items` to `Group.meta` [1123](https://github.com/TileDB-Inc/TileDB-Py/pull/1123)
* `Group.member` also returns name if given [1141](https://github.com/TileDB-Inc/TileDB-Py/pull/1141)
TileDB-Py 0.15.1 Release Notes
TileDB Embedded updates: