示例#1
0
 def divert(self, index, candidates):
     out = []
     for candidate in candidates:
         cls, name, bases, dct, fields = candidate
         cond1 = [f for f in fields if f.fname == "cond1"]
         assert len(cond1) == 1
         cond1 = cond1.pop()
         mm = self.mn_mod[cond1.value]
         for value, new_name in enumerate(mm):
             nfields = fields[:]
             s = cpu.int2bin(value, self.args["l"])
             args = dict(self.args)
             args.update({"strbits": s})
             f = cpu.bs(**args)
             nfields[index] = f
             ndct = dict(dct)
             ndct["name"] = name + new_name
             out.append((cls, new_name, bases, ndct, nfields))
     return out
示例#2
0
 def divert(self, index, candidates):
     out = []
     for candidate in candidates:
         cls, name, bases, dct, fields = candidate
         cond1 = [f for f in fields if f.fname == "cond1"]
         assert(len(cond1) == 1)
         cond1 = cond1.pop()
         mm = self.mn_mod[cond1.value]
         for value, new_name in enumerate(mm):
             nfields = fields[:]
             s = cpu.int2bin(value, self.args['l'])
             args = dict(self.args)
             args.update({'strbits': s})
             f = cpu.bs(**args)
             nfields[index] = f
             ndct = dict(dct)
             ndct['name'] = name + new_name
             out.append((cls, new_name, bases, ndct, nfields))
     return out