Build rules lookup cache
(self)
| 89 | return -1 |
| 90 | |
| 91 | def __compile__(self) -> None: |
| 92 | """Build rules lookup cache""" |
| 93 | chains = {""} |
| 94 | # collect unique names |
| 95 | for rule in self.__rules__: |
| 96 | if not rule.enabled: |
| 97 | continue |
| 98 | for name in rule.alt: |
| 99 | chains.add(name) |
| 100 | self.__cache__ = {} |
| 101 | for chain in chains: |
| 102 | self.__cache__[chain] = [] |
| 103 | for rule in self.__rules__: |
| 104 | if not rule.enabled: |
| 105 | continue |
| 106 | if chain and (chain not in rule.alt): |
| 107 | continue |
| 108 | self.__cache__[chain].append(rule.fn) |
| 109 | |
| 110 | def at( |
| 111 | self, ruleName: str, fn: RuleFuncTv, options: RuleOptionsType | None = None |