Skip to content

Commit 0a82567

Browse files
committed
LRANGE implementation for pickle db patx#61
1 parent 796cc82 commit 0a82567

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

docs/commands.html

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ <h1>Current Commands</h1>
3333
<p><code><span class="c2">LGETALL</span> <span class="c9">name</span></code> &rarr; Return all values in a list <small><em>(available since 0.1)</em></small></p>
3434
<p><code><span class="c2">LEXTEND</span> <span class="c9">name</span> <span class="c9">seq</span></code> &rarr; Extend a list with a sequence <small><em>(available since 0.6)</em></small></p>
3535
<p><code><span class="c2">LGET</span> <span class="c9">name</span> <span class="c9">pos</span></code> &rarr; Return one value in a list <small><em>(available since 0.1)</em></small></p>
36+
<p><code><span class="c2">LRANGE</span> <span class="c9">name</span> <span class="c9">start</span> <span class="c9">end</span></code> &rarr; Return all the values from a given range in a list <small><em></em></small></p>
3637
<p><code><span class="c2">LREMLIST</span> <span class="c9">name</span></code> &rarr; Remove a list and all of its values <small><em>(available since 0.1)</em></small></p>
3738
<p><code><span class="c2">LREMVALUE</span> <span class="c9">name</span> <span class="c9">value</span></code> &rarr; Remove a value from list <code>name</code> <small><em>(available since 0.8.2)</em></small></p>
3839
<p><code><span class="c2">LPOP</span> <span class="c9">name</span> <span class="c9">pos</span></code> &rarr; Remove one value in a list <small><em>(available since 0.1)</em></small></p>

pickledb.py

+4
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,10 @@ def lget(self, name, pos):
189189
'''Return one value in a list'''
190190
return self.db[name][pos]
191191

192+
def lrange(self, name, start=None, end=None):
193+
'''Return range of values in a list '''
194+
return self.db[name][start:end]
195+
192196
def lremlist(self, name):
193197
'''Remove a list and all of its values'''
194198
number = len(self.db[name])

tests.py

+10
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,16 @@ def test_not_lexists(self):
8484
assert x is False
8585
self.db.lrem('list')
8686

87+
def test_lrange(self):
88+
self.db.lcreate('list')
89+
self.db.ladd('list','one')
90+
self.db.ladd('list','two')
91+
self.db.ladd('list','three')
92+
self.db.ladd('list','four')
93+
x = self.db.lrange('list', 1, 3)
94+
assert x == ['two', 'three']
95+
self.db.lremlist('list')
96+
8797
def test_dexists(self):
8898
self.db.dcreate('dict')
8999
self.db.dadd('dict', ('key', 'value'))

0 commit comments

Comments
 (0)