def __normalize_rhs(self, rhs: ValueType) -> ValueType: if is_string(rhs): return _parse_iso_date(rhs) or rhs return self.__normalize_value(rhs)
def _needs_casting(self, value, function_type=None): return is_string(value)
def accepts_rhs(cls, value): return is_datetime(value) or is_string(value)
def _accepts_lhs(self, lhs, function_type): return lhs is None or is_string(lhs)
def accepts_rhs(cls, rhs): return is_string(rhs)
def _match(self, lhs): if is_string(lhs) and lhs.lower() == 'false': return not self.rhs return bool(lhs) is self.rhs