Skip to main content

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


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

Uploaded Source

Built Distribution

databind.binary-0.2.1-py3-none-any.whl (6.0 kB view hashes)

Uploaded Python 3

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