Metadata-Version: 1.1
Name: tinydb-serialization
Version: 1.0.2
Summary: Serialization for objects that TinyDB otherwise couldn't handle
Home-page: https://github.com/msiemens/tinydb
Author: Markus Siemens
Author-email: markus@m-siemens.de
License: MIT
Description: tinydb-smartcache

        ^^^^^^^^^^^^^^^^^

        

        |Build Status| |Coverage| |Version|

        

        ``tinydb-serialization`` provides serialization for objects that TinyDB

        otherwise couldn't handle.

        

        Usage

        *****

        

        Creating a Serializer

        ---------------------

        

        In this example we implement a serializer for ``datetime`` objects:

        

        .. code-block:: python

        

            from datetime import datetime

            from tinydb_serialization import Serializer

        

            class DateTimeSerializer(Serializer):

                OBJ_CLASS = datetime  # The class this serializer handles

        

                def encode(self, obj):

                    return obj.strftime('%Y-%m-%dT%H:%M:%S')

        

                def decode(self, s):

                    return datetime.strptime(s, '%Y-%m-%dT%H:%M:%S')

        

        Using a Serializer

        ------------------

        

        You can use your serializer like this:

        

        .. code-block:: python

        

            >>> from tinydb.storages import JSONStorage

            >>> from tinydb_serialization import SerializationMiddleware

            >>>

            >>> serialization = SerializationMiddleware()

            >>> serialization.register_serializer(DateTimeSerializer(), 'TinyDate')

            >>>

            >>> db = TinyDB('db.json', storage=serialization)

            >>> db.insert({'date': datetime(2000, 1, 1, 12, 0, 0)})

            >>> db.all()

            [{'date': datetime.datetime(2000, 1, 1, 12, 0)}]

        

        Changelog

        *********

        

        **v1.0.2** (2016-01-04)

        -----------------------

        

        - Dont destroy original data when serializing (see `pull request #2 <https://github.com/msiemens/tinydb-serialization/pull/2>`_)

        

        **v1.0.1** (2015-11-17)

        -----------------------

        

        - Fix installation via pip (see `issue #1 <https://github.com/msiemens/tinydb-serialization/issues/1>`_)

        

        **v1.0.0** (2015-09-27)

        -----------------------

        

        - Initial release on PyPI

        

        .. |Build Status| image:: http://img.shields.io/travis/msiemens/tinydb-serialization.svg?style=flat-square

           :target: https://travis-ci.org/msiemens/tinydb-serialization

        .. |Coverage| image:: http://img.shields.io/coveralls/msiemens/tinydb-serialization.svg?style=flat-square

           :target: https://coveralls.io/r/msiemens/tinydb-serialization

        .. |Version| image:: http://img.shields.io/pypi/v/tinydb-serialization.svg?style=flat-square

           :target: https://pypi.python.org/pypi/tinydb-serialization/

        
Keywords: database nosql
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Database
Classifier: Topic :: Database :: Database Engines/Servers
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
