diff options
Diffstat (limited to 'gtkdoc/mkhtml2.py')
-rw-r--r-- | gtkdoc/mkhtml2.py | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/gtkdoc/mkhtml2.py b/gtkdoc/mkhtml2.py index 3bec6fd..1336da9 100644 --- a/gtkdoc/mkhtml2.py +++ b/gtkdoc/mkhtml2.py @@ -101,7 +101,6 @@ import os import shutil import sys -from anytree import Node, PreOrderIter from copy import deepcopy from glob import glob from lxml import etree @@ -254,6 +253,57 @@ def get_chunk_titles(module, node, tree_node): return result +class PreOrderIter: + def __init__(self, node): + self.__node = node + + def __iter__(self): + yield self.__node + + for child in self.__node.descendants: + yield child + + +class Node: + def __init__(self, name, parent=None, **kwargs): + self.name = name + self.__root = None + self.__attrs = kwargs + self.children = [] + + assert parent is None or isinstance(parent, Node) + self.parent = parent + if parent is not None: + self.__root = parent.root + parent.children.append(self) + + @property + def root(self): + return self.__root or self + + @property + def descendants(self): + ret = [] + + for child in self.children: + ret.append(child) + + for other in child.descendants: + ret.append(other) + + return ret + + def __iter__(self): + for child in self.children: + yield child + + def __getattr__(self, name): + try: + return self.__attrs[name] + except KeyError as e: + raise AttributeError(str(e)) + + def chunk(xml_node, module, depth=0, idx=0, parent=None): """Chunk the tree. |