2
2
# Copyright (c) 2020-2021 Pinecone Systems Inc. All right reserved.
3
3
#
4
4
5
- import json
6
5
import time
7
6
from typing import NamedTuple
8
-
9
- import pinecone
10
7
from pinecone .config import Config
11
8
from pinecone .core .client .api .index_operations_api import IndexOperationsApi
12
9
from pinecone .core .client .api_client import ApiClient
13
- from pinecone .core .client .configuration import Configuration
14
10
from pinecone .core .client .model .create_request import CreateRequest
15
11
from pinecone .core .client .model .patch_request import PatchRequest
16
12
from pinecone .core .client .model .create_collection_request import CreateCollectionRequest
17
13
from pinecone .core .utils import get_user_agent
18
14
19
15
__all__ = [
20
16
"create_index" , "delete_index" , "describe_index" , "list_indexes" , "scale_index" , "IndexDescription" ,
21
- "create_collection" , "describe_collection" , "list_collections" , "delete_collection" , "configure_index"
17
+ "create_collection" , "describe_collection" , "list_collections" , "delete_collection" , "configure_index" ,
18
+ "CollectionDescription"
22
19
]
23
20
24
21
25
22
class IndexDescription (NamedTuple ):
26
23
name : str
27
- index_type : str
28
24
metric : str
29
25
replicas : int
30
26
dimension : int
@@ -36,10 +32,13 @@ class IndexDescription(NamedTuple):
36
32
metadata_config : None
37
33
38
34
39
- class CollectionDescription (NamedTuple ):
40
- name : str
41
- size : int
42
- status : str
35
+ class CollectionDescription (object ):
36
+ def __init__ (self , keys , values ):
37
+ for k , v in zip (keys , values ):
38
+ self .__dict__ [k ] = v
39
+
40
+ def __str__ (self ):
41
+ return str (self .__dict__ )
43
42
44
43
45
44
def _get_api_instance ():
@@ -196,7 +195,7 @@ def describe_index(name: str):
196
195
db = response ['database' ]
197
196
ready = response ['status' ]['ready' ]
198
197
state = response ['status' ]['state' ]
199
- return IndexDescription (name = db ['name' ], index_type = db [ 'index_type' ], metric = db ['metric' ],
198
+ return IndexDescription (name = db ['name' ], metric = db ['metric' ],
200
199
replicas = db ['replicas' ], dimension = db ['dimension' ], shards = db ['shards' ],
201
200
pods = db .get ('pods' , db ['shards' ] * db ['replicas' ]), pod_type = db .get ('pod_type' , 'p1' ),
202
201
index_config = db ['index_config' ], status = {'ready' : ready , 'state' : state },
@@ -248,8 +247,9 @@ def describe_collection(name: str):
248
247
:return: Description of the collection
249
248
"""
250
249
api_instance = _get_api_instance ()
251
- response = api_instance .describe_collection (name )
252
- return response
250
+ response = api_instance .describe_collection (name ).to_dict ()
251
+ response_object = CollectionDescription (response .keys (), response .values ())
252
+ return response_object
253
253
254
254
255
255
def configure_index (name : str , replicas : int = None , pod_type : str = "" ):
@@ -264,3 +264,4 @@ def configure_index(name: str, replicas: int = None, pod_type: str = ""):
264
264
else :
265
265
patch_request = PatchRequest (pod_type = pod_type )
266
266
api_instance .configure_index (name , patch_request = patch_request )
267
+
0 commit comments