Skip to main content

SDK to database DynamoDB AWS.

Project description

python-dynamo

Build Status PyPi version

DynamoDB SDK AWS implementation in Python developed by AllanKT.

Description

This SDK was written to assist the development of applications that use the AWS DynamoDB service, to management CRUD operations.

Install

You can install dynamodb with pip:

  • PyPi:
pip install dynamodb

Usage

First to first, set your credentials AMI in a dict object:

credentials = {
    'region_name': '<REGION_NAME>',
    'aws_access_key_id': '<ACCESS_KEY>',
    'aws_secret_access_key': '<SECRET_KEY>'
}

Then define your tables configurations:

  • tablename: (required) Name to your table;
  • uuid: (optional) Set this field if you want it to be automatically filled with a uuid4, with its value as the name of the table's primaryKey;
  • timestamp: (optional) Set this field if you want createdAt and updateAt columns to be filled in automatically;
tables = [
    {
        'tablename': 'teste1',
        'uuid': 'id',
        'timestamp': True,
    },
    {
        'tablename': 'teste2',
        'uuid': 'my_id',
    },
    {
        'tablename': 'teste3',
    }
]

Import dynamodb in your code and create a connection with database:

from dynamodb import Dynamo

dynamo = Dynamo(credentials, tables)

Use tables

dynamo.teste1
dynamo.table['teste1']

Insert

dynamo.teste1.insert({'x': 'teste', 'y': 1, 'z': 'A'})

{
    'id': 'ac38f1...591e14d',
    'x': 'teste',
    'y': 1,
    'z': 'A',
    'updated_at': 1592697324.910402,
    'created_at': 1592697324.910402,
}

Get

d.teste1.get('ac38f1...591e14d')

{
    'id': 'ac38f1...591e14d',
    'x': 'teste',
    'y': 1,
    'z': 'A',
    'updated_at': 1592697324.910402,
    'created_at': 1592697324.910402,
}

Delete

d.teste1.delete('ac38f1...591e14d')

Batch Insert

datas = [
    {
        'x': 'teste1',
        'y': 1,
        'z': 'A',
    },
    {
        'x': 'teste2',
        'y': 2,
        'z': 'B',
    },
    {
        'x': 'teste3',
        'y': 3,
        'z': 'C',
    }
]

dynamo.table1.batch_insert(datas)

Batch_get

dynamo.table1.batch_get(['ac38f1...591e14d', '0be3f5...59104ad'])

[
    {
        'id': 'ac38f1...591e14d'
        'x': 'teste1',
        'y': 1,
        'z': 'A',
        'updated_at': 1592697324.910402,
        'created_at': 1592697324.910402,
    },
    {
        'id': '0be3f5...59104ad',
        'x': 'teste2',
        'y': 2,
        'z': 'B',
        'updated_at': 1592697324.910402,
        'created_at': 1592697324.910402,
    }
]

Batch_delete

dynamo.table1.batch_delete(['ac38f1...591e14d', '0be3f5...59104ad'])

Scan

dynamo.teste1.scan({
    'index': 'z-index', # optional
    'query': {
        'x': {
            'and': {
                'begins_with': '1'
            }
        },
        'y': {
            'and': {
                'between': [1, 2]
            }
        },
        'z': {
            'or': {
                'in': ['A', 'B']
            }
        }
    }
})
  • Operations usade:
'column_name': {
    'operator': {
        'expression_operator ': 'value'
    }
}
  • Operators:
Operator Description
and AND conditional operator
or OR conditional operator
< Less Than operator
<= Less Than or Equal To operator
> Greater than operator
>= Greater Than or Equal To operator
= Equal Than operator
!= Different conditional operator
  • Expression Operators:
Expression Operator Description
between Key between two values
in Key is contant in a list
begins_with Key begin with the value
attribute_type ???
contains ???

Implementation Details

Supported Python Versions

  • Python 3.5
  • Python 3.6
  • Python 3.7

License

python-dynamo is licensed under the Apache License version 2. See ./LICENSE.rst.

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

dynamodb-1.0.0.tar.gz (3.6 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: dynamodb-1.0.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.46.1 CPython/3.7.6

File hashes

Hashes for dynamodb-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2fd061ed1693b01f2c83ad8e1b3e1423b16bef536c0d24ea9e4ad9fd0dfc7f20
MD5 740f0b6a74136a981bbaa3bdc97f0408
BLAKE2b-256 eaf23e236cae0bb3aab00fc65fa019b5d03d55193aa905feab89eb1b048d1b05

See more details on using hashes here.

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