From 42061359a9442e27df978ffe7e0d3719f49aac54 Mon Sep 17 00:00:00 2001
From: Steve Howell
Date: Thu, 2 Dec 2021 13:30:52 +0000
Subject: [PATCH] dead code: Kill off most of html_branches.
The code that was removed here was intended
for tooling that either never got built or
became obsolete.
---
tools/lib/html_branches.py | 96 +------------------------------
tools/tests/test_html_branches.py | 96 +------------------------------
2 files changed, 2 insertions(+), 190 deletions(-)
diff --git a/tools/lib/html_branches.py b/tools/lib/html_branches.py
index 661e008268..4eecf45324 100644
--- a/tools/lib/html_branches.py
+++ b/tools/lib/html_branches.py
@@ -1,60 +1,10 @@
import re
from collections import defaultdict
-from typing import Dict, List, Optional, Sequence, Set
+from typing import Dict, List
from .template_parser import FormattedException, Token, tokenize
-class HtmlTreeBranch:
- """
- For
bla
, store a
- representation of the tags all the way down to the leaf, which would
- conceptually be something like "p div(#yo) span(.bar)".
- """
-
- def __init__(self, tags: List["TagInfo"], fn: Optional[str]) -> None:
- self.tags = tags
- self.fn = fn
- self.line = tags[-1].token.line
-
- self.words: Set[str] = set()
- for tag in tags:
- for word in tag.words:
- self.words.add(word)
-
- def staircase_text(self) -> str:
- """
- produces representation of a node in staircase-like format:
-
- html
- body.main-section
- p#intro
-
- """
- res = "\n"
- indent = " " * 4
- for t in self.tags:
- res += indent + t.text() + "\n"
- indent += " " * 4
- return res
-
- def text(self) -> str:
- """
- produces one-line representation of branch:
-
- html body.main-section p#intro
- """
- return " ".join(t.text() for t in self.tags)
-
-
-class Node:
- def __init__(self, token: Optional[Token], parent: "Optional[Node]") -> None:
- # FIXME parent parameter is not used!
- self.token = token
- self.children: List[Node] = []
- self.parent: Optional[Node] = None
-
-
class TagInfo:
def __init__(self, tag: str, classes: List[str], ids: List[str], token: Token) -> None:
self.tag = tag
@@ -124,50 +74,6 @@ def split_for_id_and_class(element: str) -> List[str]:
return lst
-def html_branches(text: str, fn: Optional[str] = None) -> List[HtmlTreeBranch]:
- tree = html_tag_tree(text, fn)
- branches: List[HtmlTreeBranch] = []
-
- def walk(node: Node, tag_info_list: Sequence[TagInfo] = []) -> None:
- assert node.token is not None
- info = get_tag_info(node.token)
- tag_info_list = [*tag_info_list, info]
-
- if node.children:
- for child in node.children:
- walk(node=child, tag_info_list=tag_info_list)
- else:
- tree_branch = HtmlTreeBranch(tags=tag_info_list, fn=fn)
- branches.append(tree_branch)
-
- for node in tree.children:
- walk(node, [])
-
- return branches
-
-
-def html_tag_tree(text: str, fn: Optional[str] = None) -> Node:
- tokens = tokenize(text)
- top_level = Node(token=None, parent=None)
- stack = [top_level]
-
- for token in tokens:
- # Add tokens to the Node tree first (conditionally).
- if token.kind in ("html_start", "html_singleton"):
- parent = stack[-1]
- node = Node(token=token, parent=parent)
- parent.children.append(node)
-
- # Then update the stack to have the next node that
- # we will be appending to at the top.
- if token.kind == "html_start":
- stack.append(node)
- elif token.kind == "html_end":
- stack.pop()
-
- return top_level
-
-
def build_id_dict(templates: List[str]) -> (Dict[str, List[str]]):
template_id_dict: (Dict[str, List[str]]) = defaultdict(list)
diff --git a/tools/tests/test_html_branches.py b/tools/tests/test_html_branches.py
index a40314b344..b995633748 100644
--- a/tools/tests/test_html_branches.py
+++ b/tools/tests/test_html_branches.py
@@ -2,14 +2,7 @@ import os
import unittest
import tools.lib.template_parser
-from tools.lib.html_branches import (
- Node,
- build_id_dict,
- get_tag_info,
- html_branches,
- html_tag_tree,
- split_for_id_and_class,
-)
+from tools.lib.html_branches import build_id_dict, get_tag_info, split_for_id_and_class
ZULIP_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
TEST_TEMPLATES_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "test_template_data")
@@ -28,93 +21,6 @@ class TestHtmlBranches(unittest.TestCase):
self.assertEqual(end_tag_info.text(), "p")
self.assertEqual(text.s, "foo")
- def test_html_tag_tree(self) -> None:
- html = """
-
-
-
-
-
- Test
-
-
-
-
-