Serialization for objects that TinyDB otherwise couldn't handle
Project description
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:
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:
>>> 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)
v1.0.1 (2015-11-17)
- Fix installation via pip (see issue #1)
v1.0.0 (2015-09-27)
- Initial release on PyPI
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size tinydb-serialization-1.0.2.zip (7.6 kB) | File type Source | Python version None | Upload date | Hashes View |