Class for safely making an HTML representation of a Python object.
import re
from reprlib import Repr
from typing import Any, cast
from pydoc_fork import inline_styles
from pydoc_fork.string_utils import cram, replace, stripidClass for safely making an HTML representation of a Python object.
class HTMLRepr(Repr):Some maximums
    def __init__(self) -> None:        Repr.__init__(self)
        self.maxlist = self.maxtuple = 20
        self.maxdict = 10
        self.maxstring = self.maxother = 100pylint: disable=no-self-use Simple html escaping
    def escape(self, text: str) -> str:        result = replace(text, "&", "&", "<", "<", ">", ">")if “&” in result: print(“possible double escape”)
        return resultDelegates to Repr.repr
    def repr(self, x: Any) -> str:  # noqa - unhiding could break code?        return Repr.repr(self, x)Not sure, is dead code?
    def repr1(self, x: Any, level: int) -> str:        if hasattr(type(x), "__name__"):
            methodname = "repr_" + "_".join(type(x).__name__.split())
            if hasattr(self, methodname):
                return cast(str, getattr(self, methodname)(x, level))
        return self.escape(cram(stripid(repr(x)), self.maxother))Repr, but squash it into a window
    def repr_string(self, x: str, _: int) -> str:        test = cram(x, self.maxstring)
        test_repr = repr(test)
        if "\\" in test and "\\" not in replace(test_repr, r"\\", ""):Backslashes are only literal in the string and are never needed to make any special characters, so show a raw string.
            return "r" + test_repr[0] + self.escape(test) + test_repr[0]
        return re.sub(
            r'((\\[\\abfnrtv\'"]|\\[0-9]..|\\x..|\\u....)+)',
            f'<span style="color:{inline_styles.REPR_COLOR}">' + r"\1" + "</span>",
            self.escape(test_repr),
        )
    repr_str = repr_stringRepr, but squash it into a window
    def repr_instance(self, x: Any, level: int) -> str:        try:
            return self.escape(cram(stripid(repr(x)), self.maxstring))pylint: disable=broad-except
        except BaseException:
            return self.escape(f"<{x.__class__.__name__} instance>")
    repr_unicode = repr_string