Bind object-oriented data models to binary data encoded with the struct module.
Project description
databind.binary
Databind is a library inspired by Jackson-databind to describe and bind data models for
object-oriented programming. The databind.binary
package implements conversion of data
models between Python and binary format (using the struct
module).
Todo
- Support (efficient) unpacking of nested structs
Quickstart
from databind.binary import to_bytes, calc_size, cstr, u32
from databind.core import datamodel, field
@datamodel
class RiffChunk:
""" RIFF-WAVE chunk header. """
chunk_id: cstr = field(default=b'RIFF', metadata={'size': 4})
chunk_size: u32
riff_type: cstr = field(default=b'WAVE', metadata={'size': 4})
assert calc_size(RiffChunk) == 12
assert to_bytes(RiffChunk(chunk_size=16442)) == b'RIFF:@\x00\x00WAVE'
Copyright © 2020 – Niklas Rosenstein
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
databind.binary-0.2.1.tar.gz
(5.0 kB
view details)
Built Distribution
File details
Details for the file databind.binary-0.2.1.tar.gz
.
File metadata
- Download URL: databind.binary-0.2.1.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13f15176764c024734da0ca34601c611fefefb8877a3052df25c122fc809988b |
|
MD5 | a2026beb870a975b39260d2bc9ce9156 |
|
BLAKE2b-256 | 04e350f2bff80604df27156afbf7f92dcababa6d5cdc9290ad26cc859399fb2f |
File details
Details for the file databind.binary-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: databind.binary-0.2.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5be3549603880c56630b1a62588c5ee6dcf2412c66b91d7bbac381c1706913d |
|
MD5 | 2c820fd3894f41d047cf2432d43856d8 |
|
BLAKE2b-256 | 414551e1d1918b302d38d4ca6827ad38a318b467cd41de219746f9123627ad28 |