Skip to content

Commit 7e85e0c

Browse files
markbadernormanrz
andauthored
Add support for python version 3.12 (#1068)
* Update python version in toml file. * Remove python version marker from CZI reader. * Fix typecheck errors. * Update poetry lock files. * Update poetry from 1.6.1 to 1.8.2. * upgrades a bunch of dependencies * upgrade deps in cluster_tools * Update poetry.lock. * Remove own fixes for fixed bugs in vcr. * update fastremap * format * cassettes * Update cassettes. * Run formatter, linter and typechecker. * Update cassettes. * Downgrade universal-pathlib to v0.1.4 * update upath * fix upath bug, maybe? * Update changelog. * Remove official python 3.8 support. * Update cluster_tools readme. * Update changelog. * Update ci. * Update ci.yml * Update ci.yml --------- Co-authored-by: Norman Rzepka <[email protected]>
1 parent a166aea commit 7e85e0c

File tree

53 files changed

+2889
-2610
lines changed

Some content is hidden

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

53 files changed

+2889
-2610
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
max-parallel: 4
3939
matrix:
4040
executors: [multiprocessing, slurm, kubernetes, dask]
41-
python-version: ["3.11", "3.10", "3.9", "3.8"]
41+
python-version: ["3.12", "3.11", "3.10", "3.9"]
4242
defaults:
4343
run:
4444
working-directory: cluster_tools
@@ -54,8 +54,8 @@ jobs:
5454
run: |
5555
cd ./dockered-slurm
5656
57-
echo docker-compose up
58-
docker-compose up -d
57+
echo docker compose up
58+
docker compose up -d
5959
6060
# Register cluster (with retry)
6161
for i in {1..5}; do
@@ -138,7 +138,7 @@ jobs:
138138
PYTEST_EXECUTORS=kubernetes poetry run python -m pytest -sv test_all.py test_kubernetes.py
139139
140140
- name: Run dask tests
141-
if: ${{ matrix.executors == 'dask' && matrix.python-version != '3.8' }}
141+
if: ${{ matrix.executors == 'dask' }}
142142
run: |
143143
cd tests
144144
PYTEST_EXECUTORS=dask poetry run python -m pytest -sv test_all.py test_dask.py
@@ -152,7 +152,7 @@ jobs:
152152
strategy:
153153
max-parallel: 4
154154
matrix:
155-
python-version: ["3.11", "3.10", "3.9", "3.8"]
155+
python-version: ["3.12", "3.11", "3.10", "3.9"]
156156
group: [1, 2, 3]
157157
fail-fast: false
158158
defaults:

.github/workflows/nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
strategy:
1212
max-parallel: 4
1313
matrix:
14-
python-version: ["3.8", "3.9", "3.10", "3.11"]
14+
python-version: ["3.9", "3.10", "3.11", "3.12"]
1515
group: [1, 2, 3]
1616
fail-fast: false
1717
defaults:

cluster_tools/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ if __name__ == '__main__':
2222
```
2323

2424
## Installation
25-
The `cluster_tools` package requires at least Python 3.8.
25+
The `cluster_tools` package requires at least Python 3.9.
2626

2727
You can install it from [pypi](https://pypi.org/project/cluster_tools/), e.g. via pip:
2828

cluster_tools/poetry.lock

Lines changed: 141 additions & 147 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cluster_tools/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dask = ["distributed"]
1313
all = ["kubernetes", "distributed"]
1414

1515
[tool.poetry.dependencies]
16-
python = ">=3.8"
16+
python = ">=3.9"
1717
distributed = { version = "^2023.9.1", python = ">=3.9", optional = true }
1818
kubernetes = {version = "^27.2.0", optional = true }
1919
typing-extensions = "^4.4.0"
@@ -22,7 +22,7 @@ typing-extensions = "^4.4.0"
2222
icecream = "^2.1.1"
2323
mypy = "^1.0.0"
2424
pytest = "^7.2.1"
25-
ruff = "^0.4.0"
25+
ruff = "^0.5.0"
2626

2727
[build-system]
2828
requires = ["poetry-core>=1.0.0"]

docs/src/cli/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The WEBKNOSSOS CLI offers many useful commands to work with WEBKNOSSOS datasets:
2727

2828
### Python 3 with pip from PyPi
2929

30-
- `webknossos` requires at least Python 3.8
30+
- `webknossos` requires at least Python 3.9
3131

3232
```bash
3333
pip install "webknossos[all]"

docs/src/webknossos-py/installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[![PyPI version](https://img.shields.io/pypi/v/webknossos)](https://pypi.python.org/pypi/webknossos)
44
[![Supported Python Versions](https://img.shields.io/pypi/pyversions/webknossos.svg)](https://pypi.python.org/pypi/webknossos)
55

6-
The `webknossos` package requires at least Python 3.8.
6+
The `webknossos` package requires at least Python 3.9.
77

88
You can install it from [pypi](https://pypi.org/project/webknossos/), e.g. via pip:
99

webknossos/Changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ For upgrade instructions, please check the respective _Breaking Changes_ section
1313
[Commits](https://github.com/scalableminds/webknossos-libs/compare/v0.14.26...HEAD)
1414

1515
### Breaking Changes
16+
- Python version 3.8 is no longer officially supported. [#1068](https://github.com/scalableminds/webknossos-libs/pull/1068)
1617

1718
### Added
1819
- Added example for scaling a skeleton. [#1147](https://github.com/scalableminds/webknossos-libs/pull/1147)
@@ -21,6 +22,7 @@ For upgrade instructions, please check the respective _Breaking Changes_ section
2122
- Added options `--layer-name` and `--mag` for compress command of the CLI. [#1141](https://github.com/scalableminds/webknossos-libs/pull/1141)
2223
- Added options `--chunk-shape` and `--chunks-per-shard` for convert command of the CLI. [#1150](https://github.com/scalableminds/webknossos-libs/pull/1150)
2324
- The `from_images` method of the `Dataset` supports directories and single files as `input_path` now. [#1152](https://github.com/scalableminds/webknossos-libs/pull/1152)
25+
- Added support for python version 3.12. [#1068](https://github.com/scalableminds/webknossos-libs/pull/1068)
2426
- The number of pixel limit for JPG conversion is disabled now. [#1154](https://github.com/scalableminds/webknossos-libs/pull/1154)
2527
- Added option `--batch-size` to the convert command of the CLI. [#1158](https://github.com/scalableminds/webknossos-libs/pull/1158)
2628

webknossos/poetry.lock

Lines changed: 1897 additions & 1711 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webknossos/pyproject.toml

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,39 +28,39 @@ classifiers = [
2828
include = ["webknossos/version.py"] # included explicitly since it's in .gitignore
2929

3030
[tool.poetry.dependencies]
31-
python = ">=3.8,<3.12"
31+
python = ">=3.9,<3.13"
3232
aiohttp = "^3.8.1"
3333
attrs = ">=22.0.0"
34-
boltons = "~21.0.0"
34+
boltons = ">=21.0.0"
3535
cattrs = ">=22.0.0"
3636
cluster_tools = { path = "../cluster_tools/", develop = true }
37-
fsspec = "^2023.9.0"
38-
httpx = ">=0.20.0,<=0.24.1"
37+
fsspec = "^2024.6.0"
38+
httpx = "^0.27.0"
3939
loxun = "^2.0"
40-
natsort = "^6.2.0"
41-
networkx = "^2.6.2"
42-
numcodecs = "^0.11"
43-
numpy = "^1.21.0" # see https://numpy.org/neps/nep-0029-deprecation_policy.html#support-table
44-
pims = "^0.6.0"
45-
psutil = "^5.6.7"
40+
natsort = "^8.4.0"
41+
networkx = "^3"
42+
numcodecs = "^0.12"
43+
numpy = "^2"
44+
pims = "^0.7.0"
45+
psutil = "^6"
4646
python-dateutil = "^2.8.0"
47-
python-dotenv = "^0.19.0"
48-
rich = "^10.9.0"
47+
python-dotenv = "^1"
48+
rich = "^13"
4949
scipy = "^1.9.0"
50-
typer = "0.12.3"
50+
typer = "^0.12"
5151
typing-extensions = "^4.0"
52-
universal-pathlib = "0.1.3"
53-
wkw = "1.1.22"
54-
zarr = "^2.16.0"
55-
zarrita = "0.2.2"
52+
universal-pathlib = "^0.2"
53+
wkw = "1.1.24"
54+
zarr = "^2.18.0"
55+
zarrita = "0.2.5"
5656
zipp = "^3.5.0"
5757

5858
# A list of all of the optional dependencies, some of which are included in the
5959
# below `extras`. They can be opted into by apps.
6060
imagecodecs = { version = ">=2021.11.20", optional = true }
6161
JPype1 = { version = "^1.3.0", optional = true }
6262
tifffile = { version = ">=2021.11.2", optional = true }
63-
pylibCZIrw = { version = "3.5.2", source = "scm", optional = true }
63+
pylibCZIrw = { version = "4.1.1", source = "scm", optional = true}
6464

6565
[tool.poetry.extras]
6666
tifffile = ["tifffile"]
@@ -78,29 +78,29 @@ hypothesis = "^6.35.0"
7878
icecream = "^2.1.1"
7979
inducoapi = "^2.0.2"
8080
jsonschema = "^4.6.0"
81-
mypy = "^1.6.0"
82-
pytest = "^7.2.1"
81+
mypy = "^1.10.0"
82+
pytest = "^8"
8383
pytest-custom-exit-code = "^0.3.0"
8484
pytest-recording = "^0.13.0"
85-
pytest-split = "^0.8.0"
86-
pytest-sugar = "^0.9.4"
87-
pytest-timeout = "^2.1.0"
88-
pytest-timestamper = "^0.0.9"
89-
types-python-dateutil = "^0.1.6"
90-
ruff = "^0.4.0"
85+
pytest-split = "^0.9.0"
86+
pytest-sugar = "^1"
87+
pytest-timeout = "^2.3.0"
88+
pytest-timestamper = "^0.0.10"
89+
types-python-dateutil = "^2.9"
90+
ruff = "^0.5"
9191

9292
[tool.poetry.group.examples]
9393
optional = true
9494

9595
[tool.poetry.group.examples.dependencies]
9696
# packages for examples:
97-
fastremap = "^1.13.3"
98-
pandas = "^1.3.4"
97+
fastremap = "^1.15.0"
98+
pandas = "^2"
9999
pooch = "^1.5.2"
100-
s3fs = "^2023.9.0"
101-
tabulate = "^0.8.9"
100+
s3fs = ">=2023.9.0"
101+
tabulate = "^0.9"
102102
scikit-learn = "^1.0.1"
103-
scikit-image = "^0.21.0"
103+
scikit-image = "^0.24.0"
104104

105105
[[tool.poetry.source]]
106106
name = "PyPI"

0 commit comments

Comments
 (0)