Skip to content

Commit e14a4fc

Browse files
shaneahmedJohn-Ppre-commit-ci[bot]adamshephardmeasty
authored
🔖 Release 1.6.0 (#895)
## 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:** v1.5.1...v1.6.0 --------- Co-authored-by: John Pocock <John-P@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Adam Shephard <39619155+adamshephard@users.noreply.github.com> Co-authored-by: Mark Eastwood <20169086+measty@users.noreply.github.com> Co-authored-by: Mostafa Jahanifar <74412979+mostafajahanifar@users.noreply.github.com> Co-authored-by: Simon Graham <20071401+simongraham@users.noreply.github.com> Co-authored-by: Abdol A <u2271662@live.warwick.ac.uk> Co-authored-by: Jiaqi-Lv <60471431+Jiaqi-Lv@users.noreply.github.com> Co-authored-by: Dmitrii Blaginin <blaginin@mbp.lan> Co-authored-by: behnazelhaminia <30952176+behnazelhaminia@users.noreply.github.com> Co-authored-by: George Batchkala <46561186+GeorgeBatch@users.noreply.github.com> Co-authored-by: vqdang <24943262+vqdang@users.noreply.github.com> Co-authored-by: Jiaqi Lv <lvjiaqi9@gmail.com> Co-authored-by: Alon Alexander <alon008@gmail.com>
1 parent 490be26 commit e14a4fc

File tree

162 files changed

+27651
-24660
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

162 files changed

+27651
-24660
lines changed

.github/workflows/conda-env-create.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
cp ./requirements/requirements*.txt /tmp/
4141
mkdir /tmp/docs/
4242
cp ./docs/requirements*.txt /tmp/docs/
43-
- uses: mamba-org/provision-with-micromamba@main
43+
- uses: mamba-org/setup-micromamba@v1
4444
with:
4545
environment-name: tiatoolbox
4646
environment-file: ${{ matrix.requirements }}

.github/workflows/docker-publish.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ env:
66
REGISTRY: ghcr.io
77
IMAGE_NAME: TissueImageAnalytics/tiatoolbox
88
image: ghcr.io/tissueimageanalytics/tiatoolbox
9-
TOOLBOX_VER: 1.5.1
9+
TOOLBOX_VER: 1.6.0
1010

1111
jobs:
1212
build-and-push-image:
@@ -15,8 +15,6 @@ jobs:
1515
fail-fast: true
1616
matrix:
1717
include:
18-
- dockerfile: ./docker/3.8/Debian/Dockerfile
19-
mtag: py3.8-debian
2018
- dockerfile: ./docker/3.9/Debian/Dockerfile
2119
mtag: py3.9-debian
2220
- dockerfile: ./docker/3.9/Ubuntu/Dockerfile
@@ -25,7 +23,15 @@ jobs:
2523
mtag: py3.10-debian
2624
- dockerfile: ./docker/3.10/Ubuntu/Dockerfile
2725
mtag: py3.10-ubuntu
28-
- dockerfile: ./docker/3.10/Ubuntu/Dockerfile
26+
- dockerfile: ./docker/3.11/Debian/Dockerfile
27+
mtag: py3.11-debian
28+
- dockerfile: ./docker/3.11/Ubuntu/Dockerfile
29+
mtag: py3.11-ubuntu
30+
- dockerfile: ./docker/3.12/Debian/Dockerfile
31+
mtag: py3.12-debian
32+
- dockerfile: ./docker/3.12/Ubuntu/Dockerfile
33+
mtag: py3.12-ubuntu
34+
- dockerfile: ./docker/3.12/Ubuntu/Dockerfile
2935
mtag: latest
3036
permissions:
3137
contents: read

.github/workflows/mypy-type-check.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ jobs:
1212

1313
build:
1414

15-
runs-on: ubuntu-22.04
15+
runs-on: ubuntu-24.04
1616

1717
strategy:
1818
matrix:
19-
python-version: ["3.8", "3.9", "3.10", "3.11"]
19+
python-version: ["3.9", "3.10", "3.11", "3.12"]
2020

2121
steps:
2222

@@ -28,9 +28,12 @@ jobs:
2828
- name: Checkout repository
2929
uses: actions/checkout@v3
3030

31-
- name: Setup mypy
31+
- name: Install dependencies
3232
run: |
33-
pip install mypy
33+
sudo apt update
34+
sudo apt-get install -y libopenslide-dev openslide-tools libopenjp2-7 libopenjp2-tools
35+
python -m pip install --upgrade pip
36+
pip install -r requirements/requirements_dev.txt
3437
3538
- name: Perform type checking
3639
run: |
@@ -39,4 +42,8 @@ jobs:
3942
tiatoolbox/__main__.py \
4043
tiatoolbox/typing.py \
4144
tiatoolbox/tiatoolbox.py \
42-
tiatoolbox/utils/*.py
45+
tiatoolbox/utils \
46+
tiatoolbox/tools \
47+
tiatoolbox/data \
48+
tiatoolbox/annotation \
49+
tiatoolbox/cli/common.py

.github/workflows/pip-install.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ jobs:
1212
strategy:
1313
fail-fast: true
1414
matrix:
15-
python-version: ["3.8", "3.9", "3.10", "3.11"]
16-
os: [ubuntu-22.04, windows-latest, macos-latest]
15+
python-version: ["3.9", "3.10", "3.11", "3.12"]
16+
os: [ubuntu-24.04, windows-latest, macos-latest]
1717
steps:
1818
- name: Set up Python ${{ matrix.python-version }}
1919
uses: actions/setup-python@v3

.github/workflows/python-package.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ on:
1313
jobs:
1414
build:
1515

16-
runs-on: ubuntu-22.04
16+
runs-on: ubuntu-24.04
1717
strategy:
1818
fail-fast: true
1919
matrix:
20-
python-version: ["3.8", "3.9", "3.10", "3.11"]
20+
python-version: ["3.9", "3.10", "3.11", "3.12"]
2121

2222
steps:
2323
- uses: actions/checkout@v3
@@ -30,7 +30,7 @@ jobs:
3030
sudo apt update
3131
sudo apt-get install -y libopenslide-dev openslide-tools libopenjp2-7 libopenjp2-tools
3232
python -m pip install --upgrade pip
33-
python -m pip install ruff==0.0.286 pytest pytest-cov pytest-runner
33+
python -m pip install ruff==0.8.2 pytest pytest-cov pytest-runner
3434
pip install -r requirements/requirements.txt
3535
- name: Cache tiatoolbox static assets
3636
uses: actions/cache@v3
@@ -58,12 +58,14 @@ jobs:
5858
- name: Test with pytest
5959
run: |
6060
pytest --basetemp={envtmpdir} \
61-
--cov=tiatoolbox --cov-report=term --cov-report=xml \
61+
--cov=tiatoolbox --cov-report=term --cov-report=xml --cov-config=pyproject.toml \
6262
--capture=sys \
6363
--durations=10 --durations-min=1.0 \
6464
--maxfail=1
6565
- name: Report test coverage to Codecov
66-
uses: codecov/codecov-action@v2
66+
uses: codecov/codecov-action@v4
67+
env:
68+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
6769
with:
6870
files: coverage.xml
6971
fail_ci_if_error: false
@@ -78,7 +80,7 @@ jobs:
7880
fail-ci-on-error: false
7981

8082
release:
81-
runs-on: ubuntu-22.04
83+
runs-on: ubuntu-24.04
8284
timeout-minutes: 15
8385
needs: build
8486
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/pre-release' || startsWith(github.ref, 'refs/tags/v')

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,13 @@ ENV/
109109

110110
# IDE settings
111111
.vscode/
112+
.idea/
112113

113114
# Mac generated
114115
.DS_Store
115116

116117
# vim/vi generated
117118
*.swp
119+
120+
# output zarr generated
121+
*.zarr

.pre-commit-config.yaml

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ci:
22
autofix_prs: true
3-
autoupdate_commit_msg: '[pre-commit.ci] pre-commit autoupdate'
4-
autoupdate_schedule: 'weekly'
3+
autoupdate_commit_msg: ':technologist: pre-commit autoupdate'
4+
autoupdate_schedule: 'monthly'
55
repos:
66
- repo: local
77
hooks:
@@ -11,7 +11,7 @@ repos:
1111
files: tests/.*\btest_\w*.py
1212
require_serial: true
1313
language: system
14-
stages: [push]
14+
stages: [pre-push]
1515
- id: notebook-markdown-format
1616
name: notebook markdown format
1717
entry: python pre-commit/notebook_markdown_format.py
@@ -23,15 +23,15 @@ repos:
2323
- mdformat-black
2424
- mdformat-myst
2525
- repo: https://github.com/executablebooks/mdformat
26-
rev: 0.7.17
26+
rev: 0.7.19
2727
hooks:
2828
- id: mdformat
2929
# Optionally add plugins
3030
additional_dependencies:
3131
- mdformat-gfm # GitHub flavoured markdown
3232
- mdformat-black # Black formatting for python verbatim blocks
3333
- repo: https://github.com/pre-commit/pre-commit-hooks
34-
rev: v4.5.0
34+
rev: v5.0.0
3535
hooks:
3636
- id: check-ast # Simply checks whether the files parse as valid Python.
3737
- id: fix-byte-order-marker # Removes utf-8 byte order marker.
@@ -58,18 +58,13 @@ repos:
5858
- id: rst-backticks # Detect common mistake of using single backticks when writing rst.
5959
- id: rst-directive-colons # Detect mistake of rst directive not ending with double colon.
6060
- id: rst-inline-touching-normal # Detect mistake of inline code touching normal text in rst.
61-
- repo: https://github.com/psf/black
62-
rev: 23.11.0 # Replace with any tag/version: https://github.com/psf/black/tags
63-
hooks:
64-
- id: black
65-
language_version: python3 # Should be a command that runs python3.+
66-
additional_dependencies: ['click==8.0.4'] # Currently >8.0.4 breaks black
67-
- id: black-jupyter
68-
language: python
6961
- repo: https://github.com/astral-sh/ruff-pre-commit
7062
# Ruff version.
71-
rev: v0.1.7
63+
rev: v0.8.2
7264
hooks:
7365
- id: ruff
7466
args: [--fix, --exit-non-zero-on-fix]
7567
types_or: [python, pyi, jupyter]
68+
# Run the formatter.
69+
- id: ruff-format
70+
types_or: [ python, pyi, jupyter ]

.readthedocs.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ version: 2
77

88
# Set the version of Python and other tools you might need
99
build:
10-
os: ubuntu-22.04
10+
os: ubuntu-24.04
1111
tools:
1212
python: "3.10"
1313
apt_packages:
@@ -19,10 +19,6 @@ build:
1919
sphinx:
2020
configuration: docs/conf.py
2121

22-
# Optionally build your docs in additional formats such as PDF
23-
formats:
24-
- pdf
25-
2622
# Optionally set the version of Python and requirements required to build your docs
2723
python:
2824
install:

AUTHORS.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,19 @@
1111
- Mostafa Jahanifar \<@mostafajahanifar>
1212
- David Epstein \<@DavidBAEpstein>
1313
- Adam Shephard \<@adamshephard>
14-
- Ruqayya Awan \<@ruqayya>
1514
- Abdullah Alsalemi \<@Abdol>
15+
- Ruqayya Awan \<@ruqayya>
16+
- Jiaqi Lv \<@Jiaqi-Lv>
1617
- Dmitrii Blaginin \<@blaginin>
1718
- Srijay Deshpande \<@Srijay-lab>
18-
- Jiaqi Lv\<@Jiaqi-Lv>
1919
- George Hadjigeorgiou \<@ghadjigeorghiou>
2020
- Abishekraj Vinayagar Gnanasambandam \<@AbishekRajVG>
2121
- Wenqi Lu \<@wenqi006>
2222
- Saad Bashir \<@rajasaad>
2323

2424
## Contributors
2525

26+
- George Batchkala \<@GeorgeBatch>
2627
- Rob Jewsbury \<@R-J96>
2728
- Mohsin Bilal \<@mbhahsmi>
2829
- Fayyaz Minhas \<@foxtrotmike>

CITATION.cff

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ authors:
2424
orcid: "https://orcid.org/0000-0003-0969-2990"
2525
- family-names: "Bashir"
2626
given-names: "Raja Muhammad Saad"
27-
orcid: "https://orcid.org/0000-0002-8984-696"
27+
orcid: "https://orcid.org/0000-0002-8984-6963"
2828
- family-names: "Bilal"
2929
given-names: "Mohsin"
3030
orcid: "https://orcid.org/0000-0001-8632-2729"
@@ -44,7 +44,7 @@ authors:
4444
given-names: "Shan E Ahmed"
4545
orcid: "https://orcid.org/0000-0002-1097-1738"
4646
title: "TIAToolbox as an end-to-end library for advanced tissue image analytics"
47-
version: 1.5.1 # TIAToolbox version
47+
version: 1.6.0 # TIAToolbox version
4848
doi: 10.5281/zenodo.5802442
4949
date-released: 2022-10-20
5050
url: "https://github.com/TissueImageAnalytics/tiatoolbox"
@@ -74,7 +74,7 @@ preferred-citation:
7474
orcid: "https://orcid.org/0000-0003-0969-2990"
7575
- family-names: "Bashir"
7676
given-names: "Raja Muhammad Saad"
77-
orcid: "https://orcid.org/0000-0002-8984-696"
77+
orcid: "https://orcid.org/0000-0002-8984-6963"
7878
- family-names: "Bilal"
7979
given-names: "Mohsin"
8080
orcid: "https://orcid.org/0000-0001-8632-2729"

0 commit comments

Comments
 (0)