Skip to main content

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

Release files for cromlech.marshallers 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cromlech.marshallers 0.1
File Size Uploaded
cromlech.marshallers-0.1.tar.gz 9.7 kB Details

Release files / cromlech.marshallers-0.1.tar.gz

Download URL cromlech.marshallers-0.1.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1c2daec113768ece2d24c791ee477e24f4b3021e9d4d0aaff9d751a53d9358c6
BLAKE2b-256 checksum
How to use checksums
b2962c5c3991cae1299ad6d18617f77b5ff48613fe8b5b50cceeb81c1daf01bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.8

Release history Release notifications | RSS feed

This release

0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page