decision_engine.engine   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 12
dl 0
loc 19
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A Engine.__repr__() 0 2 1
A Engine.__init__() 0 3 1
A Engine.decide() 0 2 1
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