#!/usr/bin/env python from typing import Union class CtrlMessage: pass class GameMessage: pass class SysMessage: pass class PacketFlags7(): CONTROL = False RESEND = False COMPRESSION = False CONNLESS = False class PacketFlags6(): TOKEN = False CONTROL = False RESEND = False COMPRESSION = False CONNLESS = False class Header: def __init__(self) -> None: self.flags: PacketFlags7 = PacketFlags7() self.size: int = 0 self.seq: int = 0 # TODO: seq or ack? self.token: bytes = b'\xff\xff\xff\xff' self.num_chunks: int = 0 class TwPacket: def __init__(self) -> None: self.header: Header = Header() self.messages: list[Union[CtrlMessage, GameMessage, SysMessage]] = [] self.messages.append(GameMessage()) def __str__(self): return str(self.__class__) + ": " + str(self.__dict__) pck = TwPacket() print(pck)