configuration: minor improvements / fixes

Could not extend the subclass of 'TypedDict' the way I wanted, so I switched to 'dataclass'.
This commit is contained in:
2023-08-16 23:22:20 +02:00
parent 380b7c1b67
commit a5c91adc41
5 changed files with 80 additions and 95 deletions
+9 -9
View File
@@ -8,7 +8,7 @@ import argcomplete
import argparse
import pathlib
from .utils import terminal_width, print_tag_args, print_chat_hist, display_source_code, print_tags_frequency, ChatType
from .storage import save_answers, create_chat_hist, get_tags, get_tags_unique, read_file, read_config, write_config, dump_data
from .storage import save_answers, create_chat_hist, get_tags, get_tags_unique, read_file, dump_data
from .api_client import ai, openai_api_key, print_models
from .configuration import Config
from itertools import zip_longest
@@ -72,10 +72,10 @@ def config_cmd(args: argparse.Namespace, config: Config) -> None:
if args.list_models:
print_models()
elif args.print_model:
print(config['openai']['model'])
print(config.openai.model)
elif args.model:
config['openai']['model'] = args.model
write_config(args.config, config)
config.openai.model = args.model
config.to_file(args.config)
def ask_cmd(args: argparse.Namespace, config: Config) -> None:
@@ -83,11 +83,11 @@ def ask_cmd(args: argparse.Namespace, config: Config) -> None:
Handler for the 'ask' command.
"""
if args.max_tokens:
config['openai']['max_tokens'] = args.max_tokens
config.openai.max_tokens = args.max_tokens
if args.temperature:
config['openai']['temperature'] = args.temperature
config.openai.temperature = args.temperature
if args.model:
config['openai']['model'] = args.model
config.openai.model = args.model
chat, question, tags = create_question_with_hist(args, config)
print_chat_hist(chat, False, args.only_source_code)
otags = args.output_tags or []
@@ -225,9 +225,9 @@ def main() -> int:
parser = create_parser()
args = parser.parse_args()
command = parser.parse_args()
config = read_config(args.config)
config = Config.from_file(args.config)
openai_api_key(config['openai']['api_key'])
openai_api_key(config.openai.api_key)
command.func(command, config)