Skip to content

Commit 154f95f

Browse files
committed
Add @require_kwargs decorator
1 parent 6efd333 commit 154f95f

File tree

6 files changed

+47
-20
lines changed

6 files changed

+47
-20
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
import logging
2-
from typing import TYPE_CHECKING
3-
42

53
from pinecone.db_control.models import CollectionList
64

75
from pinecone.db_control.request_factory import PineconeDBControlRequestFactory
6+
from pinecone.utils import require_kwargs
87

98
logger = logging.getLogger(__name__)
109
""" @private """
1110

12-
if TYPE_CHECKING:
13-
pass
14-
1511

1612
class CollectionResourceAsyncio:
1713
def __init__(self, index_api):
1814
self.index_api = index_api
1915

20-
async def create(self, name: str, source: str):
16+
@require_kwargs
17+
async def create(self, *, name: str, source: str):
2118
req = PineconeDBControlRequestFactory.create_collection_request(name=name, source=source)
2219
await self.index_api.create_collection(create_collection_request=req)
2320

21+
@require_kwargs
2422
async def list(self) -> CollectionList:
2523
response = await self.index_api.list_collections()
2624
return CollectionList(response)
2725

28-
async def delete(self, name: str):
26+
@require_kwargs
27+
async def delete(self, *, name: str):
2928
await self.index_api.delete_collection(name)
3029

31-
async def describe(self, name: str):
30+
@require_kwargs
31+
async def describe(self, *, name: str):
3232
return await self.index_api.describe_collection(name).to_dict()

pinecone/db_control/resources/asyncio/index.py

+16-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from pinecone.db_control.types import CreateIndexForModelEmbedTypedDict
2020
from pinecone.db_control.request_factory import PineconeDBControlRequestFactory
2121
from pinecone.core.openapi.db_control import API_VERSION
22-
22+
from pinecone.utils import require_kwargs
2323

2424
logger = logging.getLogger(__name__)
2525
""" @private """
@@ -30,8 +30,10 @@ def __init__(self, index_api, config):
3030
self._index_api = index_api
3131
self._config = config
3232

33+
@require_kwargs
3334
async def create(
3435
self,
36+
*,
3537
name: str,
3638
spec: Union[Dict, ServerlessSpec, PodSpec],
3739
dimension: Optional[int] = None,
@@ -56,8 +58,10 @@ async def create(
5658
return IndexModel(resp)
5759
return await self.__poll_describe_index_until_ready(name, timeout)
5860

61+
@require_kwargs
5962
async def create_for_model(
6063
self,
64+
*,
6165
name: str,
6266
cloud: Union[CloudProvider, str],
6367
region: Union[AwsRegion, GcpRegion, AzureRegion, str],
@@ -80,8 +84,10 @@ async def create_for_model(
8084
return IndexModel(resp)
8185
return await self.__poll_describe_index_until_ready(name, timeout)
8286

87+
@require_kwargs
8388
async def create_from_backup(
8489
self,
90+
*,
8591
name: str,
8692
backup_id: str,
8793
deletion_protection: Optional[Union[DeletionProtection, str]] = DeletionProtection.DISABLED,
@@ -134,7 +140,8 @@ async def is_ready() -> bool:
134140

135141
return description
136142

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):
138145
await self._index_api.delete_index(name)
139146

140147
if timeout == -1:
@@ -156,23 +163,28 @@ async def delete(self, name: str, timeout: Optional[int] = None):
156163
)
157164
)
158165

166+
@require_kwargs
159167
async def list(self) -> IndexList:
160168
response = await self._index_api.list_indexes()
161169
return IndexList(response)
162170

163-
async def describe(self, name: str) -> IndexModel:
171+
@require_kwargs
172+
async def describe(self, *, name: str) -> IndexModel:
164173
description = await self._index_api.describe_index(name)
165174
return IndexModel(description)
166175

167-
async def has(self, name: str) -> bool:
176+
@require_kwargs
177+
async def has(self, *, name: str) -> bool:
168178
available_indexes = await self.list()
169179
if name in available_indexes.names():
170180
return True
171181
else:
172182
return False
173183

184+
@require_kwargs
174185
async def configure(
175186
self,
187+
*,
176188
name: str,
177189
replicas: Optional[int] = None,
178190
pod_type: Optional[Union[PodType, str]] = None,

pinecone/db_control/resources/sync/collection.py

+8-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from pinecone.db_control.models import CollectionList
44
from pinecone.db_control.request_factory import PineconeDBControlRequestFactory
5+
from pinecone.utils import require_kwargs
56

67
logger = logging.getLogger(__name__)
78
""" @private """
@@ -12,16 +13,20 @@ def __init__(self, index_api):
1213
self.index_api = index_api
1314
""" @private """
1415

15-
def create(self, name: str, source: str) -> None:
16+
@require_kwargs
17+
def create(self, *, name: str, source: str) -> None:
1618
req = PineconeDBControlRequestFactory.create_collection_request(name=name, source=source)
1719
self.index_api.create_collection(create_collection_request=req)
1820

21+
@require_kwargs
1922
def list(self) -> CollectionList:
2023
response = self.index_api.list_collections()
2124
return CollectionList(response)
2225

23-
def delete(self, name: str) -> None:
26+
@require_kwargs
27+
def delete(self, *, name: str) -> None:
2428
self.index_api.delete_collection(name)
2529

26-
def describe(self, name: str):
30+
@require_kwargs
31+
def describe(self, *, name: str):
2732
return self.index_api.describe_collection(name).to_dict()

pinecone/db_control/resources/sync/index.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ def __init__(self, index_api, config):
3636
self._index_host_store = IndexHostStore()
3737
""" @private """
3838

39+
@require_kwargs
3940
def create(
4041
self,
42+
*,
4143
name: str,
4244
spec: Union[Dict, ServerlessSpec, PodSpec],
4345
dimension: Optional[int] = None,
@@ -62,8 +64,10 @@ def create(
6264
return IndexModel(resp)
6365
return self.__poll_describe_index_until_ready(name, timeout)
6466

67+
@require_kwargs
6568
def create_for_model(
6669
self,
70+
*,
6771
name: str,
6872
cloud: Union[CloudProvider, str],
6973
region: Union[AwsRegion, GcpRegion, AzureRegion, str],
@@ -159,7 +163,8 @@ def is_ready() -> bool:
159163

160164
return description
161165

162-
def delete(self, name: str, timeout: Optional[int] = None):
166+
@require_kwargs
167+
def delete(self, *, name: str, timeout: Optional[int] = None):
163168
self._index_api.delete_index(name)
164169
self._index_host_store.delete_host(self._config, name)
165170

@@ -182,26 +187,31 @@ def delete(self, name: str, timeout: Optional[int] = None):
182187
)
183188
)
184189

190+
@require_kwargs
185191
def list(self) -> IndexList:
186192
response = self._index_api.list_indexes()
187193
return IndexList(response)
188194

189-
def describe(self, name: str) -> IndexModel:
195+
@require_kwargs
196+
def describe(self, *, name: str) -> IndexModel:
190197
api_instance = self._index_api
191198
description = api_instance.describe_index(name)
192199
host = description.host
193200
self._index_host_store.set_host(self._config, name, host)
194201

195202
return IndexModel(description)
196203

197-
def has(self, name: str) -> bool:
204+
@require_kwargs
205+
def has(self, *, name: str) -> bool:
198206
if name in self.list().names():
199207
return True
200208
else:
201209
return False
202210

211+
@require_kwargs
203212
def configure(
204213
self,
214+
*,
205215
name: str,
206216
replicas: Optional[int] = None,
207217
pod_type: Optional[Union[PodType, str]] = None,

pinecone/legacy_pinecone_interface.py

+1
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ def create_index_from_backup(
334334
@abstractmethod
335335
def create_index_for_model(
336336
self,
337+
*,
337338
name: str,
338339
cloud: Union["CloudProvider", str],
339340
region: Union["AwsRegion", "GcpRegion", "AzureRegion", str],

pinecone/pinecone_asyncio.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
from pinecone.config import PineconeConfig, ConfigBuilder
66

7-
from pinecone.utils import normalize_host, require_kwargs
8-
from pinecone.utils import docslinks
7+
from pinecone.utils import normalize_host, require_kwargs, docslinks
98

109
from .pinecone_interface_asyncio import PineconeAsyncioDBControlInterface
1110
from .pinecone import check_realistic_host

0 commit comments

Comments
 (0)