Skip to content

Commit 7b3c1b2

Browse files
authored
Merge pull request #1358 from DimitriPapadopoulos/TCH
STY: Enforce ruff/flake8-type-checking rules (TCH)
2 parents 4c216b1 + 8ca899a commit 7b3c1b2

File tree

9 files changed

+28
-14
lines changed

9 files changed

+28
-14
lines changed

nibabel/_compression.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@
1212

1313
import bz2
1414
import gzip
15-
import io
1615
import typing as ty
1716

1817
from .optpkg import optional_package
1918

2019
if ty.TYPE_CHECKING:
20+
import io
21+
2122
import indexed_gzip # type: ignore[import]
2223
import pyzstd
2324

nibabel/dataobj_images.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414

1515
import numpy as np
1616

17-
from .arrayproxy import ArrayLike
1817
from .deprecated import deprecate_with_version
1918
from .filebasedimages import FileBasedHeader, FileBasedImage
20-
from .fileholders import FileMap
2119

2220
if ty.TYPE_CHECKING:
2321
import numpy.typing as npt
2422

23+
from .arrayproxy import ArrayLike
24+
from .fileholders import FileMap
2525
from .filename_parser import FileSpec
2626

2727
ArrayImgT = ty.TypeVar('ArrayImgT', bound='DataobjImage')

nibabel/fileholders.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@
1010

1111
from __future__ import annotations
1212

13-
import io
1413
import typing as ty
1514
from copy import copy
1615

1716
from .openers import ImageOpener
1817

18+
if ty.TYPE_CHECKING:
19+
import io
20+
1921

2022
class FileHolderError(Exception):
2123
pass

nibabel/imageclasses.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010

1111
from __future__ import annotations
1212

13+
from typing import TYPE_CHECKING
14+
1315
from .analyze import AnalyzeImage
1416
from .brikhead import AFNIImage
1517
from .cifti2 import Cifti2Image
16-
from .dataobj_images import DataobjImage
17-
from .filebasedimages import FileBasedImage
1818
from .freesurfer import MGHImage
1919
from .gifti import GiftiImage
2020
from .minc1 import Minc1Image
@@ -25,6 +25,10 @@
2525
from .spm2analyze import Spm2AnalyzeImage
2626
from .spm99analyze import Spm99AnalyzeImage
2727

28+
if TYPE_CHECKING:
29+
from .dataobj_images import DataobjImage
30+
from .filebasedimages import FileBasedImage
31+
2832
# Ordered by the load/save priority.
2933
all_image_classes: list[type[FileBasedImage]] = [
3034
Nifti1Pair,

nibabel/optpkg.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
from __future__ import annotations
44

55
import typing as ty
6-
from types import ModuleType
76

87
from packaging.version import Version
98

109
from .tripwire import TripWire
1110

11+
if ty.TYPE_CHECKING:
12+
from types import ModuleType
13+
1214

1315
def _check_pkg_version(min_version: str | Version) -> ty.Callable[[ModuleType], bool]:
1416
min_ver = Version(min_version) if isinstance(min_version, str) else min_version

nibabel/spatialimages.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,18 +132,14 @@
132132

133133
from __future__ import annotations
134134

135-
import io
136135
import typing as ty
137-
from collections.abc import Sequence
138136
from typing import Literal
139137

140138
import numpy as np
141139

142-
from .arrayproxy import ArrayLike
143140
from .casting import sctypes_aliases
144141
from .dataobj_images import DataobjImage
145142
from .filebasedimages import FileBasedHeader, FileBasedImage
146-
from .fileholders import FileMap
147143
from .fileslice import canonical_slicers
148144
from .orientations import apply_orientation, inv_ornt_aff
149145
from .viewers import OrthoSlicer3D
@@ -155,8 +151,14 @@
155151
from functools import lru_cache as cache
156152

157153
if ty.TYPE_CHECKING:
154+
import io
155+
from collections.abc import Sequence
156+
158157
import numpy.typing as npt
159158

159+
from .arrayproxy import ArrayLike
160+
from .fileholders import FileMap
161+
160162
SpatialImgT = ty.TypeVar('SpatialImgT', bound='SpatialImage')
161163
SpatialHdrT = ty.TypeVar('SpatialHdrT', bound='SpatialHeader')
162164

nibabel/testing/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@
2626
from .helpers import assert_data_similar, bytesio_filemap, bytesio_round_trip
2727
from .np_features import memmap_after_ufunc
2828

29+
if ty.TYPE_CHECKING:
30+
from importlib.resources.abc import Traversable
31+
2932
try:
3033
from importlib.resources import as_file, files
31-
from importlib.resources.abc import Traversable
3234
except ImportError: # PY38
3335
from importlib_resources import as_file, files
34-
from importlib_resources.abc import Traversable
3536

3637

3738
def get_test_data(

nibabel/volumeutils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
from __future__ import annotations
1212

13-
import io
1413
import sys
1514
import typing as ty
1615
import warnings
@@ -25,6 +24,8 @@
2524
from .externals.oset import OrderedSet
2625

2726
if ty.TYPE_CHECKING:
27+
import io
28+
2829
import numpy.typing as npt
2930

3031
Scalar = np.number | float

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ select = [
123123
"PLE",
124124
"Q",
125125
"RSE",
126+
"TCH",
126127
"UP",
127128
]
128129
ignore = [

0 commit comments

Comments
 (0)