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