|
37 | 37 | require_pkg, |
38 | 38 | ) |
39 | 39 |
|
| 40 | +RECOMMENDED_PACKAGES = { |
| 41 | + "png": "Pillow", |
| 42 | + "jpg": "Pillow", |
| 43 | + "jpeg": "Pillow", |
| 44 | + "nii": "nibabel or SimpleITK", |
| 45 | + "niigz": "nibabel or SimpleITK", |
| 46 | + "nrrd": "pynrrd", |
| 47 | + "tif": "Pillow or tifffile", |
| 48 | + "tiff": "Pillow or tifffile", |
| 49 | +} |
40 | 50 | DEFAULT_FMT = "%(asctime)s %(levelname)s %(filename)s:%(lineno)d - %(message)s" |
41 | 51 | EXT_WILDCARD = "*" |
42 | 52 | logger = get_logger(module_name=__name__, fmt=DEFAULT_FMT) |
@@ -116,24 +126,13 @@ def resolve_writer(ext_name, error_if_not_found=True) -> Sequence: |
116 | 126 | except Exception: # other writer init errors indicating it exists |
117 | 127 | avail_writers.append(_writer) |
118 | 128 | if not avail_writers and error_if_not_found: |
119 | | - recommended_packages = { |
120 | | - "png": "Pillow", |
121 | | - "jpg": "Pillow", |
122 | | - "jpeg": "Pillow", |
123 | | - "nii": "nibabel or SimpleITK", |
124 | | - "nii.gz": "nibabel or SimpleITK", |
125 | | - "nrrd": "pynrrd", |
126 | | - "tif": "Pillow or tifffile", |
127 | | - "tiff": "Pillow or tifffile", |
128 | | - } |
129 | | - |
130 | 129 | fmt_clean = fmt.lower() |
131 | | - package_hint = recommended_packages.get(fmt_clean, "") |
| 130 | + package_hint = RECOMMENDED_PACKAGES.get(fmt_clean, "") |
132 | 131 |
|
133 | 132 | msg = f"No ImageWriter backend found for {fmt}." |
134 | 133 | if package_hint: |
135 | 134 | msg += f" Please install '{package_hint}' (e.g., pip install {package_hint})." |
136 | | - |
| 135 | + |
137 | 136 | raise OptionalImportError(msg) |
138 | 137 |
|
139 | 138 | writer_tuple = ensure_tuple(avail_writers) |
|
0 commit comments