33 unicode_literals
44
55from builtins import str
6- from six import string_types , binary_type
6+ from six import string_types , binary_type , raise_from
77from splitio .exceptions import SentinelConfigurationException
88
99try :
@@ -47,7 +47,7 @@ def original_exception(self):
4747 return self ._original_exception
4848
4949
50- class RedisAdapter (object ):
50+ class RedisAdapter (object ): #pylint: disable=too-many-public-methods
5151 """
5252 Instance decorator for Redis clients such as StrictRedis.
5353
@@ -127,11 +127,12 @@ def _remove_prefix(self, k):
127127 def keys (self , pattern ):
128128 """Mimic original redis function but using user custom prefix."""
129129 try :
130- return _bytes_to_string (self ._remove_prefix (
131- self ._decorated .keys (self ._add_prefix (pattern ))
132- ))
130+ return [
131+ _bytes_to_string (key )
132+ for key in self ._remove_prefix (self ._decorated .keys (self ._add_prefix (pattern )))
133+ ]
133134 except RedisError as exc :
134- raise RedisAdapterException ('Failed to execute keys operation' , exc )
135+ raise_from ( RedisAdapterException ('Failed to execute keys operation' ) , exc )
135136
136137 def set (self , name , value , * args , ** kwargs ):
137138 """Mimic original redis function but using user custom prefix."""
@@ -156,26 +157,33 @@ def setex(self, name, time, value):
156157 except RedisError as exc :
157158 raise RedisAdapterException ('Error executing setex operation' , exc )
158159
159- def delete (self , names ):
160+ def delete (self , * names ):
160161 """Mimic original redis function but using user custom prefix."""
161162 try :
162- return self ._decorated .delete (self ._add_prefix (names ))
163+ return self ._decorated .delete (* self ._add_prefix (list ( names ) ))
163164 except RedisError as exc :
164- raise RedisAdapterException ('Error executing delete operation' , exc )
165+ raise_from ( RedisAdapterException ('Error executing delete operation' ) , exc )
165166
166167 def exists (self , name ):
167168 """Mimic original redis function but using user custom prefix."""
168169 try :
169170 return self ._decorated .exists (self ._add_prefix (name ))
170171 except RedisError as exc :
171- raise RedisAdapterException ('Error executing exists operation' , exc )
172+ raise_from (RedisAdapterException ('Error executing exists operation' ), exc )
173+
174+ def lrange (self , key , start , end ):
175+ """Mimic original redis function but using user custom prefix."""
176+ try :
177+ return self ._decorated .lrange (self ._add_prefix (key ), start , end )
178+ except RedisError as exc :
179+ raise_from (RedisAdapterException ('Error executing exists operation' ), exc )
172180
173181 def mget (self , names ):
174182 """Mimic original redis function but using user custom prefix."""
175183 try :
176184 return _bytes_to_string (self ._decorated .mget (self ._add_prefix (names )))
177185 except RedisError as exc :
178- raise RedisAdapterException ('Error executing mget operation' , exc )
186+ raise_from ( RedisAdapterException ('Error executing mget operation' ) , exc )
179187
180188 def smembers (self , name ):
181189 """Mimic original redis function but using user custom prefix."""
@@ -185,91 +193,91 @@ def smembers(self, name):
185193 for item in self ._decorated .smembers (self ._add_prefix (name ))
186194 ]
187195 except RedisError as exc :
188- raise RedisAdapterException ('Error executing smembers operation' , exc )
196+ raise_from ( RedisAdapterException ('Error executing smembers operation' ) , exc )
189197
190198 def sadd (self , name , * values ):
191199 """Mimic original redis function but using user custom prefix."""
192200 try :
193201 return self ._decorated .sadd (self ._add_prefix (name ), * values )
194202 except RedisError as exc :
195- raise RedisAdapterException ('Error executing sadd operation' , exc )
203+ raise_from ( RedisAdapterException ('Error executing sadd operation' ) , exc )
196204
197205 def srem (self , name , * values ):
198206 """Mimic original redis function but using user custom prefix."""
199207 try :
200208 return self ._decorated .srem (self ._add_prefix (name ), * values )
201209 except RedisError as exc :
202- raise RedisAdapterException ('Error executing srem operation' , exc )
210+ raise_from ( RedisAdapterException ('Error executing srem operation' ) , exc )
203211
204212 def sismember (self , name , value ):
205213 """Mimic original redis function but using user custom prefix."""
206214 try :
207215 return self ._decorated .sismember (self ._add_prefix (name ), value )
208216 except RedisError as exc :
209- raise RedisAdapterException ('Error executing sismember operation' , exc )
217+ raise_from ( RedisAdapterException ('Error executing sismember operation' ) , exc )
210218
211219 def eval (self , script , number_of_keys , * keys ):
212220 """Mimic original redis function but using user custom prefix."""
213221 try :
214222 return self ._decorated .eval (script , number_of_keys , * self ._add_prefix (list (keys )))
215223 except RedisError as exc :
216- raise RedisAdapterException ('Error executing eval operation' , exc )
224+ raise_from ( RedisAdapterException ('Error executing eval operation' ) , exc )
217225
218226 def hset (self , name , key , value ):
219227 """Mimic original redis function but using user custom prefix."""
220228 try :
221229 return self ._decorated .hset (self ._add_prefix (name ), key , value )
222230 except RedisError as exc :
223- raise RedisAdapterException ('Error executing hset operation' , exc )
231+ raise_from ( RedisAdapterException ('Error executing hset operation' ) , exc )
224232
225233 def hget (self , name , key ):
226234 """Mimic original redis function but using user custom prefix."""
227235 try :
228236 return _bytes_to_string (self ._decorated .hget (self ._add_prefix (name ), key ))
229237 except RedisError as exc :
230- raise RedisAdapterException ('Error executing hget operation' , exc )
238+ raise_from ( RedisAdapterException ('Error executing hget operation' ) , exc )
231239
232240 def incr (self , name , amount = 1 ):
233241 """Mimic original redis function but using user custom prefix."""
234242 try :
235243 return self ._decorated .incr (self ._add_prefix (name ), amount )
236244 except RedisError as exc :
237- raise RedisAdapterException ('Error executing incr operation' , exc )
245+ raise_from ( RedisAdapterException ('Error executing incr operation' ) , exc )
238246
239247 def getset (self , name , value ):
240248 """Mimic original redis function but using user custom prefix."""
241249 try :
242250 return _bytes_to_string (self ._decorated .getset (self ._add_prefix (name ), value ))
243251 except RedisError as exc :
244- raise RedisAdapterException ('Error executing getset operation' , exc )
252+ raise_from ( RedisAdapterException ('Error executing getset operation' ) , exc )
245253
246254 def rpush (self , key , * values ):
247255 """Mimic original redis function but using user custom prefix."""
248256 try :
249257 return self ._decorated .rpush (self ._add_prefix (key ), * values )
250258 except RedisError as exc :
251- raise RedisAdapterException ('Error executing rpush operation' , exc )
259+ raise_from ( RedisAdapterException ('Error executing rpush operation' ) , exc )
252260
253261 def expire (self , key , value ):
254262 """Mimic original redis function but using user custom prefix."""
255263 try :
256264 return self ._decorated .expire (self ._add_prefix (key ), value )
257265 except RedisError as exc :
258- raise RedisAdapterException ('Error executing expire operation' , exc )
266+ raise_from ( RedisAdapterException ('Error executing expire operation' ) , exc )
259267
260268 def rpop (self , key ):
261269 """Mimic original redis function but using user custom prefix."""
262270 try :
263271 return _bytes_to_string (self ._decorated .rpop (self ._add_prefix (key )))
264272 except RedisError as exc :
265- raise RedisAdapterException ('Error executing rpop operation' , exc )
273+ raise_from ( RedisAdapterException ('Error executing rpop operation' ) , exc )
266274
267275 def ttl (self , key ):
268276 """Mimic original redis function but using user custom prefix."""
269277 try :
270278 return self ._decorated .ttl (self ._add_prefix (key ))
271279 except RedisError as exc :
272- raise RedisAdapterException ('Error executing ttl operation' , exc )
280+ raise_from ( RedisAdapterException ('Error executing ttl operation' ) , exc )
273281
274282
275283def _build_default_client (config ): #pylint: disable=too-many-locals
0 commit comments