11#!/usr/bin/env python
22# -*- coding:utf-8 -*-
3- import json
4- import requests
5- import socket
6- import datetime , time
7- import sentry_sdk
3+ import json , requests , socket , datetime , time , sentry_sdk
84from typing import Union , Optional
5+ requests .packages .urllib3 .disable_warnings ()
96
107
118class Client ():
@@ -16,7 +13,7 @@ def __init__(self, protocol: str = 'http', host: str = 'localhost', port: str =
1613 self ._baseurl = "{}://{}:{}" .format (self ._protocol , self ._host , self ._port )
1714 self ._db = None
1815 self ._timeout = 10
19- self ._header = {'Content-type' : 'application/json' }
16+ self ._header = {'Content-type' : 'application/json' , "Connection" : "close" }
2017 self .check_networking ()
2118
2219 def check_networking (self ):
@@ -32,17 +29,19 @@ def check_networking(self):
3229 def welcome (self ):
3330 req_url = "{}/" .format (self ._baseurl )
3431 req_data = None
35- res = requests .get (url = req_url , data = json .dumps (req_data ), headers = self ._header , timeout = self ._timeout )
32+ res = requests .get (url = req_url , data = json .dumps (req_data ), headers = self ._header , timeout = self ._timeout , verify = False )
3633 status_code = res .status_code
3734 body = res .text
35+ res .close ()
3836 return status_code , body
3937
4038 def state (self ):
4139 req_url = "{}/state" .format (self ._baseurl )
4240 req_data = None
43- res = requests .get (url = req_url , data = json .dumps (req_data ), headers = self ._header )
41+ res = requests .get (url = req_url , data = json .dumps (req_data ), headers = self ._header , verify = False )
4442 status_code = res .status_code
4543 body = res .json ()
44+ res .close ()
4645 return status_code , body
4746
4847 def use_db (self , db_name : str ):
@@ -55,17 +54,19 @@ def load_db(self, db_name: str, db_path: str, vector_scale: int = None, wal_enab
5554 req_data ["vectorScale" ] = vector_scale
5655 if wal_enabled is not None :
5756 req_data ["walEnabled" ] = wal_enabled
58- res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header )
57+ res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header , verify = False )
5958 status_code = res .status_code
6059 body = res .json ()
60+ res .close ()
6161 return status_code , body
6262
6363
6464 def unload_db (self , db_name : str ):
6565 req_url = "{}/api/{}/unload" .format (self ._baseurl , db_name )
66- res = requests .post (url = req_url , data = None , headers = self ._header )
66+ res = requests .post (url = req_url , data = None , headers = self ._header , verify = False )
6767 status_code = res .status_code
6868 body = res .json ()
69+ res .close ()
6970 return status_code , body
7071
7172 def create_table (self , table_name : str , table_fields : list [str ] = None ):
@@ -75,18 +76,20 @@ def create_table(self, table_name: str, table_fields: list[str] = None):
7576 table_fields = []
7677 req_url = "{}/api/{}/schema/tables" .format (self ._baseurl , self ._db )
7778 req_data = {"name" : table_name , "fields" : table_fields }
78- res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header )
79+ res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header , verify = False )
7980 status_code = res .status_code
8081 body = res .json ()
82+ res .close ()
8183 return status_code , body
8284
8385 def list_tables (self ):
8486 if self ._db is None :
8587 raise Exception ("[ERROR] Please use_db() first!" )
8688 req_url = "{}/api/{}/schema/tables/show" .format (self ._baseurl , self ._db )
87- res = requests .get (url = req_url , headers = self ._header )
89+ res = requests .get (url = req_url , headers = self ._header , verify = False )
8890 status_code = res .status_code
8991 body = res .json ()
92+ res .close ()
9093 return status_code , body
9194
9295
@@ -97,9 +100,10 @@ def insert(self, table_name: str, records: list = None):
97100 records = []
98101 req_url = "{}/api/{}/data/insert" .format (self ._baseurl , self ._db )
99102 req_data = {"table" : table_name , "data" : records }
100- res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header )
103+ res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header , verify = False )
101104 status_code = res .status_code
102105 body = res .json ()
106+ res .close ()
103107 return status_code , body
104108
105109 def delete (self , table_name : str , primary_keys : list [Union [str ,int ]] = None , ids : list [Union [str ,int ]] = None , filter : Optional [str ] = None ):
@@ -125,9 +129,10 @@ def delete(self, table_name: str, primary_keys: list[Union[str,int]] = None, ids
125129 req_data ["primaryKeys" ] = primary_keys
126130 if filter != None :
127131 req_data ["filter" ] = filter
128- res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header )
132+ res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header , verify = False )
129133 status_code = res .status_code
130134 body = res .json ()
135+ res .close ()
131136 return status_code , body
132137
133138
@@ -136,11 +141,12 @@ def rebuild(self, timeout: int = 7200):
136141 req_data = None
137142 print ("[INFO] waiting until rebuild is finished ..." )
138143 start_time = datetime .datetime .now ().strftime ("%Y-%m-%dT%H:%M:%S" )
139- res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header , timeout = timeout )
144+ res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header , timeout = timeout , verify = False )
140145 end_time = datetime .datetime .now ().strftime ("%Y-%m-%dT%H:%M:%S" )
141146 print ("[INFO] Start Time:{}\n End Time:{}" .format (start_time , end_time ))
142147 status_code = res .status_code
143148 body = res .json ()
149+ res .close ()
144150 return status_code , body
145151
146152 def query (
@@ -168,9 +174,10 @@ def query(
168174 "filter" : filter ,
169175 "withDistance" : with_distance
170176 }
171- res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header )
177+ res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header , verify = False )
172178 status_code = res .status_code
173179 body = res .json ()
180+ res .close ()
174181 return status_code , body
175182
176183 def get (self , table_name : str , response_fields : Optional [list ] = None , primary_keys : Optional [list [Union [str ,int ]]] = None , ids : Optional [list [Union [str ,int ]]] = None , filter : Optional [str ] = None , skip : Optional [int ] = None , limit : Optional [int ] = None ):
@@ -203,9 +210,10 @@ def get(self, table_name: str, response_fields: Optional[list] = None, primary_k
203210 req_data ["limit" ] = filter
204211
205212 req_url = "{}/api/{}/data/get" .format (self ._baseurl , self ._db )
206- res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header )
213+ res = requests .post (url = req_url , data = json .dumps (req_data ), headers = self ._header , verify = False )
207214 status_code = res .status_code
208215 body = res .json ()
216+ res .close ()
209217 return status_code , body
210218
211219
@@ -214,14 +222,16 @@ def drop_table(self, table_name: str = None):
214222 raise Exception ("[ERROR] Please use_db() first!" )
215223 req_url = "{}/api/{}/schema/tables/{}" .format (self ._baseurl , self ._db , table_name )
216224 req_data = None
217- res = requests .delete (url = req_url , data = json .dumps (req_data ), headers = self ._header )
225+ res = requests .delete (url = req_url , data = json .dumps (req_data ), headers = self ._header , verify = False )
218226 status_code = res .status_code
219227 body = res .json ()
228+ res .close ()
220229 return status_code , body
221230
222231 def drop_db (self , db_name : str ):
223232 req_url = "{}/api/{}/drop" .format (self ._baseurl , db_name )
224- res = requests .delete (url = req_url , data = None , headers = self ._header )
233+ res = requests .delete (url = req_url , data = None , headers = self ._header , verify = False )
225234 status_code = res .status_code
226235 body = res .json ()
236+ res .close ()
227237 return status_code , body
0 commit comments