runtimepy.codec.protocol package#
Submodules#
runtimepy.codec.protocol.base module#
A module implementing an interface to build communication protocols.
- class runtimepy.codec.protocol.base.FieldSpec(name: str, kind: type[Int8Primitive | Int16Primitive | Int32Primitive | Int64Primitive | Uint8Primitive | Uint16Primitive | Uint32Primitive | Uint64Primitive | HalfPrimitive | FloatPrimitive | DoublePrimitive | BooleanPrimitive] | str, enum: str | int | None = None, array_length: int | None = None)[source]#
Bases:
NamedTupleInformation specifying a protocol field.
- array_length: int | None#
Alias for field number 3
- asdict() Dict[str, str | int | float | bool | None | Dict[str, str | int | float | bool | None] | List[str | int | float | bool | None]][source]#
Obtain a dictionary representing this instance.
- enum: str | int | None#
Alias for field number 2
- kind: type[Int8Primitive | Int16Primitive | Int32Primitive | Int64Primitive | Uint8Primitive | Uint16Primitive | Uint32Primitive | Uint64Primitive | HalfPrimitive | FloatPrimitive | DoublePrimitive | BooleanPrimitive] | str#
Alias for field number 1
- name: str#
Alias for field number 0
- class runtimepy.codec.protocol.base.ProtocolBase(enum_registry: EnumRegistry, names: NameRegistry = None, fields: BitFieldsManager = None, build: list[int | FieldSpec | str] = None, identifier: int = 1, byte_order: ByteOrder | str | int = ByteOrder.NETWORK, serializables: dict[str, Serializable] = None)[source]#
Bases:
objectA class for defining runtime communication protocols.
- add_bit_fields(kind: type[Int8Primitive | Int16Primitive | Int32Primitive | Int64Primitive | Uint8Primitive | Uint16Primitive | Uint32Primitive | Uint64Primitive | HalfPrimitive | FloatPrimitive | DoublePrimitive | BooleanPrimitive] | str = 'uint8') Iterator[BitFields][source]#
Add a bit-fields primitive to the protocol.
- add_field(name: str, kind: type[Int8Primitive | Int16Primitive | Int32Primitive | Int64Primitive | Uint8Primitive | Uint16Primitive | Uint32Primitive | Uint64Primitive | HalfPrimitive | FloatPrimitive | DoublePrimitive | BooleanPrimitive] | str = None, enum: str | int = None, serializable: Serializable = None, track: bool = True, array_length: int = None) int[source]#
Add a new field to the protocol.
- add_serializable(name: str, serializable: Serializable, array_length: int = None) int[source]#
Add a serializable instance.
- property size: int#
Get this protocol’s size in bytes.
runtimepy.codec.protocol.json module#
A protocol extension for importing and exporting JSON.
- class runtimepy.codec.protocol.json.JsonProtocol(enum_registry: EnumRegistry, names: NameRegistry = None, fields: BitFieldsManager = None, build: list[int | FieldSpec | str] = None, identifier: int = 1, byte_order: ByteOrder | str | int = ByteOrder.NETWORK, serializables: dict[str, Serializable] = None)[source]#
Bases:
ProtocolBaseA class for defining runtime communication protocols.
- export_json(resolve_enum: bool = True) dict[str, Dict[str, str | int | float | bool | None | Dict[str, str | int | float | bool | None] | List[str | int | float | bool | None]]][source]#
Export this protocol’s data to JSON.
Module contents#
A module implementing an interface to build communication protocols.
- class runtimepy.codec.protocol.Protocol(enum_registry: EnumRegistry, names: NameRegistry = None, fields: BitFieldsManager = None, build: list[int | FieldSpec | str] = None, identifier: int = 1, byte_order: ByteOrder | str | int = ByteOrder.NETWORK, serializables: dict[str, Serializable] = None)[source]#
Bases:
JsonProtocolA class for defining runtime communication protocols.