@@ -138,21 +138,7 @@ def __init__(self) -> None:
138
138
self .guide = None
139
139
140
140
def keys (self , prefix : str = "" ) -> list [str ]:
141
- b_prefix = prefix .encode ("utf8" )
142
- res = []
143
-
144
- index = self .dct .follow_bytes (b_prefix , self .dct .ROOT )
145
- if index is None :
146
- return res
147
-
148
- completer = wrapper .Completer (self .dct , self .guide )
149
- completer .start (index , b_prefix )
150
-
151
- while completer .next ():
152
- key = completer .key .decode ("utf8" )
153
- res .append (key )
154
-
155
- return res
141
+ return list (self .iterkeys (prefix ))
156
142
157
143
def iterkeys (self , prefix : str = "" ) -> Generator [str , None , None ]:
158
144
b_prefix = prefix .encode ("utf8" )
@@ -248,25 +234,7 @@ def b_get_value(self, b_key: bytes) -> list[bytes]:
248
234
return self ._value_for_index (index )
249
235
250
236
def keys (self , prefix : str | bytes = "" ) -> list [str ]:
251
- if not isinstance (prefix , bytes ):
252
- prefix = prefix .encode ("utf8" )
253
- res = []
254
-
255
- index = self .dct .ROOT
256
-
257
- if prefix :
258
- index = self .dct .follow_bytes (prefix , index )
259
- if not index :
260
- return res
261
-
262
- completer = wrapper .Completer (self .dct , self .guide )
263
- completer .start (index , prefix )
264
-
265
- while completer .next ():
266
- payload_idx = completer .key .index (self ._payload_separator )
267
- u_key = completer .key [:payload_idx ].decode ("utf8" )
268
- res .append (u_key )
269
- return res
237
+ return list (self .iterkeys (prefix ))
270
238
271
239
def iterkeys (self , prefix : str | bytes = "" ) -> Generator [bytes , None , None ]:
272
240
if not isinstance (prefix , bytes ):
@@ -288,24 +256,7 @@ def iterkeys(self, prefix: str | bytes = "") -> Generator[bytes, None, None]:
288
256
yield u_key
289
257
290
258
def items (self , prefix : str | bytes = "" ) -> list [tuple [str , bytes ]]:
291
- if not isinstance (prefix , bytes ):
292
- prefix = prefix .encode ("utf8" )
293
- res = []
294
-
295
- index = self .dct .ROOT
296
- if prefix :
297
- index = self .dct .follow_bytes (prefix , index )
298
- if not index :
299
- return res
300
-
301
- completer = wrapper .Completer (self .dct , self .guide )
302
- completer .start (index , prefix )
303
-
304
- while completer .next ():
305
- key , value = completer .key .split (self ._payload_separator )
306
- res .append ((key .decode ("utf8" ), a2b_base64 (value )))
307
-
308
- return res
259
+ return list (self .iteritems (prefix ))
309
260
310
261
def iteritems (self , prefix : str | bytes = "" ) -> Generator [tuple [str , bytes ], None , None ]:
311
262
if not isinstance (prefix , bytes ):
@@ -441,8 +392,7 @@ def _value_for_index(self, index: int) -> list[tuple[Any, ...]]:
441
392
return [self ._struct .unpack (val ) for val in value ]
442
393
443
394
def items (self , prefix : str | bytes = "" ) -> list [tuple [str , tuple [Any , ...]]]:
444
- res = super ().items (prefix )
445
- return [(key , self ._struct .unpack (val )) for (key , val ) in res ]
395
+ return list (self .iteritems (prefix ))
446
396
447
397
def iteritems (self , prefix : str | bytes = "" ) -> Generator [tuple [str , tuple [Any , ...]], None , None ]:
448
398
res = super ().iteritems (prefix )
@@ -486,23 +436,7 @@ class IntCompletionDAWG(CompletionDAWG, IntDAWG):
486
436
"""
487
437
488
438
def items (self , prefix : str | bytes = "" ) -> list [tuple [str , int ]]:
489
- if not isinstance (prefix , bytes ):
490
- prefix = prefix .encode ("utf8" )
491
- res = []
492
- index = self .dct .ROOT
493
-
494
- if prefix :
495
- index = self .dct .follow_bytes (prefix , index )
496
- if not index :
497
- return res
498
-
499
- completer = wrapper .Completer (self .dct , self .guide )
500
- completer .start (index , prefix )
501
-
502
- while completer .next ():
503
- res .append ((completer .key .decode ("utf8" ), completer .value ()))
504
-
505
- return res
439
+ return list (self .iteritems (prefix ))
506
440
507
441
def iteritems (self , prefix : str | bytes = "" ) -> Generator [tuple [str , int ], None , None ]:
508
442
if not isinstance (prefix , bytes ):
0 commit comments