def check_semver_operators(self, context_value: str) -> bool: return_value = False parsing_exception = False target_version: Optional[semver.VersionInfo] = None context_version: Optional[semver.VersionInfo] = None try: target_version = semver.VersionInfo.parse(self.value) except ValueError: LOGGER.error(f"Unable to parse server semver: {self.value}") parsing_exception = True try: context_version = semver.VersionInfo.parse(context_value) except ValueError: LOGGER.error(f"Unable to parse context semver: {context_value}") parsing_exception = True if not parsing_exception: if self.operator == ConstraintOperators.SEMVER_EQ: return_value = context_version == target_version elif self.operator == ConstraintOperators.SEMVER_GT: return_value = context_version > target_version elif self.operator == ConstraintOperators.SEMVER_LT: return_value = context_version < target_version return return_value
def check_date_operators(self, context_value: datetime) -> bool: return_value = False parsing_exception = False try: parsed_date = parse(self.value, ignoretz=True) except ParserError: LOGGER.error(f"Unable to parse date: {self.value}") parsing_exception = True if not parsing_exception: if self.operator == ConstraintOperators.DATE_AFTER: return_value = context_value > parsed_date elif self.operator == ConstraintOperators.DATE_BEFORE: return_value = context_value < parsed_date return return_value