From ba56caf01309c50a46ff679f77fef3c2037c2a0a Mon Sep 17 00:00:00 2001 From: juk0de Date: Sat, 2 Sep 2023 08:18:41 +0200 Subject: [PATCH] chat: improved history printing --- chatmastermind/chat.py | 15 ++++++--------- tests/test_chat.py | 10 +++++----- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/chatmastermind/chat.py b/chatmastermind/chat.py index 11f1d74..e4e8ab6 100644 --- a/chatmastermind/chat.py +++ b/chatmastermind/chat.py @@ -145,27 +145,24 @@ class Chat: """ return sum(m.tokens() for m in self.messages) - def print(self, dump: bool = False, source_code_only: bool = False, - with_tags: bool = False, with_file: bool = False, + def print(self, source_code_only: bool = False, + with_tags: bool = False, with_files: bool = False, paged: bool = True) -> None: - if dump: - pp(self) - return output: list[str] = [] for message in self.messages: if source_code_only: output.extend(source_code(message.question, include_delims=True)) continue output.append('-' * terminal_width()) + if with_tags: + output.append(message.tags_str()) + if with_files: + output.append('FILE: ' + str(message.file_path)) output.append(Question.txt_header) output.append(message.question) if message.answer: output.append(Answer.txt_header) output.append(message.answer) - if with_tags: - output.append(message.tags_str()) - if with_file: - output.append('FILE: ' + str(message.file_path)) if paged: print_paged('\n'.join(output)) else: diff --git a/tests/test_chat.py b/tests/test_chat.py index 5f1fcb6..8e1ad0d 100644 --- a/tests/test_chat.py +++ b/tests/test_chat.py @@ -82,21 +82,21 @@ Answer 2 @patch('sys.stdout', new_callable=StringIO) def test_print_with_tags_and_file(self, mock_stdout: StringIO) -> None: self.chat.add_msgs([self.message1, self.message2]) - self.chat.print(paged=False, with_tags=True, with_file=True) + self.chat.print(paged=False, with_tags=True, with_files=True) expected_output = f"""{'-'*terminal_width()} +{TagLine.prefix} atag1 btag2 +FILE: 0001.txt {Question.txt_header} Question 1 {Answer.txt_header} Answer 1 -{TagLine.prefix} atag1 btag2 -FILE: 0001.txt {'-'*terminal_width()} +{TagLine.prefix} btag2 +FILE: 0002.txt {Question.txt_header} Question 2 {Answer.txt_header} Answer 2 -{TagLine.prefix} btag2 -FILE: 0002.txt """ self.assertEqual(mock_stdout.getvalue(), expected_output)