Source code for datadiligence.evaluators.base

"""
This module contains the base Evaluator class.
"""
from ..rules import Rule


[docs] class Evaluator: """ Base class for evaluators. is_allowed must be implemented. """ name = "base_evaluator" def __init__(self): self.rules = []
[docs] def add_rule(self, rule): """Add a rule to the evaluator.""" if isinstance(rule, Rule): self.rules.append(rule)
[docs] def is_allowed(self, **kwargs): """Check each rule to see if the request is allowed. Args: **kwargs (any): Keyword args to pass to rule Returns: bool: True if the content is allowed, False otherwise. """ for rule in self.rules: if rule.is_ready() and not rule.is_allowed(**kwargs): return False return True
[docs] def filter_allowed(self, **kwargs): """Filter a list of entries based on the rules in this evaluator.""" raise NotImplementedError