Code:
    def __repr__(self) -> str:
        return self.repr_with_highlight(None, -1)

    def repr_with_highlight(
        self, executed_list: Optional[List[str]], executed_index: int
    ) -> str:
        parts: List[str] = []

        def append_list(list: List[str]) -> None:
            length = len(list)
            if length == 0:
                parts.append("(vide)\n")
            else:
                my_highlight_index = executed_index if list is executed_list else -1
                subparts: List[str] = []
                for i in range(length):
                    subparts.append("|" if i == my_highlight_index else " ")
                    subparts.append(f"{list[i]}")
                    subparts.append("|" if i == my_highlight_index else " ")
                    subparts.append(" ")
                subparts.append("\n")
                parts.append("".join(subparts))

        parts.append("P1:   ")
        append_list(self.P1)
        parts.append("P2:   ")
        append_list(self.P2)
        parts.append("P3:   ")
        append_list(self.P3)
        parts.append("P4:   ")
        append_list(self.P4)
        return "".join(parts)
Last modified: Wednesday, 20 November 2019, 3:36 PM