Moved entry functional calls to main and got rid of global config variable
This commit is contained in:
@@ -83,7 +83,7 @@ def get_os_friendly_name():
|
|||||||
else:
|
else:
|
||||||
return os_name
|
return os_name
|
||||||
|
|
||||||
def set_api_key():
|
def set_api_key(config):
|
||||||
"""
|
"""
|
||||||
Set the OpenAI API key.
|
Set the OpenAI API key.
|
||||||
"""
|
"""
|
||||||
@@ -107,35 +107,7 @@ def set_api_key():
|
|||||||
if not openai.api_key:
|
if not openai.api_key:
|
||||||
openai.api_key = config["openai_api_key"]
|
openai.api_key = config["openai_api_key"]
|
||||||
|
|
||||||
if __name__ == "__main__":
|
def call_open_ai(config, shell, query):
|
||||||
config = read_config()
|
|
||||||
set_api_key()
|
|
||||||
|
|
||||||
# Unix based SHELL (/bin/bash, /bin/zsh), otherwise assuming it's Windows
|
|
||||||
shell = os.environ.get("SHELL", "powershell.exe")
|
|
||||||
|
|
||||||
command_start_idx = 1 # Question starts at which argv index?
|
|
||||||
ask_flag = False # safety switch -a command line argument
|
|
||||||
yolo = "" # user's answer to safety switch (-a) question y/n
|
|
||||||
|
|
||||||
# Parse arguments and make sure we have at least a single word
|
|
||||||
if len(sys.argv) < 2:
|
|
||||||
print_usage()
|
|
||||||
sys.exit(-1)
|
|
||||||
|
|
||||||
# Safety switch via argument -a (local override of global setting)
|
|
||||||
# Force Y/n questions before running the command
|
|
||||||
if sys.argv[1] == "-a":
|
|
||||||
ask_flag = True
|
|
||||||
command_start_idx = 2
|
|
||||||
|
|
||||||
# To allow easy/natural use we don't require the input to be a
|
|
||||||
# single string. So, the user can just type yolo what is my name?
|
|
||||||
# without having to put the question between ''
|
|
||||||
arguments = sys.argv[command_start_idx:]
|
|
||||||
user_prompt = " ".join(arguments)
|
|
||||||
|
|
||||||
def call_open_ai(query):
|
|
||||||
"""
|
"""
|
||||||
Do we have a prompt from the user?
|
Do we have a prompt from the user?
|
||||||
"""
|
"""
|
||||||
@@ -187,7 +159,7 @@ def missing_posix_display():
|
|||||||
display = subprocess.check_output("echo $DISPLAY", shell=True)
|
display = subprocess.check_output("echo $DISPLAY", shell=True)
|
||||||
return display == b'\n'
|
return display == b'\n'
|
||||||
|
|
||||||
def prompt_user_input(response):
|
def prompt_user_input(config, response):
|
||||||
"""
|
"""
|
||||||
Todo
|
Todo
|
||||||
"""
|
"""
|
||||||
@@ -237,14 +209,40 @@ def main():
|
|||||||
"""
|
"""
|
||||||
Defined starting point of source code.
|
Defined starting point of source code.
|
||||||
"""
|
"""
|
||||||
|
config = read_config()
|
||||||
|
set_api_key(config)
|
||||||
|
|
||||||
|
# Unix based SHELL (/bin/bash, /bin/zsh), otherwise assuming it's Windows
|
||||||
|
shell = os.environ.get("SHELL", "powershell.exe")
|
||||||
|
|
||||||
|
command_start_idx = 1 # Question starts at which argv index?
|
||||||
|
ask_flag = False # safety switch -a command line argument
|
||||||
|
yolo = "" # user's answer to safety switch (-a) question y/n
|
||||||
|
|
||||||
|
# Parse arguments and make sure we have at least a single word
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print_usage()
|
||||||
|
sys.exit(-1)
|
||||||
|
|
||||||
|
# Safety switch via argument -a (local override of global setting)
|
||||||
|
# Force Y/n questions before running the command
|
||||||
|
if sys.argv[1] == "-a":
|
||||||
|
ask_flag = True
|
||||||
|
command_start_idx = 2
|
||||||
|
|
||||||
|
# To allow easy/natural use we don't require the input to be a
|
||||||
|
# single string. So, the user can just type yolo what is my name?
|
||||||
|
# without having to put the question between ''
|
||||||
|
arguments = sys.argv[command_start_idx:]
|
||||||
|
user_prompt = " ".join(arguments)
|
||||||
|
|
||||||
#Enable color output on Windows using colorama
|
#Enable color output on Windows using colorama
|
||||||
init()
|
init()
|
||||||
|
|
||||||
res_command = call_open_ai(user_prompt)
|
res_command = call_open_ai(config, shell, user_prompt)
|
||||||
check_for_issue(res_command)
|
check_for_issue(res_command)
|
||||||
check_for_markdown(res_command)
|
check_for_markdown(res_command)
|
||||||
user_input = prompt_user_input(res_command)
|
user_input = prompt_user_input(config, res_command)
|
||||||
print()
|
print()
|
||||||
evaluate_input(user_input, res_command)
|
evaluate_input(user_input, res_command)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user