Skip to content

Commit

Permalink
More mypy fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
jhamon committed Dec 16, 2024
1 parent c58cba0 commit f7413f8
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 21 deletions.
12 changes: 9 additions & 3 deletions pinecone/data/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,13 @@
from .interfaces import IndexInterface
from .request_factory import IndexRequestFactory
from .features.bulk_import import ImportFeatureMixin
from .types import SparseVectorTypedDict, VectorTypedDict, VectorMetadataTypedDict, VectorTuple
from .types import (
SparseVectorTypedDict,
VectorTypedDict,
VectorMetadataTypedDict,
VectorTuple,
FilterTypedDict,
)
from ..utils import (
setup_openapi_client,
parse_non_empty_args,
Expand Down Expand Up @@ -249,7 +255,7 @@ def query(
vector: Optional[List[float]] = None,
id: Optional[str] = None,
namespace: Optional[str] = None,
filter: Optional[Dict[str, Union[str, float, int, bool, List, dict]]] = None,
filter: Optional[FilterTypedDict] = None,
include_values: Optional[bool] = None,
include_metadata: Optional[bool] = None,
sparse_vector: Optional[Union[SparseValues, SparseVectorTypedDict]] = None,
Expand Down Expand Up @@ -280,7 +286,7 @@ def _query(
vector: Optional[List[float]] = None,
id: Optional[str] = None,
namespace: Optional[str] = None,
filter: Optional[Dict[str, Union[str, float, int, bool, List, dict]]] = None,
filter: Optional[FilterTypedDict] = None,
include_values: Optional[bool] = None,
include_metadata: Optional[bool] = None,
sparse_vector: Optional[Union[SparseValues, SparseVectorTypedDict]] = None,
Expand Down
4 changes: 2 additions & 2 deletions pinecone/data/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
)
from .query_results_aggregator import QueryNamespacesResults
from multiprocessing.pool import ApplyResult
from .types import VectorTypedDict, SparseVectorTypedDict, VectorMetadataTypedDict
from .types import VectorTypedDict, SparseVectorTypedDict, VectorMetadataTypedDict, FilterTypedDict


class IndexInterface(ABC):
Expand Down Expand Up @@ -171,7 +171,7 @@ def query(
vector: Optional[List[float]] = None,
id: Optional[str] = None,
namespace: Optional[str] = None,
filter: Optional[Dict[str, Union[str, float, int, bool, List, dict]]] = None,
filter: Optional[FilterTypedDict] = None,
include_values: Optional[bool] = None,
include_metadata: Optional[bool] = None,
sparse_vector: Optional[
Expand Down
10 changes: 8 additions & 2 deletions pinecone/data/request_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,13 @@
from ..utils import parse_non_empty_args
from .vector_factory import VectorFactory
from pinecone.openapi_support import OPENAPI_ENDPOINT_PARAMS
from .types import VectorTypedDict, SparseVectorTypedDict, VectorMetadataTypedDict, VectorTuple
from .types import (
VectorTypedDict,
SparseVectorTypedDict,
VectorMetadataTypedDict,
VectorTuple,
FilterTypedDict,
)
from .dataclasses import Vector, SparseValues

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -50,7 +56,7 @@ def query_request(
vector: Optional[List[float]] = None,
id: Optional[str] = None,
namespace: Optional[str] = None,
filter: Optional[Dict[str, Union[str, float, int, bool, List, dict]]] = None,
filter: Optional[FilterTypedDict] = None,
include_values: Optional[bool] = None,
include_metadata: Optional[bool] = None,
sparse_vector: Optional[Union[SparseValues, SparseVectorTypedDict]] = None,
Expand Down
1 change: 1 addition & 0 deletions pinecone/data/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
from .vector_typed_dict import VectorTypedDict
from .vector_metadata_dict import VectorMetadataTypedDict
from .vector_tuple import VectorTuple
from .query_filter import FilterTypedDict
24 changes: 14 additions & 10 deletions pinecone/grpc/index_grpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,13 @@
from pinecone.core.grpc.protos.db_data_2025_01_pb2_grpc import VectorServiceStub
from .base import GRPCIndexBase
from .future import PineconeGrpcFuture
from ..data.types import SparseVectorTypedDict
from ..data.types import (
SparseVectorTypedDict,
VectorTypedDict,
VectorTuple,
FilterTypedDict,
VectorMetadataTypedDict,
)


__all__ = ["GRPCIndex", "GRPCVector", "GRPCQueryVector", "GRPCSparseValues"]
Expand All @@ -59,7 +65,7 @@ def stub_class(self):

def upsert(
self,
vectors: Union[List[Vector], List[GRPCVector], List[tuple], List[dict]],
vectors: Union[List[Vector], List[GRPCVector], List[VectorTuple], List[VectorTypedDict]],
async_req: bool = False,
namespace: Optional[str] = None,
batch_size: Optional[int] = None,
Expand Down Expand Up @@ -223,7 +229,7 @@ def delete(
ids: Optional[List[str]] = None,
delete_all: Optional[bool] = None,
namespace: Optional[str] = None,
filter: Optional[Dict[str, Union[str, float, int, bool, List, dict]]] = None,
filter: Optional[FilterTypedDict] = None,
async_req: bool = False,
**kwargs,
) -> Union[DeleteResponse, PineconeGrpcFuture]:
Expand All @@ -249,7 +255,7 @@ def delete(
Default is False.
namespace (str): The namespace to delete vectors from [optional]
If not specified, the default namespace is used.
filter (Dict[str, Union[str, float, int, bool, List, dict]]):
filter (FilterTypedDict):
If specified, the metadata filter here will be used to select the vectors to delete.
This is mutually exclusive with specifying ids to delete in the ids param or using delete_all=True.
See https://www.pinecone.io/docs/metadata-filtering/.. [optional]
Expand Down Expand Up @@ -322,7 +328,7 @@ def query(
id: Optional[str] = None,
namespace: Optional[str] = None,
top_k: Optional[int] = None,
filter: Optional[Dict[str, Union[str, float, int, bool, List, dict]]] = None,
filter: Optional[FilterTypedDict] = None,
include_values: Optional[bool] = None,
include_metadata: Optional[bool] = None,
sparse_vector: Optional[
Expand Down Expand Up @@ -410,7 +416,7 @@ def query_namespaces(
namespaces: List[str],
metric: Literal["cosine", "euclidean", "dotproduct"],
top_k: Optional[int] = None,
filter: Optional[Dict[str, Union[str, float, int, bool, List, dict]]] = None,
filter: Optional[FilterTypedDict] = None,
include_values: Optional[bool] = None,
include_metadata: Optional[bool] = None,
sparse_vector: Optional[Union[GRPCSparseValues, SparseVectorTypedDict]] = None,
Expand Down Expand Up @@ -453,9 +459,7 @@ def update(
id: str,
async_req: bool = False,
values: Optional[List[float]] = None,
set_metadata: Optional[
Dict[str, Union[str, float, int, bool, List[int], List[float], List[str]]]
] = None,
set_metadata: Optional[VectorMetadataTypedDict] = None,
namespace: Optional[str] = None,
sparse_values: Optional[Union[GRPCSparseValues, SparseVectorTypedDict]] = None,
**kwargs,
Expand Down Expand Up @@ -603,7 +607,7 @@ def list(self, **kwargs):
done = True

def describe_index_stats(
self, filter: Optional[Dict[str, Union[str, float, int, bool, List, dict]]] = None, **kwargs
self, filter: Optional[FilterTypedDict] = None, **kwargs
) -> DescribeIndexStatsResponse:
"""
The DescribeIndexStats operation returns statistics about the index's contents.
Expand Down
9 changes: 7 additions & 2 deletions pinecone/grpc/sparse_values_factory.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from collections.abc import Mapping
from typing import Union, Dict
from typing import Union, Optional

from ..utils import convert_to_list

from ..data import SparseValuesTypeError, SparseValuesMissingKeysError
from ..data.types import SparseVectorTypedDict

from pinecone.core.grpc.protos.db_data_2025_01_pb2 import SparseValues as GRPCSparseValues
from pinecone.core.openapi.db_data.models import SparseValues as OpenApiSparseValues
Expand All @@ -12,7 +13,11 @@

class SparseValuesFactory:
@staticmethod
def build(input: Union[Dict, GRPCSparseValues, SparseValues]) -> GRPCSparseValues:
def build(
input: Optional[
Union[SparseVectorTypedDict, SparseValues, GRPCSparseValues, OpenApiSparseValues]
],
) -> Optional[GRPCSparseValues]:
if input is None:
return input
if isinstance(input, GRPCSparseValues):
Expand Down
5 changes: 3 additions & 2 deletions pinecone/grpc/vector_factory_grpc.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import numbers

from collections.abc import Iterable, Mapping
from typing import Union, Tuple, Dict
from typing import Union

from google.protobuf.struct_pb2 import Struct

Expand All @@ -14,6 +14,7 @@
VectorTupleLengthError,
MetadataDictionaryExpectedError,
)
from ..data.types import VectorTuple, VectorTypedDict
from .sparse_values_factory import SparseValuesFactory

from pinecone.core.grpc.protos.db_data_2025_01_pb2 import (
Expand All @@ -31,7 +32,7 @@ class VectorFactoryGRPC:
"""This class is responsible for building GRPCVector objects from various input types."""

@staticmethod
def build(item: Union[Vector, GRPCVector, Vector, Tuple, Dict]) -> GRPCVector:
def build(item: Union[Vector, GRPCVector, Vector, VectorTuple, VectorTypedDict]) -> GRPCVector:
if isinstance(item, GRPCVector):
return item
elif isinstance(item, Vector) or isinstance(item, OpenApiVector):
Expand Down

0 comments on commit f7413f8

Please sign in to comment.