diff --git a/.github/workflows/pythonapp-min.yml b/.github/workflows/pythonapp-min.yml index 4a068666d4..3e4f7b24a4 100644 --- a/.github/workflows/pythonapp-min.yml +++ b/.github/workflows/pythonapp-min.yml @@ -124,7 +124,7 @@ jobs: strategy: fail-fast: false matrix: - pytorch-version: ['2.4.1', '2.5.1', '2.6.0'] # FIXME: add 'latest' back once PyTorch 2.7 issues are resolved + pytorch-version: ['2.4.1', '2.5.1', '2.6.0', '2.7.1'] timeout-minutes: 40 steps: - uses: actions/checkout@v4 @@ -151,11 +151,7 @@ jobs: - name: Install the dependencies run: | # min. requirements - if [ ${{ matrix.pytorch-version }} == "latest" ]; then - python -m pip install torch - else - python -m pip install torch==${{ matrix.pytorch-version }} - fi + python -m pip install torch==${{ matrix.pytorch-version }} python -m pip install -r requirements-min.txt python -m pip list BUILD_MONAI=0 python setup.py develop # no compile of extensions diff --git a/docs/requirements.txt b/docs/requirements.txt index a624207b0f..b1bd611df0 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ -f https://download.pytorch.org/whl/cpu/torch-2.4.1%2Bcpu-cp39-cp39-linux_x86_64.whl -torch>=2.4.1, <2.7.0 +torch>=2.4.1 pytorch-ignite==0.4.11 numpy>=1.20 itk>=5.2 diff --git a/pyproject.toml b/pyproject.toml index 863b0fd2be..76b26731bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ requires = [ "wheel", "setuptools", - "torch>=2.4.1, <2.7.0", + "torch>=2.4.1", "ninja", "packaging" ] diff --git a/requirements-dev.txt b/requirements-dev.txt index 75aefaca99..87840556ee 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -20,7 +20,7 @@ pyflakes black>=25.1.0 isort>=5.1, <6.0 ruff -pytype>=2020.6.1; platform_system != "Windows" +pytype>=2020.6.1, <=2024.4.11; platform_system != "Windows" types-setuptools mypy>=1.5.0, <1.12.0 ninja diff --git a/requirements.txt b/requirements.txt index 903ce0ce00..c43fb21f92 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ -torch>=2.4.1, <2.7.0 +torch>=2.4.1; platform_system != "Windows" +torch>=2.4.1, !=2.7.0; platform_system == "Windows" numpy>=1.24,<3.0 diff --git a/setup.cfg b/setup.cfg index 0067ab5f40..fc415e6cc0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -42,7 +42,7 @@ setup_requires = ninja packaging install_requires = - torch>=2.4.1, <2.7.0 + torch>=2.4.1 numpy>=1.24,<3.0 [options.extras_require] diff --git a/tests/integration/test_pad_collation.py b/tests/integration/test_pad_collation.py index 9d5012c9a3..a236521cd9 100644 --- a/tests/integration/test_pad_collation.py +++ b/tests/integration/test_pad_collation.py @@ -11,8 +11,10 @@ from __future__ import annotations +import os import random import unittest +from contextlib import redirect_stderr from functools import wraps import numpy as np @@ -35,7 +37,7 @@ RandZoomd, ToTensor, ) -from monai.utils import set_determinism +from monai.utils import first, set_determinism @wraps(pad_list_data_collate) @@ -97,8 +99,9 @@ def test_pad_collation(self, t_type, collate_method, transform): # Default collation should raise an error loader_fail = DataLoader(dataset, batch_size=10) with self.assertRaises(RuntimeError): - for _ in loader_fail: - pass + # stifle PyTorch error reporting, we expect failure so don't need to look at it + with open(os.devnull) as f, redirect_stderr(f): + _ = first(loader_fail) # Padded collation shouldn't loader = DataLoader(dataset, batch_size=10, collate_fn=collate_method)