MCPcopy Create free account
hub / github.com/Project-MONAI/MONAI / __call__

Method __call__

monai/transforms/compose.py:508–541  ·  view source on GitHub ↗
(self, data, start=0, end=None, threading=False, lazy: bool | None = None)

Source from the content-addressed store, hash-verified

506 return OneOf(transforms, weights, self.map_items, self.unpack_items)
507
508 def __call__(self, data, start=0, end=None, threading=False, lazy: bool | None = None):
509 if start != 0:
510 raise ValueError(f"OneOf requires 'start' parameter to be 0 (start set to {start})")
511 if end is not None:
512 raise ValueError(f"OneOf requires 'end' parameter to be None (end set to {end}")
513
514 if len(self.transforms) == 0:
515 return data
516
517 index = self.R.multinomial(1, self.weights).argmax()
518 _transform = self.transforms[index]
519 _lazy = self._lazy if lazy is None else lazy
520
521 data = execute_compose(
522 data,
523 [_transform],
524 start=start,
525 end=end,
526 map_items=self.map_items,
527 unpack_items=self.unpack_items,
528 lazy=_lazy,
529 overrides=self.overrides,
530 threading=threading,
531 log_stats=self.log_stats,
532 )
533
534 # if the data is a mapping (dictionary), append the OneOf transform to the end
535 if isinstance(data, monai.data.MetaTensor):
536 self.push_transform(data, extra_info={"index": index})
537 elif isinstance(data, Mapping):
538 for key in data: # dictionary not change size during iteration
539 if isinstance(data[key], monai.data.MetaTensor):
540 self.push_transform(data[key], extra_info={"index": index})
541 return data
542
543 def inverse(self, data):
544 if len(self.transforms) == 0:

Callers

nothing calls this directly

Calls 2

execute_composeFunction · 0.85
push_transformMethod · 0.80

Tested by

no test coverage detected