|
81 | 81 | can be loaded with and without a default flip, so the saved zoom will not |
82 | 82 | constrain the affine. |
83 | 83 | """ |
| 84 | +from __future__ import annotations |
| 85 | + |
| 86 | +from typing import Type |
84 | 87 |
|
85 | 88 | import numpy as np |
86 | 89 |
|
87 | 90 | from .arrayproxy import ArrayProxy |
88 | 91 | from .arraywriters import ArrayWriter, WriterError, get_slope_inter, make_array_writer |
89 | 92 | from .batteryrunners import Report |
90 | 93 | from .fileholders import copy_file_map |
91 | | -from .spatialimages import HeaderDataError, HeaderTypeError, SpatialImage |
| 94 | +from .spatialimages import HeaderDataError, HeaderTypeError, SpatialHeader, SpatialImage |
92 | 95 | from .volumeutils import ( |
93 | 96 | apply_read_scaling, |
94 | 97 | array_from_file, |
|
131 | 134 | ('glmax', 'i4'), |
132 | 135 | ('glmin', 'i4'), |
133 | 136 | ] |
134 | | -data_history_dtd = [ |
| 137 | +data_history_dtd: list[tuple[str, str] | tuple[str, str, tuple[int, ...]]] = [ |
135 | 138 | ('descrip', 'S80'), |
136 | 139 | ('aux_file', 'S24'), |
137 | 140 | ('orient', 'S1'), |
|
172 | 175 | data_type_codes = make_dt_codes(_dtdefs) |
173 | 176 |
|
174 | 177 |
|
175 | | -class AnalyzeHeader(LabeledWrapStruct): |
| 178 | +class AnalyzeHeader(LabeledWrapStruct, SpatialHeader): |
176 | 179 | """Class for basic analyze header |
177 | 180 |
|
178 | 181 | Implements zoom-only setting of affine transform, and no image |
@@ -892,11 +895,11 @@ def may_contain_header(klass, binaryblock): |
892 | 895 | class AnalyzeImage(SpatialImage): |
893 | 896 | """Class for basic Analyze format image""" |
894 | 897 |
|
895 | | - header_class = AnalyzeHeader |
| 898 | + header_class: Type[AnalyzeHeader] = AnalyzeHeader |
896 | 899 | _meta_sniff_len = header_class.sizeof_hdr |
897 | | - files_types = (('image', '.img'), ('header', '.hdr')) |
898 | | - valid_exts = ('.img', '.hdr') |
899 | | - _compressed_suffixes = ('.gz', '.bz2', '.zst') |
| 900 | + files_types: tuple[tuple[str, str], ...] = (('image', '.img'), ('header', '.hdr')) |
| 901 | + valid_exts: tuple[str, ...] = ('.img', '.hdr') |
| 902 | + _compressed_suffixes: tuple[str, ...] = ('.gz', '.bz2', '.zst') |
900 | 903 |
|
901 | 904 | makeable = True |
902 | 905 | rw = True |
|
0 commit comments