Files
qdrant-client/qdrant_client/async_client_base.py
betacatslingandGeorge Panchuk 70a79f1482 fix(local): honor str and non-list Sequence selectors in local mode (#1434)
* fix(local): honor str and non-list Sequence selectors in local mode

In local mode, with_vectors="name" or a tuple like ("name",) silently
returned all vectors instead of the named subset, and with_payload="key"
or ("key",) returned the whole payload instead of the filtered keys.
Both parameters are typed as bool | Sequence[str], so a bare string or a
tuple is a valid selector, but only list instances were recognized.

Normalize a bare string to a single-element list and match any Sequence,
so local mode honors the documented contract instead of silently
returning everything.

Signed-off-by: betacatsling <113584199+betacatsling@users.noreply.github.com>

* fix: update with_payload and with_vectors types

* fix: fix local with vectors test

---------

Signed-off-by: betacatsling <113584199+betacatsling@users.noreply.github.com>
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2026-09-15 01:43:00 +07:00

408 lines
13 KiB
Python

# ****** WARNING: THIS FILE IS AUTOGENERATED ******
#
# This file is autogenerated. Do not edit it manually.
# To regenerate this file, use
#
# ```
# bash -x tools/generate_async_client.sh
# ```
#
# ****** WARNING: THIS FILE IS AUTOGENERATED ******
from typing import Any, Iterable, Mapping, Sequence
from qdrant_client.conversions import common_types as types
class AsyncQdrantBase:
def __init__(self, **kwargs: Any):
pass
async def search_matrix_offsets(
self,
collection_name: str,
query_filter: types.Filter | None = None,
limit: int = 3,
sample: int = 10,
using: str | None = None,
**kwargs: Any,
) -> types.SearchMatrixOffsetsResponse:
raise NotImplementedError()
async def search_matrix_pairs(
self,
collection_name: str,
query_filter: types.Filter | None = None,
limit: int = 3,
sample: int = 10,
using: str | None = None,
**kwargs: Any,
) -> types.SearchMatrixPairsResponse:
raise NotImplementedError()
async def query_batch_points(
self, collection_name: str, requests: Sequence[types.QueryRequest], **kwargs: Any
) -> list[types.QueryResponse]:
raise NotImplementedError()
async def query_points(
self,
collection_name: str,
query: types.PointId
| list[float]
| list[list[float]]
| types.SparseVector
| types.Query
| types.NumpyArray
| types.Document
| types.Image
| types.InferenceObject
| None = None,
using: str | None = None,
prefetch: types.Prefetch | list[types.Prefetch] | None = None,
query_filter: types.Filter | None = None,
search_params: types.SearchParams | None = None,
limit: int = 10,
offset: int | None = None,
with_payload: types.WithPayloadInterface = True,
with_vectors: types.WithVector = False,
score_threshold: float | None = None,
lookup_from: types.LookupLocation | None = None,
**kwargs: Any,
) -> types.QueryResponse:
raise NotImplementedError()
async def query_points_groups(
self,
collection_name: str,
group_by: str,
query: types.PointId
| list[float]
| list[list[float]]
| types.SparseVector
| types.Query
| types.NumpyArray
| types.Document
| types.Image
| types.InferenceObject
| None = None,
using: str | None = None,
prefetch: types.Prefetch | list[types.Prefetch] | None = None,
query_filter: types.Filter | None = None,
search_params: types.SearchParams | None = None,
limit: int = 10,
group_size: int = 3,
with_payload: types.WithPayloadInterface = True,
with_vectors: types.WithVector = False,
score_threshold: float | None = None,
with_lookup: types.WithLookupInterface | None = None,
lookup_from: types.LookupLocation | None = None,
**kwargs: Any,
) -> types.GroupsResult:
raise NotImplementedError()
async def scroll(
self,
collection_name: str,
scroll_filter: types.Filter | None = None,
limit: int = 10,
order_by: types.OrderBy | None = None,
offset: types.PointId | None = None,
with_payload: types.WithPayloadInterface = True,
with_vectors: types.WithVector = False,
**kwargs: Any,
) -> tuple[list[types.Record], types.PointId | None]:
raise NotImplementedError()
async def count(
self,
collection_name: str,
count_filter: types.Filter | None = None,
exact: bool = True,
**kwargs: Any,
) -> types.CountResult:
raise NotImplementedError()
async def facet(
self,
collection_name: str,
key: str,
facet_filter: types.Filter | None = None,
limit: int = 10,
exact: bool = False,
**kwargs: Any,
) -> types.FacetResponse:
raise NotImplementedError()
async def upsert(
self, collection_name: str, points: types.Points, **kwargs: Any
) -> types.UpdateResult:
raise NotImplementedError()
async def update_vectors(
self, collection_name: str, points: Sequence[types.PointVectors], **kwargs: Any
) -> types.UpdateResult:
raise NotImplementedError()
async def delete_vectors(
self,
collection_name: str,
vectors: Sequence[str],
points: types.PointsSelector,
**kwargs: Any,
) -> types.UpdateResult:
raise NotImplementedError()
async def retrieve(
self,
collection_name: str,
ids: Sequence[types.PointId],
with_payload: types.WithPayloadInterface = True,
with_vectors: types.WithVector = False,
**kwargs: Any,
) -> list[types.Record]:
raise NotImplementedError()
async def delete(
self, collection_name: str, points_selector: types.PointsSelector, **kwargs: Any
) -> types.UpdateResult:
raise NotImplementedError()
async def set_payload(
self,
collection_name: str,
payload: types.Payload,
points: types.PointsSelector,
key: str | None = None,
**kwargs: Any,
) -> types.UpdateResult:
raise NotImplementedError()
async def overwrite_payload(
self,
collection_name: str,
payload: types.Payload,
points: types.PointsSelector,
**kwargs: Any,
) -> types.UpdateResult:
raise NotImplementedError()
async def delete_payload(
self,
collection_name: str,
keys: Sequence[str],
points: types.PointsSelector,
**kwargs: Any,
) -> types.UpdateResult:
raise NotImplementedError()
async def clear_payload(
self, collection_name: str, points_selector: types.PointsSelector, **kwargs: Any
) -> types.UpdateResult:
raise NotImplementedError()
async def batch_update_points(
self,
collection_name: str,
update_operations: Sequence[types.UpdateOperation],
**kwargs: Any,
) -> list[types.UpdateResult]:
raise NotImplementedError()
async def update_collection_aliases(
self, change_aliases_operations: Sequence[types.AliasOperations], **kwargs: Any
) -> bool:
raise NotImplementedError()
async def get_collection_aliases(
self, collection_name: str, **kwargs: Any
) -> types.CollectionsAliasesResponse:
raise NotImplementedError()
async def get_aliases(self, **kwargs: Any) -> types.CollectionsAliasesResponse:
raise NotImplementedError()
async def get_collections(self, **kwargs: Any) -> types.CollectionsResponse:
raise NotImplementedError()
async def get_collection(self, collection_name: str, **kwargs: Any) -> types.CollectionInfo:
raise NotImplementedError()
async def collection_exists(self, collection_name: str, **kwargs: Any) -> bool:
raise NotImplementedError()
async def update_collection(self, collection_name: str, **kwargs: Any) -> bool:
raise NotImplementedError()
async def delete_collection(self, collection_name: str, **kwargs: Any) -> bool:
raise NotImplementedError()
async def create_collection(
self,
collection_name: str,
vectors_config: types.VectorParams | Mapping[str, types.VectorParams],
**kwargs: Any,
) -> bool:
raise NotImplementedError()
async def recreate_collection(
self,
collection_name: str,
vectors_config: types.VectorParams | Mapping[str, types.VectorParams],
**kwargs: Any,
) -> bool:
raise NotImplementedError()
def upload_points(
self, collection_name: str, points: Iterable[types.PointStruct], **kwargs: Any
) -> None:
raise NotImplementedError()
def upload_collection(
self,
collection_name: str,
vectors: dict[str, types.NumpyArray] | types.NumpyArray | Iterable[types.VectorStruct],
payload: Iterable[dict[Any, Any]] | None = None,
ids: Iterable[types.PointId] | None = None,
**kwargs: Any,
) -> None:
raise NotImplementedError()
async def create_payload_index(
self,
collection_name: str,
field_name: str,
field_schema: types.PayloadSchemaType | None = None,
field_type: types.PayloadSchemaType | None = None,
**kwargs: Any,
) -> types.UpdateResult:
raise NotImplementedError()
async def delete_payload_index(
self, collection_name: str, field_name: str, **kwargs: Any
) -> types.UpdateResult:
raise NotImplementedError()
async def create_vector_name(
self,
collection_name: str,
vector_name: str,
vector_name_config: types.VectorNameConfig,
**kwargs: Any,
) -> types.UpdateResult:
raise NotImplementedError()
async def delete_vector_name(
self, collection_name: str, vector_name: str, **kwargs: Any
) -> types.UpdateResult:
raise NotImplementedError()
async def list_snapshots(
self, collection_name: str, **kwargs: Any
) -> list[types.SnapshotDescription]:
raise NotImplementedError()
async def create_snapshot(
self, collection_name: str, **kwargs: Any
) -> types.SnapshotDescription | None:
raise NotImplementedError()
async def delete_snapshot(
self, collection_name: str, snapshot_name: str, **kwargs: Any
) -> bool | None:
raise NotImplementedError()
async def list_full_snapshots(self, **kwargs: Any) -> list[types.SnapshotDescription]:
raise NotImplementedError()
async def create_full_snapshot(self, **kwargs: Any) -> types.SnapshotDescription | None:
raise NotImplementedError()
async def delete_full_snapshot(self, snapshot_name: str, **kwargs: Any) -> bool | None:
raise NotImplementedError()
async def recover_snapshot(
self, collection_name: str, location: str, **kwargs: Any
) -> bool | None:
raise NotImplementedError()
async def list_shard_snapshots(
self, collection_name: str, shard_id: int, **kwargs: Any
) -> list[types.SnapshotDescription]:
raise NotImplementedError()
async def create_shard_snapshot(
self, collection_name: str, shard_id: int, **kwargs: Any
) -> types.SnapshotDescription | None:
raise NotImplementedError()
async def delete_shard_snapshot(
self, collection_name: str, shard_id: int, snapshot_name: str, **kwargs: Any
) -> bool | None:
raise NotImplementedError()
async def recover_shard_snapshot(
self, collection_name: str, shard_id: int, location: str, **kwargs: Any
) -> bool | None:
raise NotImplementedError()
async def close(self, **kwargs: Any) -> None:
pass
def migrate(
self,
dest_client: "AsyncQdrantBase",
collection_names: list[str] | None = None,
batch_size: int = 100,
recreate_on_collision: bool = False,
) -> None:
raise NotImplementedError()
async def create_shard_key(
self,
collection_name: str,
shard_key: types.ShardKey,
shards_number: int | None = None,
replication_factor: int | None = None,
placement: list[int] | None = None,
**kwargs: Any,
) -> bool:
raise NotImplementedError()
async def delete_shard_key(
self, collection_name: str, shard_key: types.ShardKey, **kwargs: Any
) -> bool:
raise NotImplementedError()
async def info(self) -> types.VersionInfo:
raise NotImplementedError()
async def cluster_collection_update(
self, collection_name: str, cluster_operation: types.ClusterOperations, **kwargs: Any
) -> bool:
raise NotImplementedError()
async def collection_cluster_info(self, collection_name: str) -> types.CollectionClusterInfo:
raise NotImplementedError()
async def cluster_status(self) -> types.ClusterStatus:
raise NotImplementedError()
async def recover_current_peer(self) -> bool:
raise NotImplementedError()
async def remove_peer(self, peer_id: int, **kwargs: Any) -> bool:
raise NotImplementedError()
async def get_optimizations(
self, collection_name: str, **kwargs: Any
) -> types.OptimizationsResponse:
raise NotImplementedError()
async def list_shard_keys(
self, collection_name: str, **kwargs: Any
) -> types.ShardKeysResponse:
raise NotImplementedError()
async def cluster_telemetry(self, **kwargs: Any) -> types.DistributedTelemetryData:
raise NotImplementedError()