Dynamo3
=======
:Build: |build|_ |coverage|_
:Downloads: http://pypi.python.org/pypi/dynamo3
:Source: https://github.com/stevearc/dynamo3
.. |build| image:: https://travis-ci.org/stevearc/dynamo3.png?branch=master
.. _build: https://travis-ci.org/stevearc/dynamo3
.. |coverage| image:: https://coveralls.io/repos/stevearc/dynamo3/badge.png?branch=master
.. _coverage: https://coveralls.io/r/stevearc/dynamo3?branch=master
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.
Features
--------
* 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 ``DynamoDBConnection.call``,
though you may prefer to go straight to boto3/botocore.
Changelog
=========
1.0.0
-----
* 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
0.4.10
------
* Fixed DynamoDB Local link in testing framework
0.4.9
-----
* Feature: Result objects from get_item have an ``exists`` flag
* Feature: ``wait`` keyword for create and delete table
0.4.8
-----
* Bug fix: Scans/Queries could return incomplete results if AWS returned an empty Items list
0.4.7
-----
* New ``RateLimit`` class to avoid blowing through your provisioned throughput
0.4.6
-----
* New ``Limit`` class for more complex query limit behavior
* Bug fix: Scan and Query with ``Select='COUNT'`` will page results properly
0.4.5
-----
* batch_get supports ``alias`` arg for ExpressionAttributeNames
0.4.4
-----
* Make connection stateless again. Puts consumed_capacity into response object and fixes mystery crash.
0.4.3
-----
* 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
0.4.2
-----
* 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.
0.4.1
-----
* 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.
0.4.0
-----
* Migrating to botocore client API since services will be deprecated soon
0.3.2
-----
* Bug fix: Serialization of blobs broken with botocore 0.85.0
0.3.1
-----
* Bug fix: Crash when parsing description of table being deleted
0.3.0
-----
* **Breakage**: Dropping support for python 3.2 due to lack of botocore support
* Feature: Support JSON document data types
Features thanks to DynamoDB upgrades: https://aws.amazon.com/blogs/aws/dynamodb-update-json-and-more/
0.2.2
-----
* Tweak: Nose plugin allows setting region when connecting to DynamoDB Local
0.2.1
-----
* Feature: New, unified ``connect`` method
0.2.0
-----
* 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: http://aws.amazon.com/blogs/aws/improved-queries-and-updates-for-dynamodb/
0.1.3
-----
* Bug fix: sometimes crash after deleting table
* Bug fix: DynamoDB Local nose plugin fails
0.1.2
-----
* Bug fix: serializing ints fails
0.1.1
-----
* Feature: Allow ``access_key`` and ``secret_key`` to be passed to the ``DynamoDBConnection.connect_to_*`` methods
0.1.0
-----
* First public release