def test_name_logic(self): from jicbioimage.core.io import AutoName def no_transform(image): return image self.assertEqual(AutoName.name(no_transform), '1_no_transform') AutoName.directory = os.path.join('/', 'tmp') self.assertEqual(AutoName.name(no_transform), os.path.join('/', 'tmp', '2_no_transform'))
def test_custom_prefix_name_logic(self): from jicbioimage.core.io import AutoName AutoName.prefix_format = "{:02d}_" def no_transform(image): return image self.assertEqual(AutoName.name(no_transform), '01_no_transform')
def test_custom_namespace_logic(self): from jicbioimage.core.io import AutoName AutoName.namespace = "strand1." def no_transform(image): return image self.assertEqual(AutoName.name(no_transform), '1_strand1.no_transform')
def func_as_transformation(*args, **kwargs): # Take copies of the args and kwargs for use in the history. # We will need to remove the image from either the kwargs # or the args before we use h_args and h_kwargs to create a # history event. h_args = list(args[:]) h_kwargs = kwargs.copy() # Get the input image, so that we can get the history from it. # Also, strip the image for h_args/h_kwargs. input_image = kwargs.get("image", None) if input_image is None: # The image is the first item of args. input_image = args[0] h_args.pop(0) else: # The image is in kwargs. h_kwargs.pop("image") def array_to_str(value): if isinstance(value, np.ndarray): value = repr(value) return value h_args = [array_to_str(v) for v in h_args] for key, value in h_kwargs.items(): h_kwargs[key] = array_to_str(value) # Get the history from the image. history = History() if hasattr(input_image, "history"): history.extend(input_image.history) image = func(*args, **kwargs) if not isinstance(image, _BaseImageWithHistory): image = Image.from_array(image, log_in_history=False) # Update the history of the image. image.history = history image.history.add_event(func, h_args, h_kwargs) if AutoWrite.on: fpath = AutoName.name(func) image.write(fpath) return image
def test_custom_prefix(self): from jicbioimage.core.io import AutoName AutoName.prefix_format = "{:02d}_" self.assertEqual(AutoName.prefix(), "00_")
def test_prefix(self): from jicbioimage.core.io import AutoName self.assertEqual(AutoName.prefix(), "0_")