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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c2daec113768ece2d24c791ee477e24f4b3021e9d4d0aaff9d751a53d9358c6 |
|
MD5 | 6da0d789535d0313c430066300ed320f |
|
BLAKE2b-256 | b2962c5c3991cae1299ad6d18617f77b5ff48613fe8b5b50cceeb81c1daf01bb |