Main validation loop (Backwards iteration). Returns: (valid_rules, removed_lines_for_logging)
(self, rules: List[str])
| 173 | return self._valid_adblock(rule) |
| 174 | |
| 175 | def validate(self, rules: List[str]) -> Tuple[List[str], List[str]]: |
| 176 | """ |
| 177 | Main validation loop (Backwards iteration). |
| 178 | Returns: (valid_rules, removed_lines_for_logging) |
| 179 | """ |
| 180 | filtered = list(rules) |
| 181 | removed_log = [] |
| 182 | |
| 183 | # Iterate backwards |
| 184 | for i in range(len(filtered) - 1, -1, -1): |
| 185 | line = filtered[i] |
| 186 | is_valid_rule = self.is_valid(line) |
| 187 | is_empty_or_comment = not line.strip() or self.is_comment(line) |
| 188 | |
| 189 | if not is_valid_rule: |
| 190 | self._prev_removed = True |
| 191 | removed_log.append(line) |
| 192 | del filtered[i] |
| 193 | elif self._prev_removed and is_empty_or_comment: |
| 194 | del filtered[i] |
| 195 | else: |
| 196 | self._prev_removed = False |
| 197 | |
| 198 | return filtered, removed_log |
| 199 | |
| 200 | # --- Compression Logic (Optimized) --- |
| 201 |
no test coverage detected