Commit | Line | Data |
---|---|---|
dc7ddb87 MW |
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 | ||
64 | ||
65 | ||
66 | cdbdump(c) |