Skip to content

Commit 545d2e2

Browse files
committed
squash: provide callback protocol
1 parent eb00e17 commit 545d2e2

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

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

@@ -438,7 +454,8 @@ def update(self, data):
438454

439455
def adjust(self, context, key='adjust', undecided='skip',
440456
case_sensitive=True, decision_callback=None,
441-
additional_rules=None, additional_rules_callback=None):
457+
additional_rules=None,
458+
additional_rules_callback: Optional[ApplyRulesCallback] = None):
442459
"""
443460
Adjust tree data based on provided context and rules
444461

0 commit comments

Comments
 (0)