rm.predicate의 소스 코드

import enum

from .domain import (
    RmValue,
    RmDomain,
)
from .record import (
    RmRecord,
)

__all__ = (
    'RmComparator',
    'RmPredicate',
)


[문서] class RmComparator(enum.Enum): """ predicate의 comparator를 나타내는 클래스입니다. """ EQ = enum.auto() """ record value와 predicate value가 같은지 비교. """ NE = enum.auto() """ record value와 predicate value가 다른지 비교. """ LT = enum.auto() """ record value가 predicate value보다 작은지 비교. """ LE = enum.auto() """ record value가 predicate value보다 작거나 같은지 비교. """ GT = enum.auto() """ record value가 predicate value보다 큰지 비교. """ GE = enum.auto() """ record value가 predicate value보다 크거나 같은지 비교. """
[문서] class RmPredicate: """ predicate을 나타내는 클래스입니다. TODO: 추가 설명 Attributes: offset (int): record data에서 value가 위치한 오프셋. domain (RmDomain): value의 domain. comparator (RmComparator): predicate의 comparator. value (RmValue): predicate의 value. """
[문서] def __init__(self, offset: int, domain: RmDomain, comparator: RmComparator, value: RmValue, ) -> None: """ predicate을 초기화합니다. Args: offset (int): record data에서 value가 위치한 오프셋. domain (RmDomain): value의 domain. comparator (RmComparator): predicate의 comparator. value (RmValue): predicate의 value. Raises: RmInvalidDomainValueError: `value` 가 유효하지 않은 경우. """ domain.validate(value) self.offset = offset self.domain = domain self.comparator = comparator self.value = value
[문서] def evaluate(self, record: RmRecord) -> bool: """ predicate을 대상 record에 대해 평가합니다. TODO: 추가 설명 Args: record (RmRecord): 대상 record. Returns: bool: predicate 평가 결과. """ raise NotImplementedError