class DrawerNode: def __init__(self): self.children = [] def append(self, child): self.children.append(child) class PropertyDrawerNode(DrawerNode): def __repr__(self): return "".format(len(self.children)) class LogbookDrawerNode(DrawerNode): def __repr__(self): return "".format(len(self.children)) class ResultsDrawerNode(DrawerNode): def __repr__(self): return "".format(len(self.children)) class PropertyNode: def __init__(self, key, value): self.key = key self.value = value def __repr__(self): return "{{{}: {}}".format(self.key, self.value) class ListGroupNode: def __init__(self): self.children = [] def append(self, child): self.children.append(child) def get_raw(self): return '\n'.join([c.get_raw() for c in self.children]) def __repr__(self): return "".format(len(self.children)) class TableNode: def __init__(self): self.children = [] def append(self, child): self.children.append(child) def __repr__(self): return "".format(len(self.children)) class TableSeparatorRow: def __init__(self, orig=None): self.orig = orig class TableRow: def __init__(self, cells, orig=None): self.cells = cells self.orig = orig class Text: def __init__(self, content): self.content = content def get_raw(self): return ''.join(self.content.get_raw()) class ListItem: def __init__(self, tag, content, orig=None): self.tag = tag self.content = content self.orig = orig def get_raw(self): return get_raw_contents(self.orig) class BlockNode: def __init__(self): self.children = [] def append(self, child): self.children.append(child) class CodeBlock(BlockNode): def __init__(self, header, subtype, arguments): super().__init__() self.header = header self.lines = None self.subtype = subtype self.arguments = arguments def set_lines(self, lines): self.lines = lines def __repr__(self): return "".format(len(self.lines)) from .utils import get_raw_contents