Skip to main content

Python 3 compatible library for DynamoDB

Project description



build coverage



Dynamo3 is a library for querying DynamoDB. It is designed to be higher-level than boto (it’s built on top of botocore), to make simple operations easier to perform and understand.


  • Mypy-typed API

  • Python object wrappers for most AWS data structures

  • Automatic serialization of built-in types, with hooks for custom types

  • Automatic paging of results

  • Automatic batching for batch_write_item

  • Exponential backoff of requests when throughput is exceeded

  • Throughput limits to self-throttle requests to a certain rate

  • Nose plugin for running DynamoDB Local

DynamoDB features that are not yet supported

  • Reading from streams

  • Adding/removing tags on a table

  • Table backups

  • Scanning with segments

  • Table replicas (Global tables version 2019.11.21)

  • Table auto scaling

  • DAX

Note that you can still access these APIs by using, though you may prefer to go straight to boto3/botocore.



  • Removed the legacy API (scan, query, update_item, delete_item, put_item, get_item)

  • Renamed the new API methods to match the old ones (e.g. scan2 -> scan, query2 -> query)

  • Moved constant values into dynamo3.constants. This is where you can now find STRING, BINARY, etc

  • Added mypy typing where possible

  • Drop support for Python 2

  • Add support for table billing mode (aka on-demand tables)

  • Add support for SSE, TTL, and transactions


  • Fixed DynamoDB Local link in testing framework


  • Feature: Result objects from get_item have an exists flag

  • Feature: wait keyword for create and delete table


  • Bug fix: Scans/Queries could return incomplete results if AWS returned an empty Items list


  • New RateLimit class to avoid blowing through your provisioned throughput


  • New Limit class for more complex query limit behavior

  • Bug fix: Scan and Query with Select='COUNT' will page results properly


  • batch_get supports alias arg for ExpressionAttributeNames


  • Make connection stateless again. Puts consumed_capacity into response object and fixes mystery crash.


  • Bug fix: getting ConsumedCapacity doesn’t crash for BatchGetItem and BatchWriteItem

  • Feature: connection.default_return_capacity

  • Feature: hooks for precall, postcall, and capacity

  • Better handling of ConsumedCapacity results


  • Feature: New methods to take advantage of the newer expression API. See get_item2, put_item2.

  • Feature: Shortcut use_version for switching over to the new APIs.


  • Feature: update_table can create and delete global indexes

  • Feature: New methods to take advantage of the newer expression API. See scan2, query2, update_item2, and delete_item2.


  • Migrating to botocore client API since services will be deprecated soon


  • Bug fix: Serialization of blobs broken with botocore 0.85.0


  • Bug fix: Crash when parsing description of table being deleted


  • Breakage: Dropping support for python 3.2 due to lack of botocore support

  • Feature: Support JSON document data types

Features thanks to DynamoDB upgrades:


  • Tweak: Nose plugin allows setting region when connecting to DynamoDB Local


  • Feature: New, unified connect method


  • Feature: More expressive ‘expected’ conditionals

  • Feature: Queries can filter on non-indexed fields

  • Feature: Filter constraints may be OR’d together

Features thanks to DynamoDB upgrades:


  • Bug fix: sometimes crash after deleting table

  • Bug fix: DynamoDB Local nose plugin fails


  • Bug fix: serializing ints fails


  • Feature: Allow access_key and secret_key to be passed to the DynamoDBConnection.connect_to_* methods


  • First public release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynamo3-1.0.0.tar.gz (37.2 kB view hashes)

Uploaded source

Built Distribution

dynamo3-1.0.0-py3-none-any.whl (39.1 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page