Source code for pyFTS.common.tree

"""
Tree data structure
"""

from pyFTS import *
from functools import reduce
import numpy as np


[docs]class FLRGTreeNode: """ Tree node for """ def __init__(self, value): self.isRoot = False self.children = [] self.value = value
[docs] def appendChild(self, child): self.children.append(child)
[docs] def getChildren(self): for child in self.children: yield child
[docs] def paths(self, acc=[]): if len(self.children) == 0: yield [self.value] + acc for child in self.children: for leaf_path in child.paths([self.value] + acc): # these two yield leaf_path
[docs] def getStr(self, k): if self.isRoot: tmp = str(self.value) else: tmp = "\\" + ("-" * k) + str(self.value) for child in self.getChildren(): tmp = tmp + "\n" + child.getStr(k + 1) return tmp
def __str__(self): return self.getStr(0)
[docs]class FLRGTree: """Represents a FLRG set with a tree structure""" def __init__(self): self.root = FLRGTreeNode(None)
[docs]def flat(dados): for inst in dados: if isinstance(inst, (list, tuple)): x = flat(inst) for k in x: yield k else: yield inst
[docs]def build_tree_without_order(node, lags, level): if level not in lags: return for s in lags[level]: node.appendChild(FLRGTreeNode(s)) for child in node.getChildren(): build_tree_without_order(child, lags, level + 1)