def on_frame(self): if not self.c_reader.data_available(): return datagram = NetDatagram() if not self.c_reader.get_data(datagram): return _iter = PyDatagramIterator(datagram) meths = { 'B': _iter.get_bool, 'I': _iter.get_int64, 'F': _iter.get_float64, 'S': _iter.get_string } msg = [meths[c]() for c in _iter.get_string()] self.reader_cb(msg, datagram.get_connection())