from typing import Any from pydantic import BaseModel class DataPacket(BaseModel): """Data packet abstract class.""" payload: Any = None """Payload content of the packet.""" packet_payload_size: float = 0 """Size of the packet.""" def get_packet_size(self) -> float: """Returns the size of the packet header and payload.""" return self.packet_payload_size + float(len(self.model_dump_json().encode("utf-8")))