From 596487b9ad70c34fcb0075f24e6031a896841c0f Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Wed, 20 Mar 2024 17:13:47 +0100 Subject: fix(agent): Windows-proof file_operations Make file_operations and test_file_operations behave more consistently between Unix and Windows --- autogpts/autogpt/autogpt/commands/file_operations.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/autogpts/autogpt/autogpt/commands/file_operations.py b/autogpts/autogpt/autogpt/commands/file_operations.py index 57cfc5986..55149216f 100644 --- a/autogpts/autogpt/autogpt/commands/file_operations.py +++ b/autogpts/autogpt/autogpt/commands/file_operations.py @@ -92,9 +92,9 @@ def is_duplicate_operation( True if the operation has already been performed on the file """ state = file_operations_state(agent.get_file_operation_lines()) - if operation == "delete" and str(file_path) not in state: + if operation == "delete" and file_path.as_posix() not in state: return True - if operation == "write" and state.get(str(file_path)) == checksum: + if operation == "write" and state.get(file_path.as_posix()) == checksum: return True return False @@ -113,11 +113,14 @@ async def log_operation( file_path: The name of the file the operation was performed on checksum: The checksum of the contents to be written """ - log_entry = f"{operation}: {file_path}" + log_entry = ( + f"{operation}: " + f"{file_path.as_posix() if isinstance(file_path, Path) else file_path}" + ) if checksum is not None: log_entry += f" #{checksum}" logger.debug(f"Logging file operation: {log_entry}") - await agent.log_file_operation(f"{log_entry}") + await agent.log_file_operation(log_entry) @command( -- cgit v1.2.3