4
4
from immudb import header_manipulator_client_interceptor
5
5
from immudb .handler import (batchGet , batchSet , changePassword , createUser ,
6
6
currentRoot , databaseCreate , databaseList , databaseUse ,
7
- get , listUsers , safeGet , safeSet , setValue , history ,
8
- scan , reference )
7
+ get , listUsers , verifiedGet , verifiedSet , setValue , history ,
8
+ scan , reference , verifiedreference , zadd , verifiedzadd ,
9
+ zscan , healthcheck , txbyid , verifiedtxbyid )
9
10
from immudb .rootService import RootService
10
11
from immudb .grpc import schema_pb2_grpc
11
-
12
- OLDEST_FIRST = True
13
- NEWEST_FIRST = False
12
+ import warnings
14
13
15
14
class ImmudbClient :
16
15
def __init__ (self , immudUrl = None ):
@@ -52,6 +51,7 @@ def shutdown(self):
52
51
self .channel = None
53
52
self .intercept_channel .close
54
53
self .intercept_channel = None
54
+ self .__rs = None
55
55
56
56
def set_token_header_interceptor (self , response ):
57
57
try :
@@ -72,42 +72,56 @@ def set_token_header_interceptor(self, response):
72
72
@property
73
73
def stub (self ):
74
74
return self .__stub
75
+
76
+ def healthCheck (self ):
77
+ return healthcheck .call (self .__stub , self .__rs )
78
+
75
79
76
80
def get (self , key : bytes ):
77
- request = schema_pb2_grpc .schema__pb2 .Key (key = key )
78
- return get .call (self .__stub , self .__rs , request )
81
+ return get .call (self .__stub , self .__rs , key )
82
+
83
+ def getValue (self , key : bytes ):
84
+ ret = get .call (self .__stub , self .__rs , key )
85
+ if ret == None :
86
+ return None
87
+ return ret .value
79
88
80
89
def set (self , key : bytes , value : bytes ):
81
- request = schema_pb2_grpc .schema__pb2 .KeyValue (key = key , value = value )
82
- return setValue .call (self .__stub , self .__rs , request )
90
+ return setValue .call (self .__stub , self .__rs , key , value )
83
91
84
92
def safeGet (self , key : bytes ):
85
- request = schema_pb2_grpc .schema__pb2 .SafeGetOptions (key = key )
86
- return safeGet .call (self .__stub , self .__rs , request )
93
+ warnings .warn ("Call to deprecated safeGet. Use verifiedGet instead" ,
94
+ category = DeprecationWarning ,
95
+ stacklevel = 2
96
+ )
97
+ return verifiedGet .call (self .__stub , self .__rs , key )
98
+
99
+ def verifiedGet (self , key : bytes ):
100
+ return verifiedGet .call (self .__stub , self .__rs , key )
101
+
102
+ def verifiedGetAt (self , key : bytes , atTx :int ):
103
+ return verifiedGet .call (self .__stub , self .__rs , key , atTx )
87
104
88
105
def safeSet (self , key : bytes , value : bytes ):
89
- request = schema_pb2_grpc .schema__pb2 .SafeSetOptions (
90
- kv = {"key" : key , "value" : value })
91
- return safeSet .call (self .__stub , self .__rs , request )
106
+ warnings .warn ("Call to deprecated safeSet. Use verifiedSet instead" ,
107
+ category = DeprecationWarning ,
108
+ stacklevel = 2
109
+ )
110
+ return verifiedSet .call (self .__stub , self .__rs , key , value )
111
+
112
+ def verifiedSet (self , key : bytes , value : bytes ):
113
+ return verifiedSet .call (self .__stub , self .__rs , key , value )
92
114
93
- def getAllItems (self , keys : list ):
94
- klist = [schema_pb2_grpc .schema__pb2 .Key (key = k ) for k in keys ]
95
- request = schema_pb2_grpc .schema__pb2 .KeyList (keys = klist )
96
- return batchGet .call (self .__stub , self .__rs , request )
115
+ def getAllValues (self , keys : list ):
116
+ resp = batchGet .call (self .__stub , self .__rs , keys )
117
+ return resp
97
118
98
119
def getAll (self , keys : list ):
99
- klist = [schema_pb2_grpc .schema__pb2 .Key (key = k ) for k in keys ]
100
- request = schema_pb2_grpc .schema__pb2 .KeyList (keys = klist )
101
- resp = batchGet .call (self .__stub , self .__rs , request )
102
- return resp
120
+ resp = batchGet .call (self .__stub , self .__rs , keys )
121
+ return {key :value .value for key , value in resp .items ()}
103
122
104
123
def setAll (self , kv : dict ):
105
- _KVs = []
106
- for i in kv .keys ():
107
- _KVs .append (schema_pb2_grpc .schema__pb2 .KeyValue (
108
- key = i , value = kv [i ]))
109
- request = schema_pb2_grpc .schema__pb2 .KVList (KVs = _KVs )
110
- return batchSet .call (self .__stub , self .__rs , request )
124
+ return batchSet .call (self .__stub , self .__rs , kv )
111
125
112
126
def changePassword (self , user , newPassword , oldPassword ):
113
127
request = schema_pb2_grpc .schema__pb2 .ChangePasswordRequest (
@@ -130,7 +144,8 @@ def listUsers(self):
130
144
return listUsers .call (self .__stub , None )
131
145
132
146
def databaseList (self ):
133
- return databaseList .call (self .__stub , self .__rs , None )
147
+ dbs = databaseList .call (self .__stub , self .__rs , None )
148
+ return [x .databasename for x in dbs .dblist .databases ]
134
149
135
150
def databaseUse (self , dbName : bytes ):
136
151
request = schema_pb2_grpc .schema__pb2 .Database (databasename = dbName )
@@ -145,65 +160,42 @@ def databaseCreate(self, dbName: bytes):
145
160
request = schema_pb2_grpc .schema__pb2 .Database (databasename = dbName )
146
161
return databaseCreate .call (self .__stub , self .__rs , request )
147
162
148
- def currentRoot (self ):
163
+ def currentState (self ):
149
164
return currentRoot .call (self .__stub , self .__rs , None )
150
165
151
166
def history (self , key : bytes , offset : int , limit : int , sortorder : bool ):
152
- request = schema_pb2_grpc .schema__pb2 .HistoryOptions (
153
- key = key ,
154
- offset = offset ,
155
- limit = limit ,
156
- reverse = sortorder
157
- )
158
- return history .call (self .__stub , self .__rs , request )
167
+ return history .call (self .__stub , self .__rs , key , offset , limit , sortorder )
159
168
160
169
def logout (self ):
161
170
self .__stub .Logout (google_dot_protobuf_dot_empty__pb2 .Empty ())
162
171
self .__login_response = None
163
-
164
- def scan (self , prefix : bytes , offset : bytes , limit :int = 10 , reverse :bool = False , deep :bool = False ):
165
- request = schema_pb2_grpc .schema__pb2 .ScanOptions (
166
- prefix = prefix ,
167
- offset = offset ,
168
- limit = limit ,
169
- reverse = reverse ,
170
- deep = deep )
171
- return scan .call (self .__stub , self .__rs , request )
172
+
173
+ def scan (self , key :bytes , prefix :bytes , desc :bool , limit :int ,sinceTx :int = None ):
174
+ return scan .call (self .__stub , self .__rs , key , prefix , desc , limit , sinceTx )
172
175
173
- def reference (self , refkey : bytes , key : bytes ):
174
- request = schema_pb2_grpc .schema__pb2 .ReferenceOptions (
175
- reference = refkey ,
176
- key = key
177
- )
178
- return reference .call (self .__stub , self .__rs , request )
179
-
176
+ def setReference (self , referredkey : bytes , newkey : bytes ):
177
+ return reference .call (self .__stub , self .__rs , referredkey , newkey )
180
178
181
- def zadd (self ):
182
- pass
179
+ def verifiedSetReference (self , referredkey : bytes , newkey : bytes ):
180
+ return verifiedreference . call ( self . __stub , self . __rs , referredkey , newkey )
183
181
184
- def zscan (self ):
185
- pass
186
-
187
-
188
-
189
- def scan (self , prefix : bytes , offset : bytes , limit :int = 10 , reverse :bool = False , deep :bool = False ):
190
- request = schema_pb2_grpc .schema__pb2 .ScanOptions (
191
- prefix = prefix ,
192
- offset = offset ,
193
- limit = limit ,
194
- reverse = reverse ,
195
- deep = deep )
196
- return scan .call (self .__stub , self .__rs , request )
182
+ def zAdd (self , zset :bytes , score :float , key :bytes , atTx :int = 0 ):
183
+ return zadd .call (self .__stub , self .__rs , zset , score , key , atTx )
197
184
198
- def reference (self , refkey : bytes , key : bytes ):
199
- request = schema_pb2_grpc .schema__pb2 .ReferenceOptions (
200
- reference = refkey ,
201
- key = key
202
- )
203
- return reference .call (self .__stub , self .__rs , request )
185
+ def verifiedZAdd (self , zset :bytes , score :float , key :bytes , atTx :int = 0 ):
186
+ return verifiedzadd .call (self .__stub , self .__rs , zset , score , key , atTx )
204
187
205
- def zadd (self ):
206
- pass
188
+ def zScan (self , zset :bytes , seekKey :bytes , seekScore :float ,
189
+ seekAtTx :int , inclusive : bool , limit :int , desc :bool , minscore :float ,
190
+ maxscore :float , sinceTx = None , nowait = False ):
191
+ return zscan .call (self .__stub , self .__rs , zset , seekKey , seekScore ,
192
+ seekAtTx , inclusive , limit , desc , minscore ,
193
+ maxscore , sinceTx , nowait )
194
+
195
+ def txById (self , tx :int ):
196
+ return txbyid .call (self .__stub , self .__rs , tx )
207
197
208
- def zscan (self ):
209
- pass
198
+ def verifiedTxById (self , tx :int ):
199
+ return verifiedtxbyid .call (self .__stub , self .__rs , tx )
200
+
201
+
0 commit comments