Total Complexity | 3 |
Total Lines | 19 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | # coding=utf-8 |
||
2 | from typing import List |
||
3 | |||
4 | from decision_engine.rules import Rule |
||
5 | |||
6 | |||
7 | class Engine: |
||
8 | rules: List = [] |
||
9 | |||
10 | def __init__(self, rules: List[Rule], name: str = None) -> None: |
||
11 | self.rules = rules |
||
12 | self.name = name |
||
13 | |||
14 | def __repr__(self): |
||
15 | return f"Name: '{self.name}' | rules: {[r.name for r in self.rules]}" |
||
16 | |||
17 | def decide(self, data: dict) -> bool: |
||
18 | return all([rule.check(data) for rule in self.rules]) |
||
19 |