Release 0.32-5.5.
[python-cdb] / Example
1 #! /usr/bin/env python
2
3 # python-cdb 0.32 "Example"
4
5 import cdb
6
7 print cdb.__version__
8
9 ## cdbmake object
10
11 fn = "f.cdb"
12
13 maker = cdb.cdbmake(fn, fn + ".tmp");
14
15 maker.add('flim', 'flam') # +4,4:flim->flam
16 maker.add('map', 'hash') # +3,4:map->hash
17 maker.add('spam', 'eggs') # +4,4:spam->eggs
18 maker.add('map', 'dictionary') # +3,10:map->dictionary
19 maker.add('map', 'assoc. array') # +3,12:map->assoc. array
20
21 print "Added %d records to CDB %s (fd %d)" % \
22 (maker.numentries, maker.fn, maker.fd)
23
24 maker.finish()
25
26 del(maker)
27
28 ## cdb object
29
30 c = cdb.init(fn) # or init( file_obj.fileno() )
31
32 print len(c) # 5
33
34 print c['flim'] # 'flam'
35 print c.get('spam') # 'eggs'
36 print c.get('map', 0) # 'hash' -- a la cdbget utility
37 print c.get('map', 1) # 'dictionary'
38
39 r = c.get('map') # will print:
40 while r is not None: # 'hash'
41 print r # 'dictionary'
42 r = c.getnext() # 'assoc. array'
43
44 print c.keys() # ['flim', 'map', 'spam']
45
46 for k in c.keys(): # flim => ['flam']
47 print k, '=>', c.getall(k) # map => ['hash', 'dictionary', 'assoc. array']
48 # spam => ['eggs']
49
50 k = c.firstkey() # same as above
51 while k is not None:
52 print k, "=>", c.getall(k)
53 k = c.nextkey()
54
55
56 def cdbdump(cdb_o): # as the cdbdump utility
57 r = cdb_o.each() # r = ('key', 'val') or None
58 while r:
59 print "+%d,%d:%s->%s" % (
60 len(r[0]), len(r[1]),
61 r[0], r[1] )
62 r = cdb_o.each()
63 print
64
65
66 cdbdump(c)