def allValues(ctype):
if issubclass(ctype, IntEnum):
return list(ctype)
if issubclass(ctype, Structure):
names, types = zip(*ctype._fields)
values = [allValues(t) for t in types]
def make(vals):
obj = ctype()
for name, val in zip(names, vals):
setattr(obj, name, val)
return obj
return [make(vals) for vals in product(*values)]
# TODO: handle bounded ints via _fields
# TODO: handle arrays
raise TypeError("Unsupported type %s" % ctype)
评论列表
文章目录