def _check_ver_range(self, version, ver_range):
        lower, upper, lower_inc, upper_inc = ver_range
        if lower is None and upper is None:
            return True
        if lower is not None:
            if lower_inc and version < lower:
                return False
            elif not lower_inc and version <= lower:
                return False
        if upper is not None:
            if upper_inc and version > upper:
                return False
            elif not upper_inc and version >= upper:
                return False
        if version.is_prerelease:
            if (lower is None or not lower.is_prerelease) and (upper is None or not upper.is_prerelease):
                return False
            if (lower is not None and version.release_tuple != lower.release_tuple) and \
               (upper is not None and version.release_tuple != upper.release_tuple):
                return False
        return True