def read_tree_file(treename, name): """read tree data from treename """ leaf_to_path = {} att_tree = {} postfix = ".txt" treefile = open('gh/' + treename + postfix, 'rU') att_tree['*'] = GenTree('*') if __DEBUG: print "Reading Tree" + treename for line in treefile: # delete \n if len(line) <= 1: break line = line.strip() temp = line.split(';') # copy temp temp.reverse() for i, t in enumerate(temp): isleaf = False if i == len(temp) - 1: isleaf = True # try and except is more efficient than 'in' try: att_tree[t] except: att_tree[t] = GenTree(t, att_tree[temp[i - 1]], isleaf) if __DEBUG: print "Nodes No. = %d" % att_tree['*'].support treefile.close() return att_tree
def read_tree_file(treename): """read tree data from treename """ leaf_to_path = {} att_tree = {} prefix = 'data/informs_' postfix = ".txt" treefile = open(prefix + treename + postfix, 'rU') att_tree['*'] = GenTree('*') if __DEBUG: print "Reading Tree" + treename for line in treefile: # delete \n if len(line) <= 1: break line = line.strip() temp = line.split(';') # copy temp temp.reverse() for i, t in enumerate(temp): isleaf = False if i == len(temp) - 1: isleaf = True if t not in att_tree: # always satisfy att_tree[t] = GenTree(t, att_tree[temp[i - 1]], isleaf) if __DEBUG: print "Nodes No. = %d" % att_tree['*'].support treefile.close() return att_tree
def read_tree_file(tree_name): """read tree data from tree_name """ leaf_to_path = {} att_tree = {} prefix = 'data/adult_' postfix = ".txt" tree_file = open(prefix + tree_name + postfix, 'rU') att_tree['*'] = GenTree('*') if __DEBUG: print "Reading Tree" + tree_name for line in tree_file: # delete \n if len(line) <= 1: break line = line.strip() levels = line.split(';') # copy levels levels.reverse() for level, level_value in enumerate(levels): is_leaf = False if level == len(levels) - 1: is_leaf = True # try and except is more efficient than 'in' if level_value not in att_tree: att_tree[level_value] = GenTree(level_value, att_tree[levels[level - 1]], is_leaf) if __DEBUG: print "Nodes No. = %d" % att_tree['*'].support tree_file.close() return att_tree
def init(): global ATT_TREE ATT_TREE = [] tree_temp = {} tree = GenTree('*') tree_temp['*'] = tree lt = GenTree('1,5', tree) tree_temp['1,5'] = lt rt = GenTree('6,10', tree) tree_temp['6,10'] = rt for i in range(1, 11): if i <= 5: t = GenTree(str(i), lt, True) else: t = GenTree(str(i), rt, True) tree_temp[str(i)] = t numrange = NumRange(['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], dict()) ATT_TREE.append(tree_temp) ATT_TREE.append(numrange)
def init_tree(): global ATT_TREE ATT_TREE = {} root = GenTree('*') ATT_TREE['*'] = root lt = GenTree('A', root) ATT_TREE['A'] = lt ATT_TREE['a1'] = GenTree('a1', lt, True) ATT_TREE['a2'] = GenTree('a2', lt, True) rt = GenTree('B', root) ATT_TREE['B'] = rt ATT_TREE['b1'] = GenTree('b1', rt, True) ATT_TREE['b2'] = GenTree('b2', rt, True)
def init_tree(): global ATT_TREE, NUM_RANGE ATT_TREE = {} root = GenTree('*') ATT_TREE['*'] = root lt = GenTree('A', root) ATT_TREE['A'] = lt ATT_TREE['a1'] = GenTree('a1', lt, True) ATT_TREE['a2'] = GenTree('a2', lt, True) rt = GenTree('B', root) ATT_TREE['B'] = rt ATT_TREE['b1'] = GenTree('b1', rt, True) ATT_TREE['b2'] = GenTree('b2', rt, True) NUM_RANGE = NumRange(['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], dict())
import unittest from top_down_greedy_anonymization import Top_Down_Greedy_Anonymization, Partition from utils.read_data import read_data, read_tree from models.gentree import GenTree from models.numrange import NumRange from utils.utility import cmp_str, get_num_list_from_str import random GL_K = 10 ROUNDS = 3 QI_LEN = 5 QI_RANGE = [10, 10, 10, 10, 9] # Build a GenTree object TREE_TEMP = {} tree = GenTree('*') TREE_TEMP['*'] = tree lt = GenTree('1,5', tree) TREE_TEMP['1,5'] = lt rt = GenTree('6,10', tree) TREE_TEMP['6,10'] = rt for i in range(1, 11): if i <= 5: t = GenTree(str(i), lt, True) else: t = GenTree(str(i), rt, True) TREE_TEMP[str(i)] = t ATT_TREES = [ TREE_TEMP, TREE_TEMP, TREE_TEMP, TREE_TEMP, NumRange([str(t) for t in range(1, 11)], dict()) ]