예제 #1
0
    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
예제 #2
0
    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