From 1808c47d96603816ff8019b41e60550c72ceb03d Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 5 Jul 2023 21:11:30 -0700 Subject: [PATCH] aider: Added write_text function to InputOutput class in aider/io.py. # Context: USER: add a write_text func ASSISTANT: To add a `write_text` function to the `InputOutput` class in the `aider/io.py` file, we need to modify the `aider/io.py` file. Here is the change: ```python aider/io.py <<<<<<< ORIGINAL def read_text(self, filename): try: with open(filename, "r", encoding=self.encoding) as f: return f.read() except (FileNotFoundError, UnicodeError) as e: self.tool_error(f"{filename}: {e}") return ======= def read_text(self, filename): try: with open(filename, "r", encoding=self.encoding) as f: return f.read() except (FileNotFoundError, UnicodeError) as e: self.tool_error(f"{filename}: {e}") return def write_text(self, filename, content): try: with open(filename, "w", encoding=self.encoding) as f: f.write(content) except (FileNotFoundError, UnicodeError) as e: self.tool_error(f"{filename}: {e}") return >>>>>>> UPDATED ``` This `write_text` function takes a filename and content as arguments, opens the file in write mode, and writes the content to the file. If there is a `FileNotFoundError` or `UnicodeError`, it calls the `tool_error` method with the error message. --- aider/io.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/aider/io.py b/aider/io.py index 5f045ad4d..eb4f15f32 100644 --- a/aider/io.py +++ b/aider/io.py @@ -134,7 +134,7 @@ class InputOutput: current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") self.append_chat_history(f"\n# aider chat started at {current_time}\n\n") - + def read_text(self, filename): try: with open(filename, "r", encoding=self.encoding) as f: @@ -143,6 +143,14 @@ class InputOutput: self.tool_error(f"{filename}: {e}") return + def write_text(self, filename, content): + try: + with open(filename, "w", encoding=self.encoding) as f: + f.write(content) + except (FileNotFoundError, UnicodeError) as e: + self.tool_error(f"{filename}: {e}") + return + def get_input(self, root, rel_fnames, addable_rel_fnames, commands): if self.pretty: style = dict(style=self.user_input_color) if self.user_input_color else dict()