Skip to content

Commit a341840

Browse files
committed
squash: provide callback protocol
1 parent b405fa4 commit a341840

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

fmf/base.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,22 @@ def __call__(
5050
pass
5151

5252

53+
class ApplyRulesCallback(Protocol):
54+
"""
55+
A callback to decide if rules should be processed in Tree.adjust()
56+
57+
Function to be called for every node before ``additional_rules``
58+
are processed. It is called with fmf tree as the parameter.
59+
It should return ``True`` when additional_rules should be processed
60+
or ``False`` when they should be ignored.
61+
"""
62+
63+
def __call__(
64+
self,
65+
node: 'Tree') -> bool:
66+
return True
67+
68+
5369
class Tree:
5470
""" Metadata Tree """
5571

@@ -436,7 +452,8 @@ def update(self, data):
436452

437453
def adjust(self, context, key='adjust', undecided='skip',
438454
case_sensitive=True, decision_callback=None,
439-
additional_rules=None, additional_rules_callback=None):
455+
additional_rules=None,
456+
additional_rules_callback: Optional[ApplyRulesCallback] = None):
440457
"""
441458
Adjust tree data based on provided context and rules
442459

0 commit comments

Comments
 (0)