diff --git a/chatmastermind/commands/question.py b/chatmastermind/commands/question.py index da77e1a..50e4e30 100644 --- a/chatmastermind/commands/question.py +++ b/chatmastermind/commands/question.py @@ -51,6 +51,29 @@ def add_file_as_code(question_parts: list[str], file: str) -> None: question_parts.append(f"```\n{content}\n```") +def create_msg_args(msg: Message, args: argparse.Namespace) -> argparse.Namespace: + """ + Takes an existing message and CLI arguments, and returns modified args based + on the members of the given message. Used e.g. when repeating messages, where + it's necessary to determine the correct AI, module and output tags to use + (either from the existing message or the given args). + """ + msg_args = args + # if AI, model or output tags have not been specified, + # use those from the original message + if (args.AI is None + or args.model is None # noqa: W503 + or args.output_tags is None): # noqa: W503 + msg_args = deepcopy(args) + if args.AI is None and msg.ai is not None: + msg_args.AI = msg.ai + if args.model is None and msg.model is not None: + msg_args.model = msg.model + if args.output_tags is None and msg.tags is not None: + msg_args.output_tags = msg.tags + return msg_args + + def create_message(chat: ChatDB, args: argparse.Namespace) -> Message: """ Create a new message from the given arguments and write it @@ -106,29 +129,6 @@ def make_request(ai: AI, chat: ChatDB, message: Message, args: argparse.Namespac print(response.tokens) -def create_msg_args(msg: Message, args: argparse.Namespace) -> argparse.Namespace: - """ - Takes an existing message and CLI arguments, and returns modified args based - on the members of the given message. Used e.g. when repeating messages, where - it's necessary to determine the correct AI, module and output tags to use - (either from the existing message or the given args). - """ - msg_args = args - # if AI, model or output tags have not been specified, - # use those from the original message - if (args.AI is None - or args.model is None # noqa: W503 - or args.output_tags is None): # noqa: W503 - msg_args = deepcopy(args) - if args.AI is None and msg.ai is not None: - msg_args.AI = msg.ai - if args.model is None and msg.model is not None: - msg_args.model = msg.model - if args.output_tags is None and msg.tags is not None: - msg_args.output_tags = msg.tags - return msg_args - - def repeat_messages(messages: list[Message], chat: ChatDB, args: argparse.Namespace, config: Config) -> None: """ Repeat the given messages using the given arguments.