3 Commits

Author SHA1 Message Date
Oleksandr Kozachuk 3ef1339cc0 Fix extracting source file with type specification. 2023-09-09 11:53:32 +02:00
Oleksandr Kozachuk ed567afbea Make it possible to print just question or answer on printing files. 2023-09-08 15:54:29 +02:00
Oleksandr Kozachuk 6e447018d5 Fix tags_completter. 2023-09-07 18:11:32 +02:00
2 changed files with 12 additions and 6 deletions
+9 -4
View File
@@ -18,8 +18,7 @@ default_config = '.config.yaml'
def tags_completer(prefix: str, parsed_args: Any, **kwargs: Any) -> list[str]: def tags_completer(prefix: str, parsed_args: Any, **kwargs: Any) -> list[str]:
with open(parsed_args.config, 'r') as f: config = Config.from_file(parsed_args.config)
config = yaml.load(f, Loader=yaml.FullLoader)
return get_tags_unique(config, prefix) return get_tags_unique(config, prefix)
@@ -126,6 +125,10 @@ def print_cmd(args: argparse.Namespace, config: Config) -> None:
sys.exit(1) sys.exit(1)
if args.only_source_code: if args.only_source_code:
display_source_code(data['answer']) display_source_code(data['answer'])
elif args.answer:
print(data['answer'].strip())
elif args.question:
print(data['question'].strip())
else: else:
print(dump_data(data).strip()) print(dump_data(data).strip())
@@ -214,8 +217,10 @@ def create_parser() -> argparse.ArgumentParser:
aliases=['p']) aliases=['p'])
print_cmd_parser.set_defaults(func=print_cmd) print_cmd_parser.set_defaults(func=print_cmd)
print_cmd_parser.add_argument('-f', '--file', help='File to print', required=True) print_cmd_parser.add_argument('-f', '--file', help='File to print', required=True)
print_cmd_parser.add_argument('-S', '--only-source-code', help='Print only source code', print_cmd_modes = print_cmd_parser.add_mutually_exclusive_group()
action='store_true') print_cmd_modes.add_argument('-q', '--question', help='Print only question', action='store_true')
print_cmd_modes.add_argument('-a', '--answer', help='Print only answer', action='store_true')
print_cmd_modes.add_argument('-S', '--only-source-code', help='Print only source code', action='store_true')
argcomplete.autocomplete(parser) argcomplete.autocomplete(parser)
return parser return parser
+3 -2
View File
@@ -55,9 +55,10 @@ def message_to_chat(message: dict[str, str],
def display_source_code(content: str) -> None: def display_source_code(content: str) -> None:
try: try:
content_start = content.index('```') content_start = content.index('```')
content_start = content.index('\n', content_start) + 1
content_end = content.rindex('```') content_end = content.rindex('```')
if content_start + 3 < content_end: if content_start < content_end:
print(content[content_start + 3:content_end].strip()) print(content[content_start:content_end].strip())
except ValueError: except ValueError:
pass pass