Skip to content

Commit

Permalink
accept string keys
Browse files Browse the repository at this point in the history
  • Loading branch information
zielmicha committed Jul 21, 2013
1 parent c0b09f0 commit c8498c7
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions graveldb.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ def __init__(self, path):
self.db = tdb.open(path, flags=os.O_RDWR | os.O_CREAT)

def __getitem__(self, name):
return self._unpickle(self.db[name])
return self._unpickle(self.db[_mkkey(name)])

def __setitem__(self, name, val):
self.db[name] = self._pickle(val)
self.db[_mkkey(name)] = self._pickle(val)

def __delitem__(self, name):
del self.db[name]
del self.db[_mkkey(name)]

def close(self):
self.db.close()
Expand All @@ -32,6 +32,12 @@ def unlock_all(self):
def keys(self):
return list(self.db.iterkeys())

def _mkkey(k):
if isinstance(k, (str, int)):
return str(k)
else:
raise TypeError('expected str or int')

class TDB_BSON_Shelf(TDBShelf):
def _pickle(self, val):
return bson.BSON.encode(val.__dict__)
Expand Down

0 comments on commit c8498c7

Please sign in to comment.