Metadata-Version: 1.1
Name: pynamodb
Version: 0.1.12
Summary: A Pythonic Interface to DynamoDB
Home-page: http://jlafon.io/pynamodb.html
Author: Jharrod LaFon
Author-email: jlafon@eyesopen.com
License: MIT
Description: ========
        PynamoDB
        ========
        
        .. image:: https://pypip.in/v/pynamodb/badge.png
            :target: https://pypi.python.org/pypi/pynamodb/
            :alt: Latest Version
        .. image:: https://travis-ci.org/jlafon/PynamoDB.png?branch=devel
            :target: https://travis-ci.org/jlafon/PynamoDB
        .. image:: https://coveralls.io/repos/jlafon/PynamoDB/badge.png?branch=devel
            :target: https://coveralls.io/r/jlafon/PynamoDB
        .. image:: https://pypip.in/wheel/pynamodb/badge.png
            :target: https://pypi.python.org/pypi/pynamodb/
        .. image:: https://pypip.in/license/pynamodb/badge.png
            :target: https://pypi.python.org/pypi/pynamodb/
        
        A Pythonic interface for Amazon's `DynamoDB <http://aws.amazon.com/dynamodb/>`_ that supports
        Python 2 and 3.
        
        DynamoDB is a great NoSQL service provided by Amazon, but the API is verbose.
        PynamoDB presents you with a simple, elegant API.
        
        Useful links:
        
        * See the full documentation at http://pynamodb.readthedocs.org/
        * Ask questions at `Google group <https://groups.google.com/forum/#!forum/pynamodb>`_
        * See release notes at http://pynamodb.readthedocs.org/en/latest/release_notes.html
        
        
        Basic Usage
        ^^^^^^^^^^^
        
        Create a model that describes your DynamoDB table.
        
        .. code-block:: python
        
            from pynamodb.models import Model
            from pynamodb.attributes import UnicodeAttribute
        
            class UserModel(Model):
                """
                A DynamoDB User
                """
                table_name = 'dynamodb-user'
                email = UnicodeAttribute(null=True)
                first_name = UnicodeAttribute(range_key=True)
                last_name = UnicodeAttribute(hash_key=True)
        
        Now, search your table for all users with a last name of 'Smith' and whose
        first name begins with 'J':
        
        .. code-block:: python
        
            for user in UserModel.query('Smith', first_name__begins_with='J'):
                print(user.first_name)
        
        Create a new user:
        
        .. code-block:: python
        
            user = UserModel('John', 'Denver')
            user.save()
        
        Retrieve an existing user:
        
        .. code-block:: python
        
            try:
                user = UserModel.get('John', 'Denver')
                print(user)
            except UserModel.DoesNotExist:
                print("User does not exist")
        
        Advanced Usage
        ^^^^^^^^^^^^^^
        
        Want to use indexes? No problem:
        
        .. code-block:: python
        
            from pynamodb.models import Model
            from pynamodb.indexes import GlobalSecondaryIndex, AllProjection
            from pynamodb.attributes import NumberAttribute, UnicodeAttribute
        
            class ViewIndex(GlobalSecondaryIndex):
                read_capacity_units = 2
                write_capacity_units = 1
                projection = AllProjection()
                view = NumberAttribute(default=0, hash_key=True)
        
            class TestModel(Model):
                table_name = 'TestModel'
                forum = UnicodeAttribute(hash_key=True)
                thread = UnicodeAttribute(range_key=True)
                view = NumberAttribute(default=0)
                view_index = ViewIndex()
        
        Now query the index for all items with 0 views:
        
        .. code-block:: python
        
            for item in TestModel.view_index.query(0):
                print("Item queried from index: {0}".format(item))
        
        It's really that simple.
        
        Installation::
        
            $ pip install pynamodb
        
        or install the development version::
        
            $ pip install git+https://github.com/jlafon/PynamoDB#egg=pynamodb
        
        Features
        ========
        
        * Python 3 support
        * Python 2 support
        * An ORM-like interface with query and scan filters
        * Includes the entire DynamoDB API
        * Supports both unicode and binary DynamoDB attributes
        * Support for global secondary indexes, local secondary indexes, and batch operations
        * Provides iterators for working with queries, scans, that are automatically paginated
        * Automatic pagination for bulk operations
        * Complex queries
        
        
        .. image:: https://d2weczhvl823v0.cloudfront.net/jlafon/pynamodb/trend.png
           :alt: Bitdeli badge
           :target: https://bitdeli.com/free
        
        
Keywords: python dynamodb amazon
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: License :: OSI Approved :: MIT License
