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,
|
def print(self, source_code_only: bool = False,
|
||||||
with_metadata: bool = False,
|
with_metadata: bool = False,
|
||||||
paged: bool = True) -> None:
|
paged: bool = True,
|
||||||
|
dense: bool = False) -> None:
|
||||||
output: list[str] = []
|
output: list[str] = []
|
||||||
for message in self.messages:
|
for message in self.messages:
|
||||||
if source_code_only:
|
if source_code_only:
|
||||||
output.append(message.to_str(source_code_only=True))
|
output.append(message.to_str(source_code_only=True))
|
||||||
continue
|
continue
|
||||||
output.append(message.to_str(with_metadata))
|
output.append(message.to_str(with_metadata))
|
||||||
|
if not dense:
|
||||||
|
output.append('\n' + ('-' * terminal_width()) + '\n')
|
||||||
if paged:
|
if paged:
|
||||||
print_paged('\n'.join(output))
|
print_paged('\n'.join(output))
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -57,7 +57,9 @@ def print_chat(args: argparse.Namespace, config: Config) -> None:
|
|||||||
Path(config.db),
|
Path(config.db),
|
||||||
mfilter=mfilter)
|
mfilter=mfilter)
|
||||||
chat.print(args.source_code_only,
|
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:
|
def hist_cmd(args: argparse.Namespace, config: Config) -> None:
|
||||||
|
|||||||
@ -85,6 +85,8 @@ def create_parser() -> argparse.ArgumentParser:
|
|||||||
action='store_true')
|
action='store_true')
|
||||||
hist_cmd_parser.add_argument('-A', '--answer', help='Print only answers with given substring', metavar='SUBSTRING')
|
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('-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' command parser
|
||||||
tags_cmd_parser = cmdparser.add_parser('tags',
|
tags_cmd_parser = cmdparser.add_parser('tags',
|
||||||
|
|||||||
@ -147,7 +147,7 @@ class TestChat(TestChatBase):
|
|||||||
@patch('sys.stdout', new_callable=StringIO)
|
@patch('sys.stdout', new_callable=StringIO)
|
||||||
def test_print(self, mock_stdout: StringIO) -> None:
|
def test_print(self, mock_stdout: StringIO) -> None:
|
||||||
self.chat.msg_add([self.message1, self.message2])
|
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}
|
expected_output = f"""{Question.txt_header}
|
||||||
Question 1
|
Question 1
|
||||||
{Answer.txt_header}
|
{Answer.txt_header}
|
||||||
@ -162,7 +162,7 @@ Answer 2
|
|||||||
@patch('sys.stdout', new_callable=StringIO)
|
@patch('sys.stdout', new_callable=StringIO)
|
||||||
def test_print_with_metadata(self, mock_stdout: StringIO) -> None:
|
def test_print_with_metadata(self, mock_stdout: StringIO) -> None:
|
||||||
self.chat.msg_add([self.message1, self.message2])
|
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
|
expected_output = f"""{TagLine.prefix} atag1 btag2
|
||||||
FILE: 0001{msg_suffix}
|
FILE: 0001{msg_suffix}
|
||||||
AI: FakeAI
|
AI: FakeAI
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user