def test_0_default(self): self.assertTrue(len(resolve_writer(".png")) > 0, "has png writer") self.assertTrue(len(resolve_writer(".nrrd")) > 0, "has nrrd writer") self.assertTrue(len(resolve_writer("unknown")) > 0, "has writer") register_writer("unknown1", lambda: (_ for _ in ()).throw(OptionalImportError)) with self.assertRaises(OptionalImportError): resolve_writer("unknown1")
def __init__( self, output_dir: PathLike = "./", output_postfix: str = "trans", output_ext: str = ".nii.gz", output_dtype: DtypeLike = np.float32, resample: bool = True, mode: Union[GridSampleMode, InterpolateMode, str] = "nearest", padding_mode: Union[GridSamplePadMode, str] = GridSamplePadMode.BORDER, scale: Optional[int] = None, dtype: DtypeLike = np.float64, squeeze_end_dims: bool = True, data_root_dir: PathLike = "", separate_folder: bool = True, print_log: bool = True, output_format: str = "", writer: Union[image_writer.ImageWriter, str, None] = None, channel_dim: Optional[int] = 0, ) -> None: self.folder_layout = FolderLayout( output_dir=output_dir, postfix=output_postfix, extension=output_ext, parent=separate_folder, makedirs=True, data_root_dir=data_root_dir, ) self.output_ext = output_ext.lower() or output_format.lower() if isinstance(writer, str): writer_, has_built_in = optional_import("monai.data", name=f"{writer}") # search built-in if not has_built_in: writer_ = locate(f"{writer}") # search dotted path if writer_ is None: raise ValueError(f"writer {writer} not found") writer = writer_ # type: ignore self.writers = image_writer.resolve_writer(self.output_ext) if writer is None else (writer,) self.writer_obj = None _output_dtype = output_dtype if self.output_ext == ".png" and _output_dtype not in (np.uint8, np.uint16): _output_dtype = np.uint8 if self.output_ext == ".dcm" and _output_dtype not in (np.uint8, np.uint16): _output_dtype = np.uint8 self.init_kwargs = {"output_dtype": _output_dtype, "scale": scale} self.data_kwargs = {"squeeze_end_dims": squeeze_end_dims, "channel_dim": channel_dim} self.meta_kwargs = {"resample": resample, "mode": mode, "padding_mode": padding_mode, "dtype": dtype} self.write_kwargs = {"verbose": print_log} self._data_index = 0
def test_1_new(self): register_writer("new", lambda x: x + 1) register_writer("new2", lambda x: x + 1) self.assertEqual(resolve_writer("new")[0](0), 1)