binmap

class binmap.BaseDescriptor(name='')

Bases: object

Base class for all descriptors

Parameters:name – Variable name
class binmap.BinField(name='')

Bases: binmap.BaseDescriptor

BinField descriptor tries to pack it into a struct before setting the value as a bounds checker

class binmap.BinmapDataclass(_BinmapDataclass__binarydata: dataclasses.InitVar = b'')

Bases: object

Dataclass that does the converting to and from binary data

frombytes(value: bytes)

Unpacks value to each field :param bytes value: binary string to unpack

class binmap.CalculatedField(name, function)

Bases: binmap.BinField

CalculatedField calls a function when it’s converted to bytes

Raises:AttributeError – Trying to set the value is not allowed
class binmap.ConstField(name='')

Bases: binmap.BinField

ConstField descriptor keeps it’s value

Raises:AttributeError – Since it’s a constant it raises and error when trying to set
class binmap.EnumField(name='')

Bases: binmap.BinField

EnumField descriptor uses “enum” to map to and from strings. Accepts both strings and values when setting. Only values that has a corresponding string is allowed.

class binmap.PaddingField(name='')

Bases: binmap.BaseDescriptor

PaddingField descriptor is used to “pad” data with values unused for real data

Raises:AttributeError – when trying to read, since it’s only padding.
binmap.autolength(offset: int = 0) → dataclasses.Field

Field generator function for autolength fields

Parameters:offset – offset for the lenght calculation
Returns:dataclass field
binmap.calculatedfield(function: Callable, last=False) → dataclasses.Field

Field generator function for calculated fields

Parameters:function (Callable) – function that calculates the field.
Returns:dataclass field
binmap.constant(value: Union[int, float, str]) → dataclasses.Field

Field generator function for constant elements

Parameters:value – Constant value for the field.
Returns:dataclass field
binmap.enumfield(enumclass: Union[enum.IntEnum, enum.IntFlag], default: Union[enum.IntEnum, enum.IntFlag, int] = None) → dataclasses.Field

Field generator function for enum field

Parameters:
  • enumclass (IntEnum) – Class with enums.
  • default (IntEnum) – default value
Returns:

dataclass field

binmap.padding(length: int = 1) → dataclasses.Field

Field generator function for padding elements

Parameters:lenght (int) – Number of bytes of padded field
Returns:dataclass field
binmap.stringfield(length: int = 1, default: bytes = b'') → dataclasses.Field

Field generator function for string fields.

Parameters:
  • lenght (int) – lengt of the string.
  • default (bytes) – default value of the string
  • fillchar (bytes) – char to pad the string with
Returns:

dataclass field