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