(self, num_transforms: int | tuple[int, int] | None)
| 714 | self.log_stats = log_stats |
| 715 | |
| 716 | def _ensure_valid_num_transforms(self, num_transforms: int | tuple[int, int] | None) -> tuple: |
| 717 | if ( |
| 718 | not isinstance(num_transforms, tuple) |
| 719 | and not isinstance(num_transforms, list) |
| 720 | and not isinstance(num_transforms, int) |
| 721 | and num_transforms is not None |
| 722 | ): |
| 723 | raise ValueError( |
| 724 | f"Expected num_transforms to be of type int, list, tuple or None, but it's {type(num_transforms)}" |
| 725 | ) |
| 726 | |
| 727 | if num_transforms is None: |
| 728 | result = [len(self.transforms), len(self.transforms)] |
| 729 | elif isinstance(num_transforms, int): |
| 730 | n = min(len(self.transforms), num_transforms) |
| 731 | result = [n, n] |
| 732 | else: |
| 733 | if len(num_transforms) != 2: |
| 734 | raise ValueError(f"Expected len(num_transforms)=2, but it was {len(num_transforms)}") |
| 735 | if not isinstance(num_transforms[0], int) or not isinstance(num_transforms[1], int): |
| 736 | raise ValueError( |
| 737 | f"Expected (int,int), but received ({type(num_transforms[0])}, {type(num_transforms[1])})" |
| 738 | ) |
| 739 | |
| 740 | result = [num_transforms[0], num_transforms[1]] |
| 741 | |
| 742 | if result[0] < 0 or result[1] > len(self.transforms): |
| 743 | raise ValueError(f"num_transforms={num_transforms} are out of the bounds [0, {len(self.transforms)}].") |
| 744 | |
| 745 | return ensure_tuple(result) |
| 746 | |
| 747 | # Modified from OneOf |
| 748 | def _normalize_probabilities(self, weights): |
no test coverage detected