19
19
from pinecone .db_control .types import CreateIndexForModelEmbedTypedDict
20
20
from pinecone .db_control .request_factory import PineconeDBControlRequestFactory
21
21
from pinecone .core .openapi .db_control import API_VERSION
22
-
22
+ from pinecone . utils import require_kwargs
23
23
24
24
logger = logging .getLogger (__name__ )
25
25
""" @private """
@@ -30,8 +30,10 @@ def __init__(self, index_api, config):
30
30
self ._index_api = index_api
31
31
self ._config = config
32
32
33
+ @require_kwargs
33
34
async def create (
34
35
self ,
36
+ * ,
35
37
name : str ,
36
38
spec : Union [Dict , ServerlessSpec , PodSpec ],
37
39
dimension : Optional [int ] = None ,
@@ -56,8 +58,10 @@ async def create(
56
58
return IndexModel (resp )
57
59
return await self .__poll_describe_index_until_ready (name , timeout )
58
60
61
+ @require_kwargs
59
62
async def create_for_model (
60
63
self ,
64
+ * ,
61
65
name : str ,
62
66
cloud : Union [CloudProvider , str ],
63
67
region : Union [AwsRegion , GcpRegion , AzureRegion , str ],
@@ -80,8 +84,10 @@ async def create_for_model(
80
84
return IndexModel (resp )
81
85
return await self .__poll_describe_index_until_ready (name , timeout )
82
86
87
+ @require_kwargs
83
88
async def create_from_backup (
84
89
self ,
90
+ * ,
85
91
name : str ,
86
92
backup_id : str ,
87
93
deletion_protection : Optional [Union [DeletionProtection , str ]] = DeletionProtection .DISABLED ,
@@ -134,7 +140,8 @@ async def is_ready() -> bool:
134
140
135
141
return description
136
142
137
- async def delete (self , name : str , timeout : Optional [int ] = None ):
143
+ @require_kwargs
144
+ async def delete (self , * , name : str , timeout : Optional [int ] = None ):
138
145
await self ._index_api .delete_index (name )
139
146
140
147
if timeout == - 1 :
@@ -156,23 +163,28 @@ async def delete(self, name: str, timeout: Optional[int] = None):
156
163
)
157
164
)
158
165
166
+ @require_kwargs
159
167
async def list (self ) -> IndexList :
160
168
response = await self ._index_api .list_indexes ()
161
169
return IndexList (response )
162
170
163
- async def describe (self , name : str ) -> IndexModel :
171
+ @require_kwargs
172
+ async def describe (self , * , name : str ) -> IndexModel :
164
173
description = await self ._index_api .describe_index (name )
165
174
return IndexModel (description )
166
175
167
- async def has (self , name : str ) -> bool :
176
+ @require_kwargs
177
+ async def has (self , * , name : str ) -> bool :
168
178
available_indexes = await self .list ()
169
179
if name in available_indexes .names ():
170
180
return True
171
181
else :
172
182
return False
173
183
184
+ @require_kwargs
174
185
async def configure (
175
186
self ,
187
+ * ,
176
188
name : str ,
177
189
replicas : Optional [int ] = None ,
178
190
pod_type : Optional [Union [PodType , str ]] = None ,
0 commit comments