Example #1
0
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')
Example #2
0
 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)