diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-11-13 02:20:05 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-11-13 02:20:05 +0000 |
commit | cec5bc676dfc0ade1b32f3873e93a3bd2c30e390 (patch) | |
tree | 77dc031614745bb406dbd90cea9a082a1b5cdd54 /cros_utils/tiny_render.py | |
parent | 773bb66b7b5fab0b5f14d66455274040063e14bf (diff) | |
parent | 517424dcc11380511bc34f4a081f119104ff9e80 (diff) | |
download | toolchain-utils-cec5bc676dfc0ade1b32f3873e93a3bd2c30e390.tar.gz |
Snap for 9286410 from 517424dcc11380511bc34f4a081f119104ff9e80 to udc-d1-releaseandroid-14.0.0_r9android-14.0.0_r8android-14.0.0_r7android-14.0.0_r6android-14.0.0_r5android-14.0.0_r4android-14.0.0_r3android-14.0.0_r12android-14.0.0_r11android-14.0.0_r10android14-d1-s7-releaseandroid14-d1-s6-releaseandroid14-d1-s5-releaseandroid14-d1-s4-releaseandroid14-d1-s3-releaseandroid14-d1-s2-releaseandroid14-d1-s1-releaseandroid14-d1-release
Change-Id: I0dfd9fe9a88cd3daf076b0fb77b69e3138c08e6c
Diffstat (limited to 'cros_utils/tiny_render.py')
-rw-r--r-- | cros_utils/tiny_render.py | 171 |
1 files changed, 86 insertions, 85 deletions
diff --git a/cros_utils/tiny_render.py b/cros_utils/tiny_render.py index 629e7719..6168a247 100644 --- a/cros_utils/tiny_render.py +++ b/cros_utils/tiny_render.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2020 The Chromium OS Authors. All rights reserved. +# Copyright 2020 The ChromiumOS Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -51,18 +51,18 @@ Turns into The rendering functions should never mutate your input. """ -from __future__ import print_function import collections import html import typing as t -Bold = collections.namedtuple('Bold', ['inner']) -LineBreak = collections.namedtuple('LineBreak', []) -Link = collections.namedtuple('Link', ['href', 'inner']) -UnorderedList = collections.namedtuple('UnorderedList', ['items']) + +Bold = collections.namedtuple("Bold", ["inner"]) +LineBreak = collections.namedtuple("LineBreak", []) +Link = collections.namedtuple("Link", ["href", "inner"]) +UnorderedList = collections.namedtuple("UnorderedList", ["items"]) # Outputs different data depending on whether we're emitting text or HTML. -Switch = collections.namedtuple('Switch', ['text', 'html']) +Switch = collections.namedtuple("Switch", ["text", "html"]) line_break = LineBreak() @@ -85,97 +85,98 @@ line_break = LineBreak() Piece = t.Any # pylint: disable=invalid-name -def _render_text_pieces(piece: Piece, indent_level: int, - into: t.List[str]) -> None: - """Helper for |render_text_pieces|. Accumulates strs into |into|.""" - if isinstance(piece, LineBreak): - into.append('\n' + indent_level * ' ') - return +def _render_text_pieces( + piece: Piece, indent_level: int, into: t.List[str] +) -> None: + """Helper for |render_text_pieces|. Accumulates strs into |into|.""" + if isinstance(piece, LineBreak): + into.append("\n" + indent_level * " ") + return - if isinstance(piece, str): - into.append(piece) - return + if isinstance(piece, str): + into.append(piece) + return - if isinstance(piece, Bold): - into.append('**') - _render_text_pieces(piece.inner, indent_level, into) - into.append('**') - return + if isinstance(piece, Bold): + into.append("**") + _render_text_pieces(piece.inner, indent_level, into) + into.append("**") + return - if isinstance(piece, Link): - # Don't even try; it's ugly more often than not. - _render_text_pieces(piece.inner, indent_level, into) - return + if isinstance(piece, Link): + # Don't even try; it's ugly more often than not. + _render_text_pieces(piece.inner, indent_level, into) + return - if isinstance(piece, UnorderedList): - for p in piece.items: - _render_text_pieces([line_break, '- ', p], indent_level + 2, into) - return + if isinstance(piece, UnorderedList): + for p in piece.items: + _render_text_pieces([line_break, "- ", p], indent_level + 2, into) + return - if isinstance(piece, Switch): - _render_text_pieces(piece.text, indent_level, into) - return + if isinstance(piece, Switch): + _render_text_pieces(piece.text, indent_level, into) + return - if isinstance(piece, (list, tuple)): - for p in piece: - _render_text_pieces(p, indent_level, into) - return + if isinstance(piece, (list, tuple)): + for p in piece: + _render_text_pieces(p, indent_level, into) + return - raise ValueError('Unknown piece type: %s' % type(piece)) + raise ValueError("Unknown piece type: %s" % type(piece)) def render_text_pieces(piece: Piece) -> str: - """Renders the given Pieces into text.""" - into = [] - _render_text_pieces(piece, 0, into) - return ''.join(into) + """Renders the given Pieces into text.""" + into = [] + _render_text_pieces(piece, 0, into) + return "".join(into) def _render_html_pieces(piece: Piece, into: t.List[str]) -> None: - """Helper for |render_html_pieces|. Accumulates strs into |into|.""" - if piece is line_break: - into.append('<br />\n') - return - - if isinstance(piece, str): - into.append(html.escape(piece)) - return - - if isinstance(piece, Bold): - into.append('<b>') - _render_html_pieces(piece.inner, into) - into.append('</b>') - return - - if isinstance(piece, Link): - into.append('<a href="' + piece.href + '">') - _render_html_pieces(piece.inner, into) - into.append('</a>') - return - - if isinstance(piece, UnorderedList): - into.append('<ul>\n') - for p in piece.items: - into.append('<li>') - _render_html_pieces(p, into) - into.append('</li>\n') - into.append('</ul>\n') - return - - if isinstance(piece, Switch): - _render_html_pieces(piece.html, into) - return - - if isinstance(piece, (list, tuple)): - for p in piece: - _render_html_pieces(p, into) - return - - raise ValueError('Unknown piece type: %s' % type(piece)) + """Helper for |render_html_pieces|. Accumulates strs into |into|.""" + if piece is line_break: + into.append("<br />\n") + return + + if isinstance(piece, str): + into.append(html.escape(piece)) + return + + if isinstance(piece, Bold): + into.append("<b>") + _render_html_pieces(piece.inner, into) + into.append("</b>") + return + + if isinstance(piece, Link): + into.append('<a href="' + piece.href + '">') + _render_html_pieces(piece.inner, into) + into.append("</a>") + return + + if isinstance(piece, UnorderedList): + into.append("<ul>\n") + for p in piece.items: + into.append("<li>") + _render_html_pieces(p, into) + into.append("</li>\n") + into.append("</ul>\n") + return + + if isinstance(piece, Switch): + _render_html_pieces(piece.html, into) + return + + if isinstance(piece, (list, tuple)): + for p in piece: + _render_html_pieces(p, into) + return + + raise ValueError("Unknown piece type: %s" % type(piece)) def render_html_pieces(piece: Piece) -> str: - """Renders the given Pieces into HTML.""" - into = [] - _render_html_pieces(piece, into) - return ''.join(into) + """Renders the given Pieces into HTML.""" + into = [] + _render_html_pieces(piece, into) + return "".join(into) |