diff --git a/.github/workflows/conda-env-create.yml b/.github/workflows/conda-env-create.yml index b2f471dca..d87ec770a 100644 --- a/.github/workflows/conda-env-create.yml +++ b/.github/workflows/conda-env-create.yml @@ -40,7 +40,7 @@ jobs: cp ./requirements/requirements*.txt /tmp/ mkdir /tmp/docs/ cp ./docs/requirements*.txt /tmp/docs/ - - uses: mamba-org/provision-with-micromamba@main + - uses: mamba-org/setup-micromamba@v1 with: environment-name: tiatoolbox environment-file: ${{ matrix.requirements }} diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 4d486766b..1e5e48f28 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -6,7 +6,7 @@ env: REGISTRY: ghcr.io IMAGE_NAME: TissueImageAnalytics/tiatoolbox image: ghcr.io/tissueimageanalytics/tiatoolbox - TOOLBOX_VER: 1.5.1 + TOOLBOX_VER: 1.6.0 jobs: build-and-push-image: diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 7250d6d6b..19e12a787 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -30,7 +30,7 @@ jobs: sudo apt update sudo apt-get install -y libopenslide-dev openslide-tools libopenjp2-7 libopenjp2-tools python -m pip install --upgrade pip - python -m pip install ruff==0.8.1 pytest pytest-cov pytest-runner + python -m pip install ruff==0.8.2 pytest pytest-cov pytest-runner pip install -r requirements/requirements.txt - name: Cache tiatoolbox static assets uses: actions/cache@v3 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index be0827bcb..3b8c12c6e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -60,7 +60,7 @@ repos: - id: rst-inline-touching-normal # Detect mistake of inline code touching normal text in rst. - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.8.1 + rev: v0.8.2 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix] diff --git a/AUTHORS.md b/AUTHORS.md index 5b574b01b..6852c01d6 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -11,11 +11,11 @@ - Mostafa Jahanifar \<@mostafajahanifar> - David Epstein \<@DavidBAEpstein> - Adam Shephard \<@adamshephard> -- Ruqayya Awan \<@ruqayya> - Abdullah Alsalemi \<@Abdol> +- Ruqayya Awan \<@ruqayya> +- Jiaqi Lv \<@Jiaqi-Lv> - Dmitrii Blaginin \<@blaginin> - Srijay Deshpande \<@Srijay-lab> -- Jiaqi Lv\<@Jiaqi-Lv> - George Hadjigeorgiou \<@ghadjigeorghiou> - Abishekraj Vinayagar Gnanasambandam \<@AbishekRajVG> - Wenqi Lu \<@wenqi006> @@ -23,6 +23,7 @@ ## Contributors +- George Batchkala \<@GeorgeBatch> - Rob Jewsbury \<@R-J96> - Mohsin Bilal \<@mbhahsmi> - Fayyaz Minhas \<@foxtrotmike> diff --git a/CITATION.cff b/CITATION.cff index a279ed361..b3ebd06ef 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -44,7 +44,7 @@ authors: given-names: "Shan E Ahmed" orcid: "https://orcid.org/0000-0002-1097-1738" title: "TIAToolbox as an end-to-end library for advanced tissue image analytics" -version: 1.5.1 # TIAToolbox version +version: 1.6.0 # TIAToolbox version doi: 10.5281/zenodo.5802442 date-released: 2022-10-20 url: "https://github.com/TissueImageAnalytics/tiatoolbox" diff --git a/HISTORY.md b/HISTORY.md index 7c80e8083..e91e09310 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,6 +1,69 @@ # History -## 1.5.1 (2023-12-16) +## TIAToolbox v1.6.0 (2024-12-12) + +### Major Updates and Feature Improvements + +- **Foundation Models Support via `timm` API** (#856, contributed by @GeorgeBatch) + - Introduced `TimmBackbone` for running additional PyTorch Image Models. + - Tested models include `UNI`, `Prov-GigaPath`, and `H-optimus-0`. + - Added an example notebook demonstrating feature extraction with foundation models. + - `timm` added as a dependency. +- **Performance Enhancements with `torch.compile`** (#716) + - Improved performance on newer GPUs using `torch.compile`. +- **Multichannel Input Support in `WSIReader`** (#742) +- **AnnotationStore Filtering for Patch Extraction** (#822) +- **Python 3.12 Support** +- **Deprecation of Python 3.8 Support** +- **CLI Response Time Improvements** (#795) + +### API Changes + +- **Device Specification Update** (#882) + - Replaced `has_gpu` with `device` for specifying GPU or CPU usage, aligning with PyTorch's `Model.to()` functionality. +- **Windows Compatibility Enhancement** (#769) + - Replaced `POWER` with explicit multiplication. + +### Bug Fixes and Other Changes + +- **TIFFWSIReader Bound Reading Adjustment** (#777) + - Fixed `read_bound` to use adjusted bounds. + - Reduced code complexity in `WSIReader` (#814). +- **Annotation Rendering Fixes** (#813) + - Corrected rendering of annotations with holes. +- **Non-Tiled TIFF Support in `WSIReader`** (#807, contributed by @GeorgeBatch) +- **HoVer-Net Documentation Update** (#751) + - Corrected class output information. +- **Citation File Fix for `cffconvert`** (#869, contributed by @Alon-Alexander) +- **Bokeh Compatibility Updates** + - Updated `bokeh_app` for compatibility with `bokeh>=3.5.0`. + - Switched from `size` to `radius` for `bokeh>3.4.0` compatibility (#796). +- **JSON Extraction Fixes** (#772) + - Restructured SQL expression construction for JSON properties with dots in keys. +- **VahadaneExtractor Warning** (#871) + - Added warning due to changes in `scikit-learn>0.23.0` dictionary learning (#382). +- **PatchExtractor Error Message Refinement** (#883) +- **Immutable Output Fix in `WSIReader`** (#850) + +### Development-Related Changes + +- **Mypy Checks Added** + - Applied to `utils`, `tools`, `data`, `annotation`, and `cli/common`. +- **ReadTheDocs PDF Build Deprecation** +- **Formatter Update** + - Replaced `black` with `ruff-format`. +- **Dependency Removal** + - Removed `jinja2`. +- **Test Environment Update** + - Updated to `Ubuntu 24.04`. +- **Conda Environment Workflow Update** + - Implemented `micromamba` setup. +- **Codecov Reporting Fix** (#811) + **Full Changelog:** https://github.com/TissueImageAnalytics/tiatoolbox/compare/v1.5.1...v1.6.0 + +______________________________________________________________________ + +## TIAToolbox v1.5.1 (2023-12-16) ### Development related changes @@ -9,7 +72,9 @@ **Full Changelog:** https://github.com/TissueImageAnalytics/tiatoolbox/compare/v1.5.0...v1.5.1 -## 1.5.0 (2023-12-15) +______________________________________________________________________ + +## TIAToolbox v1.5.0 (2023-12-15) ### Major Updates and Feature Improvements @@ -54,13 +119,17 @@ **Full Changelog:** https://github.com/TissueImageAnalytics/tiatoolbox/compare/v1.4.0...v1.5.0 -## 1.4.1 (2023-07-25) +______________________________________________________________________ + +## TIAToolbox v1.4.1 (2023-07-25) ### Bug Fixes and Other Changes - Fix dictionary changed size Error #626 (#605) -## 1.4.0 (2023-04-24) +______________________________________________________________________ + +## TIAToolbox v1.4.0 (2023-04-24) ### Major Updates and Feature Improvements @@ -109,7 +178,9 @@ - Uses `pyproject.toml` for `bdist_wheel`, `pytest` and `isort` - Adds `joblib` and `numba` as dependencies. -## 1.3.3 (2023-03-02) +______________________________________________________________________ + +## TIAToolbox v1.3.3 (2023-03-02) ### Major Updates and Feature Improvements @@ -127,7 +198,9 @@ None - Restricts dependency versions for compatibility -## 1.3.2 (2023-02-17) +______________________________________________________________________ + +## TIAToolbox v1.3.2 (2023-02-17) ### Major Updates and Feature Improvements @@ -145,7 +218,9 @@ None - Restricts wsidicom version to \<0.7.0 for compatibility -## 1.3.1 (2022-12-20) +______________________________________________________________________ + +## TIAToolbox v1.3.1 (2022-12-20) ### Major Updates and Feature Improvements @@ -172,7 +247,9 @@ None - Prevent test dumping file to root - Removes duplicate functions to generate parameterized test scenarios -## 1.3.0 (2022-10-20) +______________________________________________________________________ + +## TIAToolbox v1.3.0 (2022-10-20) ### Major Updates and Feature Improvements @@ -214,7 +291,9 @@ None - Adds pip install workflow to resolve dependencies when requirements file is updated - Improves tiatoolbox import using LazyLoader -## 1.2.1 (2022-07-07) +______________________________________________________________________ + +## TIAToolbox v1.2.1 (2022-07-07) ### Major Updates and Feature Improvements @@ -238,7 +317,9 @@ None - Adds pre-commit hooks to check requirements consistency. - Adds GitHub Action to resolve conda environment checks on Windows and Ubuntu. -## 1.2.0 (2022-07-05) +______________________________________________________________________ + +## TIAToolbox v1.2.0 (2022-07-05) ### Major Updates and Feature Improvements @@ -270,7 +351,9 @@ None - Sets up GitHub Actions Workflow. - Travis CI will be removed in future release. -## 1.1.0 (2022-05-07) +______________________________________________________________________ + +## TIAToolbox v1.1.0 (2022-05-07) ### Major Updates and Feature Improvements @@ -311,7 +394,9 @@ None - Improves CLI definitions to make it easier to integrate new functions. - Fixes compile options for test_annotation_stores.py -## 1.0.1 (2022-01-31) +______________________________________________________________________ + +## TIAToolbox v1.0.1 (2022-01-31) ### Major Updates and Feature Improvements @@ -332,7 +417,9 @@ None - Fixes flake8 linting issues and typos - Conditional pytest.skipif to skip GPU tests on travis while running them locally or elsewhere -## 1.0.0 (2021-12-23) +______________________________________________________________________ + +## TIAToolbox v1.0.0 (2021-12-23) ### Major Updates and Feature Improvements @@ -375,7 +462,9 @@ None - On demand imports for some libraries for performance - Improves performance of mask based patch extraction -## 0.8.0 (2021-10-27) +______________________________________________________________________ + +## TIAToolbox v0.8.0 (2021-10-27) ### Major Updates and Feature Improvements @@ -421,7 +510,9 @@ None - Updates to new GitHub organisation name in the repo - Fixes related links -## 0.7.0 (2021-09-16) +______________________________________________________________________ + +## TIAToolbox v0.7.0 (2021-09-16) ### Major and Feature Improvements @@ -455,7 +546,9 @@ None - Removes conda build on readthedocs build - Adds extra checks to pre-commit, e.g., import sorting, spellcheck etc. Detailed list can be found on this [commit](https://github.com/TissueImageAnalytics/tiatoolbox/commit/662a143e915fa55416badd992d8e7358211730a6). -## 0.6.0 (2021-05-11) +______________________________________________________________________ + +## TIAToolbox v0.6.0 (2021-05-11) ### Major and Feature Improvements @@ -481,7 +574,7 @@ None ______________________________________________________________________ -## 0.5.2 (2021-03-12) +## TIAToolbox v0.5.2 (2021-03-12) ### Bug Fixes and Other Changes @@ -490,7 +583,7 @@ ______________________________________________________________________ ______________________________________________________________________ -## 0.5.1 (2020-12-31) +## TIAToolbox v0.5.1 (2020-12-31) ### Bug Fixes and Other Changes @@ -499,7 +592,7 @@ ______________________________________________________________________ ______________________________________________________________________ -## 0.5.0 (2020-12-30) +## TIAToolbox v0.5.0 (2020-12-30) ### Major and Feature Improvements @@ -557,7 +650,7 @@ ______________________________________________________________________ ______________________________________________________________________ -## 0.4.0 (2020-10-25) +## TIAToolbox v0.4.0 (2020-10-25) ### Major and Feature Improvements @@ -584,7 +677,7 @@ ______________________________________________________________________ ______________________________________________________________________ -## 0.3.0 (2020-07-19) +## TIAToolbox v0.3.0 (2020-07-19) ### Major and Feature Improvements @@ -603,7 +696,7 @@ ______________________________________________________________________ ______________________________________________________________________ -## 0.2.2 (2020-07-12) +## TIAToolbox v0.2.2 (2020-07-12) ### Major and Feature Improvements @@ -619,7 +712,7 @@ ______________________________________________________________________ ______________________________________________________________________ -## 0.2.1 (2020-07-10) +## TIAToolbox v0.2.1 (2020-07-10) ### Major and Feature Improvements @@ -635,7 +728,7 @@ ______________________________________________________________________ ______________________________________________________________________ -## 0.2.0 (2020-07-10) +## TIAToolbox v0.2.0 (2020-07-10) ### Major and Feature Improvements @@ -661,6 +754,6 @@ ______________________________________________________________________ ______________________________________________________________________ -## 0.1.0 (2020-05-28) +## TIAToolbox v0.1.0 (2020-05-28) - First release on PyPI. diff --git a/docs/installation.rst b/docs/installation.rst index 80895e939..28c9911da 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -109,6 +109,13 @@ After installing `Anaconda `_. In some cases, WSL2 runs faster on Python codes and therefore we **recommend** this option. From sources diff --git a/pyproject.toml b/pyproject.toml index dbc4df49a..2d29ca7c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,7 +25,7 @@ [tool.poetry] name = "TIA Centre" -version = "1.5.1" +version = "1.6.0" description = "test" authors = ["TIA Centre "] diff --git a/requirements/requirements_dev.txt b/requirements/requirements_dev.txt index ff66ca0fa..73d4bc1e4 100644 --- a/requirements/requirements_dev.txt +++ b/requirements/requirements_dev.txt @@ -10,7 +10,7 @@ pytest>=7.2.0 pytest-cov>=4.0.0 pytest-runner>=6.0 pytest-xdist[psutil] -ruff==0.8.1 # This will be updated by pre-commit bot to latest version +ruff==0.8.2 # This will be updated by pre-commit bot to latest version toml>=0.10.2 twine>=4.0.1 wheel>=0.37.1 diff --git a/setup.py b/setup.py index efb7f20ec..31d30e5e9 100644 --- a/setup.py +++ b/setup.py @@ -63,6 +63,6 @@ test_suite="tests", tests_require=test_requirements, url="https://github.com/TissueImageAnalytics/tiatoolbox", - version="1.5.1", + version="1.6.0", zip_safe=False, ) diff --git a/tiatoolbox/__init__.py b/tiatoolbox/__init__.py index 80ad1b4ff..7cc3aa0cf 100644 --- a/tiatoolbox/__init__.py +++ b/tiatoolbox/__init__.py @@ -16,7 +16,7 @@ __author__ = """TIA Centre""" __email__ = "tialab@dcs.warwick.ac.uk" -__version__ = "1.5.1" +__version__ = "1.6.0" # This will set the tiatoolbox external data # default to be the user home folder, should work on both Window and Unix/Linux diff --git a/tiatoolbox/wsicore/wsireader.py b/tiatoolbox/wsicore/wsireader.py index b3efd7ca4..482a503f4 100644 --- a/tiatoolbox/wsicore/wsireader.py +++ b/tiatoolbox/wsicore/wsireader.py @@ -1185,7 +1185,7 @@ def read_rect( Defaults to 'constant'. See :func:`numpy.pad` for available modes. pad_constant_values (int, tuple(int)): - Constant values to use when padding with cmonstant pad mode. + Constant values to use when padding with constant pad mode. Passed to the :func:`numpy.pad` `constant_values` argument. Default is 0. coord_space (str):