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 details)

Uploaded Source

File details

Details for the file cromlech.marshallers-0.1.tar.gz.

File metadata

  • Download URL: cromlech.marshallers-0.1.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.8

File hashes

Hashes for cromlech.marshallers-0.1.tar.gz
Algorithm Hash digest
SHA256 1c2daec113768ece2d24c791ee477e24f4b3021e9d4d0aaff9d751a53d9358c6
MD5 6da0d789535d0313c430066300ed320f
BLAKE2b-256 b2962c5c3991cae1299ad6d18617f77b5ff48613fe8b5b50cceeb81c1daf01bb

See more details on using hashes here.

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