(self, nag)
| 934 | self.n_max = n_max |
| 935 | |
| 936 | def _process(self, nag): |
| 937 | |
| 938 | # If 'level' is an int, we only need to process a single level |
| 939 | if isinstance(self.level, int): |
| 940 | nag._list[self.level] = self._process_single_level( |
| 941 | nag[self.level], self.n_min, self.n_max) |
| 942 | return nag |
| 943 | |
| 944 | # If 'level' covers multiple levels, iteratively process levels |
| 945 | level_n_min = [-1] * nag.num_levels |
| 946 | level_n_max = [-1] * nag.num_levels |
| 947 | |
| 948 | if self.level == 'all': |
| 949 | level_n_min = self.n_min if isinstance(self.n_min, list) \ |
| 950 | else [self.n_min] * nag.num_levels |
| 951 | level_n_max = self.n_max if isinstance(self.n_max, list) \ |
| 952 | else [self.n_max] * nag.num_levels |
| 953 | elif self.level[-1] == '+': |
| 954 | i = int(self.level[:-1]) |
| 955 | level_n_min[i:] = self.n_min if isinstance(self.n_min, list) \ |
| 956 | else [self.n_min] * (nag.num_levels - i) |
| 957 | level_n_max[i:] = self.n_max if isinstance(self.n_max, list) \ |
| 958 | else [self.n_max] * (nag.num_levels - i) |
| 959 | elif self.level[-1] == '-': |
| 960 | i = int(self.level[:-1]) |
| 961 | level_n_min[:i] = self.n_min if isinstance(self.n_min, list) \ |
| 962 | else [self.n_min] * i |
| 963 | level_n_max[:i] = self.n_max if isinstance(self.n_max, list) \ |
| 964 | else [self.n_max] * i |
| 965 | else: |
| 966 | raise ValueError(f'Unsupported level={self.level}') |
| 967 | |
| 968 | for i_level, (n_min, n_max) in enumerate(zip(level_n_min, level_n_max)): |
| 969 | nag._list[i_level] = self._process_single_level( |
| 970 | nag[i_level], n_min, n_max) |
| 971 | |
| 972 | return nag |
| 973 | |
| 974 | @staticmethod |
| 975 | def _process_single_level(data, n_min, n_max): |
nothing calls this directly
no test coverage detected