cmm: added options '--dense' and '--no-paging' to the 'hist --print' cmd
This commit is contained in:
parent
8f56399844
commit
75823e7db8
@ -256,13 +256,16 @@ class Chat:
|
||||
|
||||
def print(self, source_code_only: bool = False,
|
||||
with_metadata: bool = False,
|
||||
paged: bool = True) -> None:
|
||||
paged: bool = True,
|
||||
dense: bool = False) -> None:
|
||||
output: list[str] = []
|
||||
for message in self.messages:
|
||||
if source_code_only:
|
||||
output.append(message.to_str(source_code_only=True))
|
||||
continue
|
||||
output.append(message.to_str(with_metadata))
|
||||
if not dense:
|
||||
output.append('\n' + ('-' * terminal_width()) + '\n')
|
||||
if paged:
|
||||
print_paged('\n'.join(output))
|
||||
else:
|
||||
|
||||
@ -57,7 +57,9 @@ def print_chat(args: argparse.Namespace, config: Config) -> None:
|
||||
Path(config.db),
|
||||
mfilter=mfilter)
|
||||
chat.print(args.source_code_only,
|
||||
args.with_metadata)
|
||||
args.with_metadata,
|
||||
paged=not args.no_paging,
|
||||
dense=args.dense)
|
||||
|
||||
|
||||
def hist_cmd(args: argparse.Namespace, config: Config) -> None:
|
||||
|
||||
@ -85,6 +85,8 @@ def create_parser() -> argparse.ArgumentParser:
|
||||
action='store_true')
|
||||
hist_cmd_parser.add_argument('-A', '--answer', help='Print only answers with given substring', metavar='SUBSTRING')
|
||||
hist_cmd_parser.add_argument('-Q', '--question', help='Print only questions with given substring', metavar='SUBSTRING')
|
||||
hist_cmd_parser.add_argument('-d', '--dense', help='Print without message separators', action='store_true')
|
||||
hist_cmd_parser.add_argument('-P', '--no-paging', help='Print without paging', action='store_true')
|
||||
|
||||
# 'tags' command parser
|
||||
tags_cmd_parser = cmdparser.add_parser('tags',
|
||||
|
||||
@ -147,7 +147,7 @@ class TestChat(TestChatBase):
|
||||
@patch('sys.stdout', new_callable=StringIO)
|
||||
def test_print(self, mock_stdout: StringIO) -> None:
|
||||
self.chat.msg_add([self.message1, self.message2])
|
||||
self.chat.print(paged=False)
|
||||
self.chat.print(paged=False, dense=True)
|
||||
expected_output = f"""{Question.txt_header}
|
||||
Question 1
|
||||
{Answer.txt_header}
|
||||
@ -162,7 +162,7 @@ Answer 2
|
||||
@patch('sys.stdout', new_callable=StringIO)
|
||||
def test_print_with_metadata(self, mock_stdout: StringIO) -> None:
|
||||
self.chat.msg_add([self.message1, self.message2])
|
||||
self.chat.print(paged=False, with_metadata=True)
|
||||
self.chat.print(paged=False, with_metadata=True, dense=True)
|
||||
expected_output = f"""{TagLine.prefix} atag1 btag2
|
||||
FILE: 0001{msg_suffix}
|
||||
AI: FakeAI
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user