traverse_until_fixpoint()   A
last analyzed

Complexity

Conditions 4

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 15.664

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
c 1
b 0
f 0
dl 0
loc 11
ccs 1
cts 10
cp 0.1
crap 15.664
rs 9.2
1 1
from .simplification import simplify
2
3 1
from ppp_datamodel.communication import TraceItem, Response
4
5
6 1
def traverse_until_fixpoint(predicate, tree):
7
    """Traverses the tree again and again until it is not modified."""
8
    old_tree = None
9
    tree = simplify(tree)
10
    while tree and old_tree != tree:
11
        old_tree = tree
12
        tree = tree.traverse(predicate)
13
        if not tree:
14
            return None
15
        tree = simplify(tree)
16
    return tree
17
18
19 1
def build_answer(request, tree, measures, module_name):
20 1
    trace = request.trace + [TraceItem(module_name, tree, measures, {})]
21 1
    return Response(request.language, tree, measures, trace)
22
23