Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions test/collection/test_queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

import pytest

from weaviate.collections.collection import CollectionAsync
from weaviate.collections.query import _QueryCollectionAsync
from weaviate.connect import ConnectionV4
from weaviate.exceptions import WeaviateInvalidInputError
from weaviate.util import _ServerVersion

# TODO: re-enable tests once string syntax is re-enabled in the API

Expand Down Expand Up @@ -130,3 +132,14 @@ async def test_bad_query_inputs(connection: ConnectionV4) -> None:

# near image
await _test_query(lambda: query.near_image(42))


def test_async_collection_query_uses_current_connection_version(connection: ConnectionV4) -> None:
collection = CollectionAsync(connection, "dummy", True)

connection._weaviate_version = _ServerVersion.from_string("1.32.5")

request = collection.query._query.get()

assert request.uses_125_api
assert request.uses_127_api
10 changes: 6 additions & 4 deletions weaviate/collections/grpc/query.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,17 @@ def __init__(
tenant: Optional[str],
consistency_level: Optional[ConsistencyLevel],
validate_arguments: bool,
uses_125_api: bool,
uses_127_api: bool,
):
super().__init__(weaviate_version, consistency_level, validate_arguments)
self._name: str = name
self._tenant = tenant
self._validate_arguments = validate_arguments
self.__uses_125_api = uses_125_api
self.__uses_127_api = uses_127_api
self._use_weaviate_version(weaviate_version)

def _use_weaviate_version(self, weaviate_version: _ServerVersion) -> None:
self._weaviate_version = weaviate_version
self.__uses_125_api = weaviate_version.is_at_least(1, 25, 0)
self.__uses_127_api = weaviate_version.is_at_least(1, 27, 0)

def __parse_near_options(
self,
Expand Down
15 changes: 10 additions & 5 deletions weaviate/collections/queries/base_executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,18 +86,23 @@ def __init__(
self._references = references
self._validate_arguments = validate_arguments

self.__uses_125_api = connection._weaviate_version.is_at_least(1, 25, 0)
self.__uses_127_api = connection._weaviate_version.is_at_least(1, 27, 0)
self._query = _QueryGRPC(
self.__query = _QueryGRPC(
connection._weaviate_version,
self._name,
self.__tenant,
self.__consistency_level,
validate_arguments=self._validate_arguments,
uses_125_api=self.__uses_125_api,
uses_127_api=self.__uses_127_api,
)

@property
def _query(self) -> _QueryGRPC:
self.__query._use_weaviate_version(self._connection._weaviate_version)
return self.__query

@property
def __uses_127_api(self) -> bool:
return self._connection._weaviate_version.is_at_least(1, 27, 0)

def __retrieve_timestamp(
self,
timestamp: int,
Expand Down
Loading