@@ -208,50 +208,64 @@ def _build_get_range_request(self, key,
208208 sort_target = 'key' ,
209209 serializable = False ,
210210 keys_only = False ,
211- count_only = None ,
211+ count_only = False ,
212212 min_mod_revision = None ,
213213 max_mod_revision = None ,
214214 min_create_revision = None ,
215215 max_create_revision = None ):
216216 range_request = etcdrpc .RangeRequest ()
217217 range_request .key = utils .to_bytes (key )
218218 range_request .keys_only = keys_only
219+ range_request .count_only = count_only
220+ range_request .serializable = serializable
221+
219222 if range_end is not None :
220223 range_request .range_end = utils .to_bytes (range_end )
221-
222- if sort_order is None :
223- range_request .sort_order = etcdrpc .RangeRequest .NONE
224- elif sort_order == 'ascend' :
225- range_request .sort_order = etcdrpc .RangeRequest .ASCEND
226- elif sort_order == 'descend' :
227- range_request .sort_order = etcdrpc .RangeRequest .DESCEND
228- else :
224+ if limit is not None :
225+ range_request .limit = limit
226+ if revision is not None :
227+ range_request .revision = revision
228+ if min_mod_revision is not None :
229+ range_request .min_mod_revision = min_mod_revision
230+ if max_mod_revision is not None :
231+ range_request .max_mod_revision = max_mod_revision
232+ if min_create_revision is not None :
233+ range_request .min_mod_revision = min_create_revision
234+ if max_create_revision is not None :
235+ range_request .min_mod_revision = max_create_revision
236+
237+ sort_orders = {
238+ None : etcdrpc .RangeRequest .NONE ,
239+ 'ascend' : etcdrpc .RangeRequest .ASCEND ,
240+ 'descend' : etcdrpc .RangeRequest .DESCEND ,
241+ }
242+ request_sort_order = sort_orders .get (sort_order )
243+ if request_sort_order is None :
229244 raise ValueError ('unknown sort order: "{}"' .format (sort_order ))
230-
231- if sort_target is None or sort_target == 'key' :
232- range_request . sort_target = etcdrpc . RangeRequest . KEY
233- elif sort_target == 'version' :
234- range_request . sort_target = etcdrpc .RangeRequest .VERSION
235- elif sort_target == 'create' :
236- range_request . sort_target = etcdrpc .RangeRequest .CREATE
237- elif sort_target == 'mod' :
238- range_request . sort_target = etcdrpc .RangeRequest .MOD
239- elif sort_target == 'value' :
240- range_request . sort_target = etcdrpc . RangeRequest . VALUE
241- else :
245+ range_request . sort_order = request_sort_order
246+
247+ sort_targets = {
248+ None : etcdrpc . RangeRequest . KEY ,
249+ 'key' : etcdrpc .RangeRequest .KEY ,
250+ 'version' : etcdrpc . RangeRequest . VERSION ,
251+ 'create' : etcdrpc .RangeRequest .CREATE ,
252+ 'mod' : etcdrpc . RangeRequest . MOD ,
253+ 'value' : etcdrpc .RangeRequest .VALUE ,
254+ }
255+ request_sort_target = sort_targets . get ( sort_target )
256+ if request_sort_target is None :
242257 raise ValueError ('sort_target must be one of "key", '
243258 '"version", "create", "mod" or "value"' )
244-
245- range_request .serializable = serializable
259+ range_request .sort_target = request_sort_target
246260
247261 return range_request
248262
249263 @_handle_errors
250- def get_response (self , key , serializable = False ):
264+ def get_response (self , key , ** kwargs ):
251265 """Get the value of a key from etcd."""
252266 range_request = self ._build_get_range_request (
253267 key ,
254- serializable = serializable
268+ ** kwargs
255269 )
256270
257271 return self .kvstub .Range (
@@ -275,8 +289,6 @@ def get(self, key, **kwargs):
275289 'hello world'
276290
277291 :param key: key in etcd to get
278- :param serializable: whether to allow serializable reads. This can
279- result in stale reads
280292 :returns: value of key and metadata
281293 :rtype: bytes, ``KVMetadata``
282294 """
0 commit comments