| 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) |