(self, data, start=0, end=None, threading=False, lazy: bool | None = None)
| 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: |
nothing calls this directly
no test coverage detected