-
Notifications
You must be signed in to change notification settings - Fork 133
Expand file tree
/
Copy pathnamespace_request_factory.py
More file actions
66 lines (52 loc) · 2.49 KB
/
Copy pathnamespace_request_factory.py
File metadata and controls
66 lines (52 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from typing import Optional, TypedDict, Any, cast, Dict, Union
from pinecone.utils import parse_non_empty_args
from pinecone.core.openapi.db_data.model.create_namespace_request import CreateNamespaceRequest
from pinecone.core.openapi.db_data.model.create_namespace_request_schema import (
CreateNamespaceRequestSchema,
)
class DescribeNamespaceArgs(TypedDict, total=False):
namespace: str
class DeleteNamespaceArgs(TypedDict, total=False):
namespace: str
class CreateNamespaceArgs(TypedDict, total=False):
create_namespace_request: CreateNamespaceRequest
class NamespaceRequestFactory:
@staticmethod
def describe_namespace_args(namespace: str, **kwargs) -> DescribeNamespaceArgs:
if not isinstance(namespace, str):
raise ValueError("namespace must be string")
base_args = {"namespace": namespace}
return cast(DescribeNamespaceArgs, {**base_args, **kwargs})
@staticmethod
def delete_namespace_args(namespace: str, **kwargs) -> DeleteNamespaceArgs:
if not isinstance(namespace, str):
raise ValueError("namespace must be string")
base_args = {"namespace": namespace}
return cast(DeleteNamespaceArgs, {**base_args, **kwargs})
@staticmethod
def create_namespace_args(
name: str,
schema: Optional[Union[CreateNamespaceRequestSchema, Dict[str, Any]]] = None,
**kwargs,
) -> CreateNamespaceArgs:
if not isinstance(name, str):
raise ValueError("name must be string")
if name.strip() == "":
raise ValueError("name must not be empty")
request_kwargs: Dict[str, Any] = {"name": name}
if schema is not None:
if isinstance(schema, dict):
schema_obj = CreateNamespaceRequestSchema(**schema)
request_kwargs["schema"] = schema_obj
else:
# schema is already CreateNamespaceRequestSchema
request_kwargs["schema"] = cast(CreateNamespaceRequestSchema, schema)
create_namespace_request = CreateNamespaceRequest(**request_kwargs)
base_args = {"create_namespace_request": create_namespace_request}
return cast(CreateNamespaceArgs, {**base_args, **kwargs})
@staticmethod
def list_namespaces_args(
limit: Optional[int] = None, pagination_token: Optional[str] = None, **kwargs
) -> dict[str, Any]:
base_args = parse_non_empty_args([("limit", limit), ("pagination_token", pagination_token)])
return {**base_args, **kwargs}