From 9a320e7c20338389eddb924327bc2eacb7a3e8c5 Mon Sep 17 00:00:00 2001 From: James Butler Date: Mon, 14 Oct 2024 22:50:12 -0400 Subject: [PATCH 1/6] Update pre-commit-config repos to latest Signed-off-by: James Butler --- .pre-commit-config.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3fff6ed631..42ee254e8a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,7 +9,7 @@ ci: repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: end-of-file-fixer - id: trailing-whitespace @@ -26,15 +26,15 @@ repos: args: ['--autofix', '--no-sort-keys', '--indent=4'] - id: end-of-file-fixer - id: mixed-line-ending - - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.3.5 + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.7.0 hooks: - id: ruff args: - --fix - repo: https://github.com/asottile/pyupgrade - rev: v3.3.1 + rev: v3.19.0 hooks: - id: pyupgrade args: [--py37-plus] @@ -52,7 +52,7 @@ repos: files: (?x)(^monai/networks/) - repo: https://github.com/asottile/yesqa - rev: v1.4.0 + rev: v1.5.0 hooks: - id: yesqa name: Unused noqa From 77b4c21a728cdbb541e032b1a2af6119ab8cca05 Mon Sep 17 00:00:00 2001 From: James Butler Date: Tue, 15 Oct 2024 17:55:53 -0400 Subject: [PATCH 2/6] Add additional exceptions to pyupgrade for runtime typing Signed-off-by: James Butler --- .pre-commit-config.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 42ee254e8a..ce55236b75 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -44,12 +44,18 @@ repos: ^versioneer.py| ^monai/_version.py| ^monai/networks/| # no PEP 604 for torchscript tensorrt - ^monai/losses/ # no PEP 604 for torchscript tensorrt + ^monai/losses/| # no PEP 604 for torchscript tensorrt + ^monai/data/utils.py| + ^monai/data/grid_dataset.py ) - id: pyupgrade args: [--py37-plus, --keep-runtime-typing] name: Upgrade monai networks - files: (?x)(^monai/networks/) + files: (?x)( + ^monai/networks/| + ^monai/data/utils.py| + ^monai/data/grid_dataset.py + ) - repo: https://github.com/asottile/yesqa rev: v1.5.0 From a472192407b000ce116a65467c236c07c8689dac Mon Sep 17 00:00:00 2001 From: James Butler Date: Tue, 15 Oct 2024 17:58:53 -0400 Subject: [PATCH 3/6] Apply pyupgrade for Python 3.8+ syntax This should have been included in https://github.com/Project-MONAI/MONAI/commit/104a360f953b5d720b3eb8f5b1a0546540e5e391 when Python 3.7 support was dropped. Changes were automatically applied by running: pre_commit run --all-files Signed-off-by: James Butler --- .pre-commit-config.yaml | 4 ++-- monai/networks/nets/swin_unetr.py | 2 +- monai/utils/dist.py | 4 +--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ce55236b75..585f54b0ee 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -37,7 +37,7 @@ repos: rev: v3.19.0 hooks: - id: pyupgrade - args: [--py37-plus] + args: [--py38-plus] name: Upgrade code excluding monai networks exclude: | (?x)( @@ -49,7 +49,7 @@ repos: ^monai/data/grid_dataset.py ) - id: pyupgrade - args: [--py37-plus, --keep-runtime-typing] + args: [--py38-plus, --keep-runtime-typing] name: Upgrade monai networks files: (?x)( ^monai/networks/| diff --git a/monai/networks/nets/swin_unetr.py b/monai/networks/nets/swin_unetr.py index 714d986f4b..c8fb76ad8b 100644 --- a/monai/networks/nets/swin_unetr.py +++ b/monai/networks/nets/swin_unetr.py @@ -20,7 +20,7 @@ import torch.nn.functional as F import torch.utils.checkpoint as checkpoint from torch.nn import LayerNorm -from typing_extensions import Final +from typing import Final from monai.networks.blocks import MLPBlock as Mlp from monai.networks.blocks import PatchEmbed, UnetOutBlock, UnetrBasicBlock, UnetrUpBlock diff --git a/monai/utils/dist.py b/monai/utils/dist.py index c7ff988027..9c4ad64708 100644 --- a/monai/utils/dist.py +++ b/monai/utils/dist.py @@ -11,13 +11,11 @@ from __future__ import annotations -import sys import warnings from collections.abc import Callable from logging import Filter -if sys.version_info >= (3, 8): - from typing import Literal +from typing import Literal from typing import overload From e68a3f81c17aea215b855781fa535b12ee15a517 Mon Sep 17 00:00:00 2001 From: James Butler Date: Wed, 23 Oct 2024 17:54:04 -0400 Subject: [PATCH 4/6] apply keep-runtime-typing exception to more monai files Signed-off-by: James Butler --- .pre-commit-config.yaml | 19 +++++-------------- monai/losses/hausdorff_loss.py | 2 +- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 585f54b0ee..4b1284ba96 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -37,25 +37,16 @@ repos: rev: v3.19.0 hooks: - id: pyupgrade - args: [--py38-plus] - name: Upgrade code excluding monai networks + args: [--py38-plus, --keep-runtime-typing] + name: Upgrade code with exceptions exclude: | (?x)( ^versioneer.py| ^monai/_version.py| - ^monai/networks/| # no PEP 604 for torchscript tensorrt - ^monai/losses/| # no PEP 604 for torchscript tensorrt - ^monai/data/utils.py| - ^monai/data/grid_dataset.py + ^monai/networks/| # avoid typing rewrites + ^monai/apps/detection/utils/anchor_utils.py| # avoid typing rewrites + ^tests/test_compute_panoptic_quality.py # avoid typing rewrites ) - - id: pyupgrade - args: [--py38-plus, --keep-runtime-typing] - name: Upgrade monai networks - files: (?x)( - ^monai/networks/| - ^monai/data/utils.py| - ^monai/data/grid_dataset.py - ) - repo: https://github.com/asottile/yesqa rev: v1.5.0 diff --git a/monai/losses/hausdorff_loss.py b/monai/losses/hausdorff_loss.py index 6117f27741..c58be2d253 100644 --- a/monai/losses/hausdorff_loss.py +++ b/monai/losses/hausdorff_loss.py @@ -79,7 +79,7 @@ def __init__( Incompatible values. """ - super(HausdorffDTLoss, self).__init__(reduction=LossReduction(reduction).value) + super().__init__(reduction=LossReduction(reduction).value) if other_act is not None and not callable(other_act): raise TypeError(f"other_act must be None or callable but is {type(other_act).__name__}.") if int(sigmoid) + int(softmax) > 1: From 82ed7f5541a4be87c239450cf1066354c8118e12 Mon Sep 17 00:00:00 2001 From: James Butler Date: Wed, 23 Oct 2024 19:20:52 -0400 Subject: [PATCH 5/6] Apply pyupgrade fixes for Python 3.9+ syntax This should have been included in https://github.com/Project-MONAI/MONAI/commit/14b086b553693f5d344ff054f37d12ce6839da06 when Python 3.8 support was dropped. Changes were automatically applied by running: pre_commit run --all-files Signed-off-by: James Butler --- .pre-commit-config.yaml | 2 +- monai/apps/detection/networks/retinanet_network.py | 4 ++-- monai/apps/detection/transforms/array.py | 4 +++- monai/apps/generation/maisi/networks/autoencoderkl_maisi.py | 2 +- monai/apps/generation/maisi/networks/controlnet_maisi.py | 2 +- monai/apps/pathology/engines/utils.py | 4 +++- monai/apps/pathology/inferers/inferer.py | 4 +++- monai/apps/pathology/metrics/lesion_froc.py | 4 +++- monai/apps/pathology/transforms/post/array.py | 4 +++- monai/apps/tcia/utils.py | 2 +- monai/apps/utils.py | 5 +---- monai/apps/vista3d/transforms.py | 2 +- monai/bundle/reference_resolver.py | 4 +++- monai/bundle/workflows.py | 4 +++- monai/config/type_definitions.py | 4 +++- monai/data/meta_obj.py | 4 +++- monai/data/meta_tensor.py | 4 +++- monai/engines/evaluator.py | 4 +++- monai/engines/trainer.py | 4 +++- monai/engines/utils.py | 4 +++- monai/handlers/clearml_handlers.py | 4 +++- monai/inferers/utils.py | 4 +++- monai/metrics/utils.py | 4 +++- monai/transforms/intensity/dictionary.py | 4 +++- monai/transforms/lazy/functional.py | 4 +++- monai/transforms/spatial/array.py | 6 ++++-- monai/transforms/utility/dictionary.py | 4 +++- monai/transforms/utils_morphological_ops.py | 2 +- monai/utils/component_store.py | 4 +++- monai/utils/decorators.py | 4 +++- monai/utils/module.py | 4 +++- monai/utils/state_cacher.py | 4 +++- tests/test_dynunet.py | 4 +++- tests/test_network_consistency.py | 2 +- 34 files changed, 86 insertions(+), 39 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4b1284ba96..2a57fbf31a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -37,7 +37,7 @@ repos: rev: v3.19.0 hooks: - id: pyupgrade - args: [--py38-plus, --keep-runtime-typing] + args: [--py39-plus, --keep-runtime-typing] name: Upgrade code with exceptions exclude: | (?x)( diff --git a/monai/apps/detection/networks/retinanet_network.py b/monai/apps/detection/networks/retinanet_network.py index ec86c3b0e9..ca6a8f5c19 100644 --- a/monai/apps/detection/networks/retinanet_network.py +++ b/monai/apps/detection/networks/retinanet_network.py @@ -42,7 +42,7 @@ import math import warnings from collections.abc import Callable, Sequence -from typing import Any, Dict +from typing import Any import torch from torch import Tensor, nn @@ -330,7 +330,7 @@ def forward(self, images: Tensor) -> Any: features = self.feature_extractor(images) if isinstance(features, Tensor): feature_maps = [features] - elif torch.jit.isinstance(features, Dict[str, Tensor]): + elif torch.jit.isinstance(features, dict[str, Tensor]): feature_maps = list(features.values()) else: feature_maps = list(features) diff --git a/monai/apps/detection/transforms/array.py b/monai/apps/detection/transforms/array.py index d8ffce4584..6b92572954 100644 --- a/monai/apps/detection/transforms/array.py +++ b/monai/apps/detection/transforms/array.py @@ -15,7 +15,9 @@ from __future__ import annotations -from typing import Any, Sequence +from typing import Any + +from collections.abc import Sequence import numpy as np import torch diff --git a/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py b/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py index a52274b24a..6251ea8e83 100644 --- a/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +++ b/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py @@ -13,7 +13,7 @@ import gc import logging -from typing import Sequence +from collections.abc import Sequence import torch import torch.nn as nn diff --git a/monai/apps/generation/maisi/networks/controlnet_maisi.py b/monai/apps/generation/maisi/networks/controlnet_maisi.py index 269086d971..7c13fd7bc6 100644 --- a/monai/apps/generation/maisi/networks/controlnet_maisi.py +++ b/monai/apps/generation/maisi/networks/controlnet_maisi.py @@ -11,7 +11,7 @@ from __future__ import annotations -from typing import Sequence +from collections.abc import Sequence import torch diff --git a/monai/apps/pathology/engines/utils.py b/monai/apps/pathology/engines/utils.py index 02249ed640..c704dc7469 100644 --- a/monai/apps/pathology/engines/utils.py +++ b/monai/apps/pathology/engines/utils.py @@ -11,7 +11,9 @@ from __future__ import annotations -from typing import Any, Sequence +from typing import Any + +from collections.abc import Sequence import torch diff --git a/monai/apps/pathology/inferers/inferer.py b/monai/apps/pathology/inferers/inferer.py index 71259ca7df..4f034f0ad1 100644 --- a/monai/apps/pathology/inferers/inferer.py +++ b/monai/apps/pathology/inferers/inferer.py @@ -11,7 +11,9 @@ from __future__ import annotations -from typing import Any, Callable, Sequence +from typing import Any, Callable + +from collections.abc import Sequence import numpy as np import torch diff --git a/monai/apps/pathology/metrics/lesion_froc.py b/monai/apps/pathology/metrics/lesion_froc.py index f4bf51ab28..bbd7bf4905 100644 --- a/monai/apps/pathology/metrics/lesion_froc.py +++ b/monai/apps/pathology/metrics/lesion_froc.py @@ -11,7 +11,9 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Iterable +from typing import TYPE_CHECKING, Any + +from collections.abc import Iterable import numpy as np diff --git a/monai/apps/pathology/transforms/post/array.py b/monai/apps/pathology/transforms/post/array.py index 035bce2c69..bb50ee4fd9 100644 --- a/monai/apps/pathology/transforms/post/array.py +++ b/monai/apps/pathology/transforms/post/array.py @@ -12,7 +12,9 @@ from __future__ import annotations import warnings -from typing import Callable, Sequence +from typing import Callable + +from collections.abc import Sequence import numpy as np import torch diff --git a/monai/apps/tcia/utils.py b/monai/apps/tcia/utils.py index 5524b488e9..f023cdbc87 100644 --- a/monai/apps/tcia/utils.py +++ b/monai/apps/tcia/utils.py @@ -12,7 +12,7 @@ from __future__ import annotations import os -from typing import Iterable +from collections.abc import Iterable import monai from monai.config.type_definitions import PathLike diff --git a/monai/apps/utils.py b/monai/apps/utils.py index 0c998146a3..c2e17d3247 100644 --- a/monai/apps/utils.py +++ b/monai/apps/utils.py @@ -136,10 +136,7 @@ def check_hash(filepath: PathLike, val: str | None = None, hash_type: str = "md5 return True actual_hash_func = look_up_option(hash_type.lower(), SUPPORTED_HASH_TYPES) - if sys.version_info >= (3, 9): - actual_hash = actual_hash_func(usedforsecurity=False) # allows checks on FIPS enabled machines - else: - actual_hash = actual_hash_func() + actual_hash = actual_hash_func(usedforsecurity=False) # allows checks on FIPS enabled machines try: with open(filepath, "rb") as f: diff --git a/monai/apps/vista3d/transforms.py b/monai/apps/vista3d/transforms.py index 3e8145cd80..bd7fb19493 100644 --- a/monai/apps/vista3d/transforms.py +++ b/monai/apps/vista3d/transforms.py @@ -12,7 +12,7 @@ from __future__ import annotations import warnings -from typing import Sequence +from collections.abc import Sequence import numpy as np import torch diff --git a/monai/bundle/reference_resolver.py b/monai/bundle/reference_resolver.py index 050cd75fa7..6c5ca776f5 100644 --- a/monai/bundle/reference_resolver.py +++ b/monai/bundle/reference_resolver.py @@ -14,7 +14,9 @@ import re import warnings from collections.abc import Sequence -from typing import Any, Iterator +from typing import Any + +from collections.abc import Iterator from monai.bundle.config_item import ConfigComponent, ConfigExpression, ConfigItem from monai.bundle.utils import DEPRECATED_ID_MAPPING, ID_REF_KEY, ID_SEP_KEY diff --git a/monai/bundle/workflows.py b/monai/bundle/workflows.py index ccdb08e208..f425d8fd28 100644 --- a/monai/bundle/workflows.py +++ b/monai/bundle/workflows.py @@ -19,7 +19,9 @@ from copy import copy from logging.config import fileConfig from pathlib import Path -from typing import Any, Sequence +from typing import Any + +from collections.abc import Sequence from monai.apps.utils import get_logger from monai.bundle.config_parser import ConfigParser diff --git a/monai/config/type_definitions.py b/monai/config/type_definitions.py index 57454a94e1..cf6a2957ee 100644 --- a/monai/config/type_definitions.py +++ b/monai/config/type_definitions.py @@ -12,7 +12,9 @@ from __future__ import annotations import os -from typing import Collection, Hashable, Iterable, Sequence, TypeVar, Union +from typing import TypeVar, Union + +from collections.abc import Collection, Hashable, Iterable, Sequence import numpy as np import torch diff --git a/monai/data/meta_obj.py b/monai/data/meta_obj.py index 0dccaa9e1c..d951d69b04 100644 --- a/monai/data/meta_obj.py +++ b/monai/data/meta_obj.py @@ -14,7 +14,9 @@ import itertools import pprint from copy import deepcopy -from typing import Any, Iterable +from typing import Any + +from collections.abc import Iterable import numpy as np import torch diff --git a/monai/data/meta_tensor.py b/monai/data/meta_tensor.py index 2df4da4a35..88e55c74da 100644 --- a/monai/data/meta_tensor.py +++ b/monai/data/meta_tensor.py @@ -14,7 +14,9 @@ import functools import warnings from copy import deepcopy -from typing import Any, Sequence +from typing import Any + +from collections.abc import Sequence import numpy as np import torch diff --git a/monai/engines/evaluator.py b/monai/engines/evaluator.py index 523c3dcbf6..8c0972ae7f 100644 --- a/monai/engines/evaluator.py +++ b/monai/engines/evaluator.py @@ -12,7 +12,9 @@ from __future__ import annotations import warnings -from typing import TYPE_CHECKING, Any, Callable, Iterable, Sequence +from typing import TYPE_CHECKING, Any, Callable + +from collections.abc import Iterable, Sequence import torch from torch.utils.data import DataLoader diff --git a/monai/engines/trainer.py b/monai/engines/trainer.py index bbcc9c880b..0ca9d40a26 100644 --- a/monai/engines/trainer.py +++ b/monai/engines/trainer.py @@ -12,7 +12,9 @@ from __future__ import annotations import warnings -from typing import TYPE_CHECKING, Any, Callable, Iterable, Sequence +from typing import TYPE_CHECKING, Any, Callable + +from collections.abc import Iterable, Sequence import torch from torch.optim.optimizer import Optimizer diff --git a/monai/engines/utils.py b/monai/engines/utils.py index 11a0000989..74612f7116 100644 --- a/monai/engines/utils.py +++ b/monai/engines/utils.py @@ -13,7 +13,9 @@ from abc import ABC, abstractmethod from collections.abc import Callable, Sequence -from typing import TYPE_CHECKING, Any, Mapping, cast +from typing import TYPE_CHECKING, Any, cast + +from collections.abc import Mapping import torch import torch.nn as nn diff --git a/monai/handlers/clearml_handlers.py b/monai/handlers/clearml_handlers.py index 1cfd6a33fb..11f9dca24f 100644 --- a/monai/handlers/clearml_handlers.py +++ b/monai/handlers/clearml_handlers.py @@ -11,7 +11,9 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Mapping, Sequence +from typing import TYPE_CHECKING, Any + +from collections.abc import Mapping, Sequence from monai.utils import optional_import diff --git a/monai/inferers/utils.py b/monai/inferers/utils.py index bd99765348..8bb2941529 100644 --- a/monai/inferers/utils.py +++ b/monai/inferers/utils.py @@ -13,7 +13,9 @@ import itertools from collections.abc import Callable, Mapping, Sequence -from typing import Any, Iterable +from typing import Any + +from collections.abc import Iterable import numpy as np import torch diff --git a/monai/metrics/utils.py b/monai/metrics/utils.py index 340e54a1d7..43bd5a3483 100644 --- a/monai/metrics/utils.py +++ b/monai/metrics/utils.py @@ -14,7 +14,9 @@ import warnings from functools import lru_cache, partial from types import ModuleType -from typing import Any, Iterable, Sequence +from typing import Any + +from collections.abc import Iterable, Sequence import numpy as np import torch diff --git a/monai/transforms/intensity/dictionary.py b/monai/transforms/intensity/dictionary.py index 5dbac485fe..c5e7add79d 100644 --- a/monai/transforms/intensity/dictionary.py +++ b/monai/transforms/intensity/dictionary.py @@ -17,7 +17,9 @@ from __future__ import annotations -from typing import Callable, Hashable, Mapping, Sequence +from typing import Callable + +from collections.abc import Hashable, Mapping, Sequence import numpy as np diff --git a/monai/transforms/lazy/functional.py b/monai/transforms/lazy/functional.py index 6b95027832..518c74e414 100644 --- a/monai/transforms/lazy/functional.py +++ b/monai/transforms/lazy/functional.py @@ -11,7 +11,9 @@ from __future__ import annotations -from typing import Any, Mapping, Sequence +from typing import Any + +from collections.abc import Mapping, Sequence import torch diff --git a/monai/transforms/spatial/array.py b/monai/transforms/spatial/array.py index 6e39fb2e19..18ea0da23b 100644 --- a/monai/transforms/spatial/array.py +++ b/monai/transforms/spatial/array.py @@ -18,7 +18,9 @@ from collections.abc import Callable from copy import deepcopy from itertools import zip_longest -from typing import Any, Optional, Sequence, Tuple, Union, cast +from typing import Any, Optional, Union, cast + +from collections.abc import Sequence import numpy as np import torch @@ -116,7 +118,7 @@ "RandSimulateLowResolution", ] -RandRange = Optional[Union[Sequence[Union[Tuple[float, float], float]], float]] +RandRange = Optional[Union[Sequence[Union[tuple[float, float], float]], float]] class SpatialResample(InvertibleTransform, LazyTransform): diff --git a/monai/transforms/utility/dictionary.py b/monai/transforms/utility/dictionary.py index 79d0be522d..da43914aba 100644 --- a/monai/transforms/utility/dictionary.py +++ b/monai/transforms/utility/dictionary.py @@ -20,7 +20,9 @@ import re from collections.abc import Callable, Hashable, Mapping from copy import deepcopy -from typing import Any, Sequence, cast +from typing import Any, cast + +from collections.abc import Sequence import numpy as np import torch diff --git a/monai/transforms/utils_morphological_ops.py b/monai/transforms/utils_morphological_ops.py index b3134c1865..61d3c5b858 100644 --- a/monai/transforms/utils_morphological_ops.py +++ b/monai/transforms/utils_morphological_ops.py @@ -11,7 +11,7 @@ from __future__ import annotations -from typing import Sequence +from collections.abc import Sequence import torch import torch.nn.functional as F diff --git a/monai/utils/component_store.py b/monai/utils/component_store.py index d1e71eaebf..44be6efe94 100644 --- a/monai/utils/component_store.py +++ b/monai/utils/component_store.py @@ -14,7 +14,9 @@ from collections import namedtuple from keyword import iskeyword from textwrap import dedent, indent -from typing import Any, Callable, Iterable, TypeVar +from typing import Any, Callable, TypeVar + +from collections.abc import Iterable T = TypeVar("T") diff --git a/monai/utils/decorators.py b/monai/utils/decorators.py index 1c064468e8..0c3bf6ba6f 100644 --- a/monai/utils/decorators.py +++ b/monai/utils/decorators.py @@ -15,7 +15,9 @@ __all__ = ["RestartGenerator", "MethodReplacer"] -from typing import Callable, Generator +from typing import Callable + +from collections.abc import Generator class RestartGenerator: diff --git a/monai/utils/module.py b/monai/utils/module.py index df5fe873ae..f2acb28119 100644 --- a/monai/utils/module.py +++ b/monai/utils/module.py @@ -25,7 +25,9 @@ from pydoc import locate from re import match from types import FunctionType, ModuleType -from typing import Any, Iterable, cast +from typing import Any, cast + +from collections.abc import Iterable import torch diff --git a/monai/utils/state_cacher.py b/monai/utils/state_cacher.py index d37e7abde4..255e15a7e4 100644 --- a/monai/utils/state_cacher.py +++ b/monai/utils/state_cacher.py @@ -16,7 +16,9 @@ import pickle import tempfile from types import ModuleType -from typing import Any, Hashable +from typing import Any + +from collections.abc import Hashable import torch from torch.serialization import DEFAULT_PROTOCOL diff --git a/tests/test_dynunet.py b/tests/test_dynunet.py index f3c982056c..e173049a95 100644 --- a/tests/test_dynunet.py +++ b/tests/test_dynunet.py @@ -13,7 +13,9 @@ import platform import unittest -from typing import Any, Sequence +from typing import Any + +from collections.abc import Sequence import torch from parameterized import parameterized diff --git a/tests/test_network_consistency.py b/tests/test_network_consistency.py index 4182501808..6949bb359f 100644 --- a/tests/test_network_consistency.py +++ b/tests/test_network_consistency.py @@ -15,7 +15,7 @@ import os import unittest from glob import glob -from typing import Sequence +from collections.abc import Sequence from unittest.case import skipIf import torch From 0cfb3e8fc8d6d9240f76502675739a1ad5519d5b Mon Sep 17 00:00:00 2001 From: James Butler Date: Wed, 23 Oct 2024 19:21:57 -0400 Subject: [PATCH 6/6] apply isort changes Changes were automatically applied by running: python -m isort . Signed-off-by: James Butler --- monai/__init__.py | 4 ++-- monai/apps/detection/transforms/array.py | 3 +-- monai/apps/pathology/engines/utils.py | 3 +-- monai/apps/pathology/inferers/inferer.py | 3 +-- monai/apps/pathology/metrics/lesion_froc.py | 3 +-- monai/apps/pathology/transforms/post/array.py | 3 +-- monai/bundle/reference_resolver.py | 4 +--- monai/bundle/workflows.py | 3 +-- monai/config/type_definitions.py | 3 +-- monai/data/meta_obj.py | 3 +-- monai/data/meta_tensor.py | 3 +-- monai/engines/evaluator.py | 3 +-- monai/engines/trainer.py | 3 +-- monai/engines/utils.py | 4 +--- monai/handlers/clearml_handlers.py | 3 +-- monai/inferers/utils.py | 4 +--- monai/metrics/utils.py | 3 +-- monai/networks/nets/swin_unetr.py | 2 +- monai/transforms/intensity/dictionary.py | 3 +-- monai/transforms/lazy/functional.py | 3 +-- monai/transforms/spatial/array.py | 4 +--- monai/transforms/utility/dictionary.py | 4 +--- monai/utils/component_store.py | 3 +-- monai/utils/decorators.py | 3 +-- monai/utils/dist.py | 5 +---- monai/utils/module.py | 4 +--- monai/utils/state_cacher.py | 3 +-- tests/test_dynunet.py | 3 +-- tests/test_network_consistency.py | 2 +- 29 files changed, 30 insertions(+), 64 deletions(-) diff --git a/monai/__init__.py b/monai/__init__.py index f6fc8b0646..d92557a8e1 100644 --- a/monai/__init__.py +++ b/monai/__init__.py @@ -11,12 +11,12 @@ from __future__ import annotations +import logging import os import sys -import logging import warnings -from ._version import get_versions +from ._version import get_versions old_showwarning = warnings.showwarning diff --git a/monai/apps/detection/transforms/array.py b/monai/apps/detection/transforms/array.py index 6b92572954..301a636b6c 100644 --- a/monai/apps/detection/transforms/array.py +++ b/monai/apps/detection/transforms/array.py @@ -15,9 +15,8 @@ from __future__ import annotations -from typing import Any - from collections.abc import Sequence +from typing import Any import numpy as np import torch diff --git a/monai/apps/pathology/engines/utils.py b/monai/apps/pathology/engines/utils.py index c704dc7469..87ca0f8e76 100644 --- a/monai/apps/pathology/engines/utils.py +++ b/monai/apps/pathology/engines/utils.py @@ -11,9 +11,8 @@ from __future__ import annotations -from typing import Any - from collections.abc import Sequence +from typing import Any import torch diff --git a/monai/apps/pathology/inferers/inferer.py b/monai/apps/pathology/inferers/inferer.py index 4f034f0ad1..392cba221f 100644 --- a/monai/apps/pathology/inferers/inferer.py +++ b/monai/apps/pathology/inferers/inferer.py @@ -11,9 +11,8 @@ from __future__ import annotations -from typing import Any, Callable - from collections.abc import Sequence +from typing import Any, Callable import numpy as np import torch diff --git a/monai/apps/pathology/metrics/lesion_froc.py b/monai/apps/pathology/metrics/lesion_froc.py index bbd7bf4905..138488348a 100644 --- a/monai/apps/pathology/metrics/lesion_froc.py +++ b/monai/apps/pathology/metrics/lesion_froc.py @@ -11,9 +11,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any - from collections.abc import Iterable +from typing import TYPE_CHECKING, Any import numpy as np diff --git a/monai/apps/pathology/transforms/post/array.py b/monai/apps/pathology/transforms/post/array.py index bb50ee4fd9..561ed3ae20 100644 --- a/monai/apps/pathology/transforms/post/array.py +++ b/monai/apps/pathology/transforms/post/array.py @@ -12,9 +12,8 @@ from __future__ import annotations import warnings -from typing import Callable - from collections.abc import Sequence +from typing import Callable import numpy as np import torch diff --git a/monai/bundle/reference_resolver.py b/monai/bundle/reference_resolver.py index 6c5ca776f5..df69b021e1 100644 --- a/monai/bundle/reference_resolver.py +++ b/monai/bundle/reference_resolver.py @@ -13,11 +13,9 @@ import re import warnings -from collections.abc import Sequence +from collections.abc import Iterator, Sequence from typing import Any -from collections.abc import Iterator - from monai.bundle.config_item import ConfigComponent, ConfigExpression, ConfigItem from monai.bundle.utils import DEPRECATED_ID_MAPPING, ID_REF_KEY, ID_SEP_KEY from monai.utils import allow_missing_reference, look_up_option diff --git a/monai/bundle/workflows.py b/monai/bundle/workflows.py index f425d8fd28..3ecd5dfbc5 100644 --- a/monai/bundle/workflows.py +++ b/monai/bundle/workflows.py @@ -16,13 +16,12 @@ import sys import time from abc import ABC, abstractmethod +from collections.abc import Sequence from copy import copy from logging.config import fileConfig from pathlib import Path from typing import Any -from collections.abc import Sequence - from monai.apps.utils import get_logger from monai.bundle.config_parser import ConfigParser from monai.bundle.properties import InferProperties, MetaProperties, TrainProperties diff --git a/monai/config/type_definitions.py b/monai/config/type_definitions.py index cf6a2957ee..48c0547e31 100644 --- a/monai/config/type_definitions.py +++ b/monai/config/type_definitions.py @@ -12,9 +12,8 @@ from __future__ import annotations import os -from typing import TypeVar, Union - from collections.abc import Collection, Hashable, Iterable, Sequence +from typing import TypeVar, Union import numpy as np import torch diff --git a/monai/data/meta_obj.py b/monai/data/meta_obj.py index d951d69b04..15e6e8be15 100644 --- a/monai/data/meta_obj.py +++ b/monai/data/meta_obj.py @@ -13,11 +13,10 @@ import itertools import pprint +from collections.abc import Iterable from copy import deepcopy from typing import Any -from collections.abc import Iterable - import numpy as np import torch diff --git a/monai/data/meta_tensor.py b/monai/data/meta_tensor.py index 88e55c74da..ac171e8508 100644 --- a/monai/data/meta_tensor.py +++ b/monai/data/meta_tensor.py @@ -13,11 +13,10 @@ import functools import warnings +from collections.abc import Sequence from copy import deepcopy from typing import Any -from collections.abc import Sequence - import numpy as np import torch diff --git a/monai/engines/evaluator.py b/monai/engines/evaluator.py index 8c0972ae7f..d70a39726b 100644 --- a/monai/engines/evaluator.py +++ b/monai/engines/evaluator.py @@ -12,9 +12,8 @@ from __future__ import annotations import warnings -from typing import TYPE_CHECKING, Any, Callable - from collections.abc import Iterable, Sequence +from typing import TYPE_CHECKING, Any, Callable import torch from torch.utils.data import DataLoader diff --git a/monai/engines/trainer.py b/monai/engines/trainer.py index 0ca9d40a26..a0be86bae5 100644 --- a/monai/engines/trainer.py +++ b/monai/engines/trainer.py @@ -12,9 +12,8 @@ from __future__ import annotations import warnings -from typing import TYPE_CHECKING, Any, Callable - from collections.abc import Iterable, Sequence +from typing import TYPE_CHECKING, Any, Callable import torch from torch.optim.optimizer import Optimizer diff --git a/monai/engines/utils.py b/monai/engines/utils.py index 74612f7116..8e19a18601 100644 --- a/monai/engines/utils.py +++ b/monai/engines/utils.py @@ -12,11 +12,9 @@ from __future__ import annotations from abc import ABC, abstractmethod -from collections.abc import Callable, Sequence +from collections.abc import Callable, Mapping, Sequence from typing import TYPE_CHECKING, Any, cast -from collections.abc import Mapping - import torch import torch.nn as nn diff --git a/monai/handlers/clearml_handlers.py b/monai/handlers/clearml_handlers.py index 11f9dca24f..0aa2a5cc08 100644 --- a/monai/handlers/clearml_handlers.py +++ b/monai/handlers/clearml_handlers.py @@ -11,9 +11,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any - from collections.abc import Mapping, Sequence +from typing import TYPE_CHECKING, Any from monai.utils import optional_import diff --git a/monai/inferers/utils.py b/monai/inferers/utils.py index 8bb2941529..edaf736091 100644 --- a/monai/inferers/utils.py +++ b/monai/inferers/utils.py @@ -12,11 +12,9 @@ from __future__ import annotations import itertools -from collections.abc import Callable, Mapping, Sequence +from collections.abc import Callable, Iterable, Mapping, Sequence from typing import Any -from collections.abc import Iterable - import numpy as np import torch import torch.nn.functional as F diff --git a/monai/metrics/utils.py b/monai/metrics/utils.py index 43bd5a3483..96d60c9098 100644 --- a/monai/metrics/utils.py +++ b/monai/metrics/utils.py @@ -12,12 +12,11 @@ from __future__ import annotations import warnings +from collections.abc import Iterable, Sequence from functools import lru_cache, partial from types import ModuleType from typing import Any -from collections.abc import Iterable, Sequence - import numpy as np import torch diff --git a/monai/networks/nets/swin_unetr.py b/monai/networks/nets/swin_unetr.py index c8fb76ad8b..832135ad06 100644 --- a/monai/networks/nets/swin_unetr.py +++ b/monai/networks/nets/swin_unetr.py @@ -13,6 +13,7 @@ import itertools from collections.abc import Sequence +from typing import Final import numpy as np import torch @@ -20,7 +21,6 @@ import torch.nn.functional as F import torch.utils.checkpoint as checkpoint from torch.nn import LayerNorm -from typing import Final from monai.networks.blocks import MLPBlock as Mlp from monai.networks.blocks import PatchEmbed, UnetOutBlock, UnetrBasicBlock, UnetrUpBlock diff --git a/monai/transforms/intensity/dictionary.py b/monai/transforms/intensity/dictionary.py index c5e7add79d..f2b1a2fd40 100644 --- a/monai/transforms/intensity/dictionary.py +++ b/monai/transforms/intensity/dictionary.py @@ -17,9 +17,8 @@ from __future__ import annotations -from typing import Callable - from collections.abc import Hashable, Mapping, Sequence +from typing import Callable import numpy as np diff --git a/monai/transforms/lazy/functional.py b/monai/transforms/lazy/functional.py index 518c74e414..a33d76807c 100644 --- a/monai/transforms/lazy/functional.py +++ b/monai/transforms/lazy/functional.py @@ -11,9 +11,8 @@ from __future__ import annotations -from typing import Any - from collections.abc import Mapping, Sequence +from typing import Any import torch diff --git a/monai/transforms/spatial/array.py b/monai/transforms/spatial/array.py index 18ea0da23b..e4ed196eff 100644 --- a/monai/transforms/spatial/array.py +++ b/monai/transforms/spatial/array.py @@ -15,13 +15,11 @@ from __future__ import annotations import warnings -from collections.abc import Callable +from collections.abc import Callable, Sequence from copy import deepcopy from itertools import zip_longest from typing import Any, Optional, Union, cast -from collections.abc import Sequence - import numpy as np import torch diff --git a/monai/transforms/utility/dictionary.py b/monai/transforms/utility/dictionary.py index da43914aba..65c721e48e 100644 --- a/monai/transforms/utility/dictionary.py +++ b/monai/transforms/utility/dictionary.py @@ -18,12 +18,10 @@ from __future__ import annotations import re -from collections.abc import Callable, Hashable, Mapping +from collections.abc import Callable, Hashable, Mapping, Sequence from copy import deepcopy from typing import Any, cast -from collections.abc import Sequence - import numpy as np import torch diff --git a/monai/utils/component_store.py b/monai/utils/component_store.py index 44be6efe94..bf0d632ddd 100644 --- a/monai/utils/component_store.py +++ b/monai/utils/component_store.py @@ -12,12 +12,11 @@ from __future__ import annotations from collections import namedtuple +from collections.abc import Iterable from keyword import iskeyword from textwrap import dedent, indent from typing import Any, Callable, TypeVar -from collections.abc import Iterable - T = TypeVar("T") diff --git a/monai/utils/decorators.py b/monai/utils/decorators.py index 0c3bf6ba6f..a784510c64 100644 --- a/monai/utils/decorators.py +++ b/monai/utils/decorators.py @@ -15,9 +15,8 @@ __all__ = ["RestartGenerator", "MethodReplacer"] -from typing import Callable - from collections.abc import Generator +from typing import Callable class RestartGenerator: diff --git a/monai/utils/dist.py b/monai/utils/dist.py index 9c4ad64708..47da2bee6e 100644 --- a/monai/utils/dist.py +++ b/monai/utils/dist.py @@ -14,10 +14,7 @@ import warnings from collections.abc import Callable from logging import Filter - -from typing import Literal - -from typing import overload +from typing import Literal, overload import torch import torch.distributed as dist diff --git a/monai/utils/module.py b/monai/utils/module.py index f2acb28119..1f7f8aecfc 100644 --- a/monai/utils/module.py +++ b/monai/utils/module.py @@ -18,7 +18,7 @@ import re import sys import warnings -from collections.abc import Callable, Collection, Hashable, Mapping +from collections.abc import Callable, Collection, Hashable, Iterable, Mapping from functools import partial, wraps from importlib import import_module from pkgutil import walk_packages @@ -27,8 +27,6 @@ from types import FunctionType, ModuleType from typing import Any, cast -from collections.abc import Iterable - import torch # bundle config system flags diff --git a/monai/utils/state_cacher.py b/monai/utils/state_cacher.py index 255e15a7e4..60a074544b 100644 --- a/monai/utils/state_cacher.py +++ b/monai/utils/state_cacher.py @@ -15,11 +15,10 @@ import os import pickle import tempfile +from collections.abc import Hashable from types import ModuleType from typing import Any -from collections.abc import Hashable - import torch from torch.serialization import DEFAULT_PROTOCOL diff --git a/tests/test_dynunet.py b/tests/test_dynunet.py index e173049a95..7c4882fcbb 100644 --- a/tests/test_dynunet.py +++ b/tests/test_dynunet.py @@ -13,9 +13,8 @@ import platform import unittest -from typing import Any - from collections.abc import Sequence +from typing import Any import torch from parameterized import parameterized diff --git a/tests/test_network_consistency.py b/tests/test_network_consistency.py index 6949bb359f..bcfd448144 100644 --- a/tests/test_network_consistency.py +++ b/tests/test_network_consistency.py @@ -14,8 +14,8 @@ import json import os import unittest -from glob import glob from collections.abc import Sequence +from glob import glob from unittest.case import skipIf import torch