dynamodb-mapper -- a DynamoDB object mapper, based on boto.

The documentation currently assumes that you're running Boto 2.3.0 or later. If you're not, then the API for query and scan changes. You will have to supply raw condition dicts, as is done in boto itself.

Also note that Boto 2.3.1 or later is required for autoincrement_int hash keys. Earlier versions will fail.

Example usage (assumes you've correctly set your Boto credentials):

from dynamodb_mapper.model import DynamoDBModel

class DoomMap(DynamoDBModel):
    __table__ = "doom_map"
    __hash_key__ = "episode"
    __range_key__ = "map"
    __schema__ = {
        "episode": int,
        "map": int,
        "name": unicode,
        "cheats": set,

e1m1 = DoomMap()
e1m1.episode = 1 = 1 = u"Hangar"
e1m1.cheats = set(["idkfa", "iddqd", "idclip"])

# Later on, retrieve that same object from the DB...
e1m1 = DoomMap.get((1, 1))

# query on hash+range-keyed tables
e1_maps = DoomMap.query(hash_key=1)

from boto.dynamodb.condition import GT
e1_maps_after_5 = DoomMap.query(