Skip to main content

A collection of data marshallers for various generic uses

Project description

cromlech.marshallers

cromlech.marshallers provides ways to convert data between Python objects and other formats.

Currently, cromlech.marshallers supports :

  • JSON (native & RapidJSON)

  • pickle (native)

  • marshal (native)

  • msgpack

  • YAML

  • BSON

Marshallers using third party libraries use conditionnal import. Check the setup.py extra_requires to include them transparently.

Examples

>>> from cromlech.marshallers import JSONMarshaller
>>> marshaller = JSONMarshaller()
>>> struct = [1, "two", 3]
>>> data = marshaller.dumps(struct)
>>> assert marshaller.loads(data) == struct

Features

Each marshaller can handle strings or bytes (according to their binary nature), streams and files.

>>> marshaller.dumps(struct)
>>> marshaller.loads(data)
>>> marshaller.dump(struct, stream)
>>> marshaller.load(stream)

File access is watched by a lock that prevents concurrency. This lock can be configured to include a comprehensive timeout.

>>> marshaller.dump_to(struct, path, timeout=2)
>>> marshaller.load_from(path, timeout=2)

In addition to that, the marshaller can be used as a decorator, in order to marshal the result of a function or method :

>>> @marshaller.wraps
... def hello():
...     return 'world'

You can read the detailed usages here

Changelog

0.1 (2020-11-27)

  • First release

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cromlech.marshallers-0.1.tar.gz (9.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page