(self, data, start=0, end=None, threading=False, lazy: bool | None = None)
| 766 | return ensure_tuple(list(weights)) |
| 767 | |
| 768 | def __call__(self, data, start=0, end=None, threading=False, lazy: bool | None = None): |
| 769 | if start != 0: |
| 770 | raise ValueError(f"SomeOf requires 'start' parameter to be 0 (start set to {start})") |
| 771 | if end is not None: |
| 772 | raise ValueError(f"SomeOf requires 'end' parameter to be None (end set to {end}") |
| 773 | |
| 774 | if len(self.transforms) == 0: |
| 775 | return data |
| 776 | |
| 777 | sample_size = self.R.randint(self.min_num_transforms, self.max_num_transforms + 1) |
| 778 | applied_order = self.R.choice(len(self.transforms), sample_size, replace=self.replace, p=self.weights).tolist() |
| 779 | _lazy = self._lazy if lazy is None else lazy |
| 780 | |
| 781 | data = execute_compose( |
| 782 | data, |
| 783 | [self.transforms[a] for a in applied_order], |
| 784 | start=start, |
| 785 | end=end, |
| 786 | map_items=self.map_items, |
| 787 | unpack_items=self.unpack_items, |
| 788 | lazy=_lazy, |
| 789 | overrides=self.overrides, |
| 790 | threading=threading, |
| 791 | log_stats=self.log_stats, |
| 792 | ) |
| 793 | if isinstance(data, monai.data.MetaTensor): |
| 794 | self.push_transform(data, extra_info={"applied_order": applied_order}) |
| 795 | elif isinstance(data, Mapping): |
| 796 | for key in data: # dictionary not change size during iteration |
| 797 | if isinstance(data[key], monai.data.MetaTensor) or self.trace_key(key) in data: |
| 798 | self.push_transform(data, key, extra_info={"applied_order": applied_order}) |
| 799 | |
| 800 | return data |
| 801 | |
| 802 | # From RandomOrder |
| 803 | def inverse(self, data): |
nothing calls this directly
no test coverage detected