fix getting args.root, ask feedback only on success and keyboard interrupt (not on exceptions), fix terminal width and erasing old logs

This commit is contained in:
LeonOstrez
2023-09-29 13:31:11 +01:00
parent 9a2cd09b8b
commit 4c1fe834a8
5 changed files with 18 additions and 8 deletions

View File

@@ -31,14 +31,19 @@ sensitive_fields = ['--api-key', 'password']
def filter_sensitive_fields(record):
if len(record.args):
if isinstance(record.args, dict): # check if args is a dictionary
args = record.args.copy()
for field in sensitive_fields:
if field in args:
args[field] = '*****'
record.args = args
elif isinstance(record.args, tuple): # check if args is a tuple
args_list = list(record.args)
# Convert the tuple to a list and replace sensitive fields
args_list = ['*****' if arg in sensitive_fields else arg for arg in args_list]
record.args = tuple(args_list)
return record.levelno <= logging.INFO

View File

@@ -91,6 +91,6 @@ if __name__ == "__main__":
print(red('---------- GPT PILOT EXITING WITH ERROR ----------'))
traceback.print_exc()
print(red('--------------------------------------------------'))
exit_gpt_pilot()
exit_gpt_pilot(False)
finally:
sys.exit(0)

View File

@@ -42,10 +42,12 @@ def get_path_id():
return hashlib.sha256(installation_directory.encode()).hexdigest()
def exit_gpt_pilot():
def exit_gpt_pilot(ask_feedback=True):
path_id = get_path_id()
send_telemetry(path_id)
feedback = get_user_feedback()
feedback = None
if ask_feedback:
feedback = get_user_feedback()
if feedback: # only send if user provided feedback
send_feedback(feedback, path_id)

View File

@@ -20,7 +20,7 @@ def setup_workspace(args):
return args['workspace']
root = args['root'] or get_parent_folder('pilot')
root = args.get('root') or get_parent_folder('pilot')
create_directory(root, 'workspace')
project_path = create_directory(os.path.join(root, 'workspace'), args['name'])
create_directory(project_path, 'tests')

View File

@@ -200,7 +200,10 @@ def stream_gpt_completion(data, req_type):
"""
# TODO add type dynamically - this isn't working when connected to the external process
terminal_width = 50 # os.get_terminal_size().columns
try:
terminal_width = os.get_terminal_size().columns
except OSError:
terminal_width = 50
lines_printed = 2
gpt_response = ''
buffer = '' # A buffer to accumulate incoming data