TiddlyWeb plugin to simplify the development of serializers.
A base class for TiddlyWeb to simplify the development of serializers in particular those which exchange bags, recipes and tiddlers as representations in a _generic_ format, such as JSON, XML, YAML, etc.
The simplerizer pacakge uses the dump and load objects to implement all of the known core methods for exchanging representations with TiddlyWeb resources. This contrasts with the core TiddlyWeb SerializionInterface which throws “NotImplemented” exceptions for methods not explicity defined. Both approaches may have merit, hence this being offered as a plugin.
The following simplerizer based plugin is a replacement for the core json serializer:
from simplejson import dumps, loads from tiddlywebplugins.simplerizer import Simplerization as SerializationInterface
- def init(config):
- # register the serializer content_type = “text/json” config[“extension_types”][“json”] = content_type config[“serializers”][content_type] = [__name__, “text/json; charset=UTF-8”]
- class Serialization(SerializationInterface):
“”“Access TiddlyWeb resources using the JSON representation.”“”
- def dump(self, object):
- “”“Dump a dictionary object to a JSON string.”“” return simplejson.dumps(object)
- def load(self, input_string):
- “”“Load a dictionary object from a JSON string.”“” return simplejson.loads(input_string)
To use this code install the package and add ‘tiddlywebplugins.simplerizer’ to install_requires section of setup.py for your serializer package:
install_requires = [‘setuptools’, ‘simplejson’, ‘tiddlyweb.simplerizer’, ‘tiddlyweb’],
This package is licensed under the same terms as TiddlyWeb itself.