Metadata-Version: 2.0
Name: camel
Version: 0.1
Summary: Python serialization for adults
Home-page: https://github.com/eevee/camel
Author: Eevee (Lexy Munroe)
Author-email: eevee.camel@veekun.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: pyyaml

Camel
=====

Camel is a library that lets you describe how to serialize your objects to
YAML — and refuses to serialize them if you don't.

Quick example::

    from camel import Camel, CamelRegistry

    class DieRoll(tuple):
        def __new__(cls, a, b):
            return tuple.__new__(cls, [a, b])

        def __repr__(self):
            return "DieRoll(%s,%s)" % self

    reg = CamelRegistry()

    @reg.dumper(DieRoll, 'roll', version=None)
    def _dump_dice(data):
        return "{}d{}".format(*data)

    @reg.loader('roll', version=None)
    def _load_dice(data, version):
        a, _, b = data.partition('d')
        return DieRoll(int(a), int(b))

    value = DieRoll(3, 6)
    camel = Camel([reg])
    print(camel.dump(value))

    # !roll 3d6

Docs: http://camel.readthedocs.org/en/latest/

GitHub: https://github.com/eevee/camel


