def create_enums(self, d): kfh = CKoretFuzzyHashing() kfh.bsize = 1 kfh.output_size = 8 fuzzy_hashes = {} for key in d.keys(): hash1, hash2, _ = kfh.hash_bytes(key).split(";") new_key = "%s-%s" % (hash1, hash2) if new_key in fuzzy_hashes: fuzzy_hashes[new_key].append(key) else: fuzzy_hashes[new_key] = [key] enums = {} enums[DEFAULT_ENUM] = [] for key in fuzzy_hashes: l = fuzzy_hashes[key] if len(l) == 1: continue enum_name = self.get_enum_name(l) enums[enum_name] = [] tmp = [] for element in l: tmp.append(" %s = %s, " % (element, str(d[element]))) tmp.sort() tmp.insert(0, "enum %s {" % enum_name) tmp.append("};") enums[enum_name] = "\n".join(tmp) return enums
def create_enums(self, d): kfh = CKoretFuzzyHashing() kfh.bsize = 1 kfh.output_size = 8 fuzzy_hashes = {} for key in d.keys(): hash1, hash2, _ = kfh.hash_bytes(key).split(";") new_key = "%s-%s" % (hash1, hash2) if new_key in fuzzy_hashes: fuzzy_hashes[new_key].append(key) else: fuzzy_hashes[new_key] = [key] enums = {} enums[DEFAULT_ENUM] = [] for key in fuzzy_hashes: l = fuzzy_hashes[key] if len(l) == 1: continue enum_name = self.get_enum_name(l) enums[enum_name] = [] tmp = [] for element in l: value = None if type(d[element]) is decimal.Decimal: eng_str = d[element].to_eng_string() if str(eng_str).find(".") == -1: value = "0x%08x" % long(eng_str) if value is None: value = str(d[element]) tmp.append(" %s = %s, " % (element, value)) tmp.sort() tmp.insert(0, "enum %s {" % enum_name) tmp.append("};") enums[enum_name] = "\n".join(tmp) return enums