"""
Logic conditions base class
"""
from marshmallow import Schema, fields, validate
from ..base import ConditionBase, ABCMeta
[docs]class LogicCondition(ConditionBase, metaclass=ABCMeta):
"""
Base class for logical conditions
"""
def __init__(self, values):
self.values = values
[docs] def is_satisfied(self, ctx) -> bool:
raise NotImplementedError()
[docs]class LogicConditionSchema(Schema):
"""
Base JSON schema for logical conditions
"""
values = fields.Nested("ConditionSchema", required=True, allow_none=False, many=True,
validate=validate.Length(min=1))