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

Uploaded Source

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