Skip to main content

Python 3 compatible library for DynamoDB

Project description

Dynamo3

Build:

build coverage

Downloads:

http://pypi.python.org/pypi/dynamo3

Source:

https://github.com/stevearc/dynamo3

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

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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file dynamo3-1.0.0.tar.gz.

File metadata

  • Download URL: dynamo3-1.0.0.tar.gz
  • Upload date:
  • Size: 37.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.6.9

File hashes

Hashes for dynamo3-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c13644c08fbad0861cd705ef84b9061ea9a9616a3c8c055fb5282d7574bd86d7
MD5 03fe58a09e04058208bb7f83d34cf656
BLAKE2b-256 ebb22c7c3bb4c12889aa6d5e8b00c34cbdf7df09839faab8ad11043ad37eda37

See more details on using hashes here.

File details

Details for the file dynamo3-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dynamo3-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 39.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.6.9

File hashes

Hashes for dynamo3-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b36ea3849bba4eb55002c2695e45e73a51422448dead5e59cadb337b68922ac4
MD5 d868a906c8335adccb123eac97d47f07
BLAKE2b-256 f5714cab36e2c51efedd331c0d6cf303a039cf1cf8b8724b024f3a1d15bd57bd

See more details on using hashes here.

Supported by

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