def pack_nlist(data, cfg): if 'nformat' in cfg: lcfg = cfg.copy() lcfg['length'] = len(data) return mergepacks([cfg['nformat'], data], pack_list(data, lcfg)) else: raise Exception('<nlist> field must have a configured nformat')
def pack(self, message): op = self.code(message.type) if op != None: pack = pack_short(op, {}) for field in self.defs[op]['fields']: packfn = self.types[field['type']][0] pack = mergepacks(pack, packfn(message.get(field['name']), field['cfg'])) return pack else: raise MessageTypeError(message.type)