From d39ff8f28ed4c3f90d322dd7a42b9d57648f2238 Mon Sep 17 00:00:00 2001 From: juk0de Date: Sat, 2 Sep 2023 08:42:59 +0200 Subject: [PATCH] cmm: tags completion now uses 'Message.tags_from_dir' (fixes tag completion for me) --- chatmastermind/main.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/chatmastermind/main.py b/chatmastermind/main.py index dacc7c3..b9fcf27 100755 --- a/chatmastermind/main.py +++ b/chatmastermind/main.py @@ -6,13 +6,13 @@ import yaml import sys import argcomplete import argparse -import pathlib +from pathlib import Path from .utils import terminal_width, print_tag_args, print_chat_hist, display_source_code, ChatType -from .storage import save_answers, create_chat_hist, get_tags_unique, read_file, dump_data +from .storage import save_answers, create_chat_hist, read_file, dump_data from .api_client import ai, openai_api_key, print_models from .configuration import Config from .chat import ChatDB -from .message import MessageFilter +from .message import Message, MessageFilter from itertools import zip_longest from typing import Any @@ -20,9 +20,8 @@ default_config = '.config.yaml' def tags_completer(prefix: str, parsed_args: Any, **kwargs: Any) -> list[str]: - with open(parsed_args.config, 'r') as f: - config = yaml.load(f, Loader=yaml.FullLoader) - return get_tags_unique(config, prefix) + config = Config.from_file(parsed_args.config) + return list(Message.tags_from_dir(Path(config.db), prefix=prefix)) def create_question_with_hist(args: argparse.Namespace, @@ -65,8 +64,8 @@ def tags_cmd(args: argparse.Namespace, config: Config) -> None: """ Handler for the 'tags' command. """ - chat = ChatDB.from_dir(cache_path=pathlib.Path('.'), - db_path=pathlib.Path(config.db)) + chat = ChatDB.from_dir(cache_path=Path('.'), + db_path=Path(config.db)) if args.list: tags_freq = chat.tags_frequency(args.prefix, args.contain) for tag, freq in tags_freq.items(): @@ -113,8 +112,8 @@ def hist_cmd(args: argparse.Namespace, config: Config) -> None: mfilter = MessageFilter(tags_or=args.tags, tags_and=args.atags, tags_not=args.etags) - chat = ChatDB.from_dir(pathlib.Path('.'), - pathlib.Path(config.db), + chat = ChatDB.from_dir(Path('.'), + Path(config.db), mfilter=mfilter) chat.print(args.source_code_only, args.with_tags, @@ -125,7 +124,7 @@ def print_cmd(args: argparse.Namespace, config: Config) -> None: """ Handler for the 'print' command. """ - fname = pathlib.Path(args.file) + fname = Path(args.file) if fname.suffix == '.yaml': with open(args.file, 'r') as f: data = yaml.load(f, Loader=yaml.FullLoader)