What's Changed
* ENH: Remove deprecated `--use-feature=in-tree-build`
* ENH: Versions as strings, not numbers, so that `3.1 != 3.10`, etc.
* COMP: Use `numpy<1.24` so that `np.bool*` used by other packages does not give errors
* STYLE: Simplify study dictionary keys
* COMP: Use current versions of `flake8`, `itk`, `pytest`
* ENH: Bump version to `2.3.0`
* ENH: Make predictions with wrapped model
* ENH: Implement `CreateTorchDataloader`
* ENH: Spin off `read_large_image` functionality from `CreateTensorFlowDataset`
* ENH: Remove Tensorflow from framework-agnostic functionality
* ENH: Spin off `ChunkLocations` functionality from `CreateTensorFlowDataset`
* ENH: Add `tensorflow` (cpu & gpu) as dependency
* STYLE: Format Python with `black -C`
* BUG: Upper bound of mask_threshold is 1.0 not 1.1
* ENH: Demonstrate predictions in `pytorch_stream.ipynb`
* STYLE: Simplify study dictionary keys
* STYLE: Shorten variable names
* ENH: Support both deprecated and current keys in `study_description`
* ENH: Concatenate `tensorflow.Datasets` more performantly
* DOC: Simplify study dictionary creation
* ENH: Record `overlap_width` and `overlap_height` in study dictionary
* ENH: Add `get_tiles` method to get just tiles from a study dictionary
* PERF: Make `_py_read_chunk` be `staticmethod`
* PERF: Support `num_workers` and `worker_index` in `CreateTensorFlowDataset`
* PERF: More efficiently create input to `tf.data.Dataset.from_tensor_slices`
* PERF: Use `large_image_source_tiff` to read a chunk from disk
* PERF: Use N log N approach for splitting tiles into chunks
* STYLE: Remove unused code for `tensorflow.data.Dataset.from_generator`
* PERF: Avoid large-memory intermediates when building `one_chunk_per_slice`
* PERF: Have `tensorflow.py_function` implicitly convert response to a tensor
* PERF: Create frequently used `tensorflow.constant` values only once
* PERF: Convert some class methods to `staticmethod`
* PERF: Replace some `for` loops with Python comprehensions
* BUG: Limit `private_threadpool_size` to 1 to keep Tensorflow from freezing on GPU
* ENH: update `pooch` links - `pytorch`
* BUG: Fix confusion between mask width and height
* PERF: Use `numpy`/`scipy`/`itertools` instead of loops/comprehensions for masks
* COMP: Placate Python 3.6, which cannot handle `dtype=(np.int64, (2,))`
* COMP: Install Python package `large_image[tiff]`
New Contributors
* cooperlab made their first contribution in https://github.com/DigitalSlideArchive/HistomicsStream/pull/114
**Full Changelog**: https://github.com/DigitalSlideArchive/HistomicsStream/compare/v2.2.4...v2.3.0