From 1d1a8887d49db5339aa3cb917f860452b7ffb7b2 Mon Sep 17 00:00:00 2001 From: Martin Bielik Date: Mon, 10 Apr 2023 12:19:49 +0200 Subject: improved error handling --- py/chat.py | 39 +++++++++++++++++++++------------------ py/utils.py | 2 ++ 2 files changed, 23 insertions(+), 18 deletions(-) (limited to 'py') diff --git a/py/chat.py b/py/chat.py index 2983701..0e3245f 100644 --- a/py/chat.py +++ b/py/chat.py @@ -30,24 +30,27 @@ def initialize_chat_window(): vim.command("redraw") def parse_chat_header_options(): - options = {} - lines = vim.eval('getline(1, "$")') - contains_chat_options = '[chat-options]' in lines - if contains_chat_options: - # parse options that are defined in the chat header - options_index = lines.index('[chat-options]') - for line in lines[options_index + 1:]: - if line.startswith('#'): - # ignore comments - continue - if line == '': - # stop at the end of the region - break - (key, value) = line.strip().split('=') - if key == 'initial_prompt': - value = value.split('\\n') - options[key] = value - return options + try: + options = {} + lines = vim.eval('getline(1, "$")') + contains_chat_options = '[chat-options]' in lines + if contains_chat_options: + # parse options that are defined in the chat header + options_index = lines.index('[chat-options]') + for line in lines[options_index + 1:]: + if line.startswith('#'): + # ignore comments + continue + if line == '': + # stop at the end of the region + break + (key, value) = line.strip().split('=') + if key == 'initial_prompt': + value = value.split('\\n') + options[key] = value + return options + except: + raise Exception("Invalid [chat-options]") initialize_chat_window() diff --git a/py/utils.py b/py/utils.py index dee7d42..2291a26 100644 --- a/py/utils.py +++ b/py/utils.py @@ -9,6 +9,8 @@ def load_api_key(): api_key = file.read() except Exception: pass + if not api_key: + raise Exception("Missing OpenAI API key") return api_key.strip() def make_request_options(options): -- cgit v1.2.3