-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trying to create a file where a directory exists causes IsADirectoryError and aider to exit #606
Comments
…directory exists. # Aider chat conversation: USER: #606 #606: [Skip to content](#start-of-content) ## Navigation Menu Toggle navigation [](https://github.com/) [Sign in](/login?return_to=https%3A%2F%2Fgithub.com%2Fpaul-gauthier%2Faider%2Fissues%2F606) - Product - [](https://github.com/features/actions) Actions Automate any workflow - [](https://github.com/features/packages) Packages Host and manage packages - [](https://github.com/features/security) Security Find and fix vulnerabilities - [](https://github.com/features/codespaces) Codespaces Instant dev environments - [](https://github.com/features/copilot) Copilot Write better code with AI - [](https://github.com/features/code-review) Code review Manage code changes - [](https://github.com/features/issues) Issues Plan and track work - [](https://github.com/features/discussions) Discussions Collaborate outside of code Explore - [All features](https://github.com/features) - [Documentation](https://docs.github.com) - [GitHub Skills](https://skills.github.com) - [Blog](https://github.blog) - Solutions For - [Enterprise](https://github.com/enterprise) - [Teams](https://github.com/team) - [Startups](https://github.com/enterprise/startups) - [Education](https://education.github.com) By Solution - [CI/CD & Automation](https://github.com/solutions/ci-cd) - [DevOps](https://github.com/solutions/devops) - [DevSecOps](https://resources.github.com/devops/fundamentals/devsecops) Resources - [Learning Pathways](https://resources.github.com/learn/pathways) - [White papers, Ebooks, Webinars](https://resources.github.com) - [Customer Stories](https://github.com/customer-stories) - [Partners](https://partner.github.com) - Open Source - [](https://github.com/sponsors) GitHub Sponsors Fund open source developers - [](https://github.com/readme) The ReadME Project GitHub community articles Repositories - [Topics](https://github.com/topics) - [Trending](https://github.com/trending) - [Collections](https://github.com/collections) - [Pricing](https://github.com/pricing) Search or jump to\... # Search code, repositories, users, issues, pull requests\... Search Clear [Search syntax tips](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax) # Provide feedback We read every piece of feedback, and take your input very seriously. Include my email address so I can be contacted Cancel Submit feedback # Saved searches ## Use saved searches to filter your results more quickly Name Query To see all available qualifiers, see our [documentation](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax). Cancel Create saved search [Sign in](/login?return_to=https%3A%2F%2Fgithub.com%2Fpaul-gauthier%2Faider%2Fissues%2F606) [Sign up](/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=paul-gauthier%2Faider) You signed in with another tab or window. [Reload]() to refresh your session. You signed out in another tab or window. [Reload]() to refresh your session. You switched accounts on another tab or window. [Reload]() to refresh your session. Dismiss alert {{ message }} ::: {role="main"} [paul-gauthier](/paul-gauthier) / **[aider](/paul-gauthier/aider)** Public - [Notifications](/login?return_to=%2Fpaul-gauthier%2Faider) - [Fork 1k](/login?return_to=%2Fpaul-gauthier%2Faider) - [ Star 10.2k](/login?return_to=%2Fpaul-gauthier%2Faider) - [Code ](/paul-gauthier/aider) - [Issues 55](/paul-gauthier/aider/issues) - [Pull requests 8](/paul-gauthier/aider/pulls) - [Actions ](/paul-gauthier/aider/actions) - [Projects 0](/paul-gauthier/aider/projects) - [Security](/paul-gauthier/aider/security) - [Insights ](/paul-gauthier/aider/pulse) Additional navigation options - [ Code ](/paul-gauthier/aider) - [ Issues ](/paul-gauthier/aider/issues) - [ Pull requests ](/paul-gauthier/aider/pulls) - [ Actions ](/paul-gauthier/aider/actions) - [ Projects ](/paul-gauthier/aider/projects) - [ Security ](/paul-gauthier/aider/security) - [ Insights ](/paul-gauthier/aider/pulse) New issue **Have a question about this project?** Sign up for a free GitHub account to open an issue and contact its maintainers and the community. [Sign up for GitHub](/signup?return_to=%2Fpaul-gauthier%2Faider%2Fissues%2Fnew%2Fchoose) By clicking "Sign up for GitHub", you agree to our [terms of service](https://docs.github.com/terms) and [privacy statement](https://docs.github.com/privacy). We'll occasionally send you account related emails. Already on GitHub? [Sign in](/login?return_to=%2Fpaul-gauthier%2Faider%2Fissues%2Fnew%2Fchoose) to your account [Jump to bottom](#issue-comment-box) # Trying to create a file where a directory exists causes IsADirectoryError and aider to exit #606 Open [harleypig](/harleypig) opened this issue May 18, 2024 · 0 comments Open # [Trying to create a file where a directory exists causes IsADirectoryError and aider to exit](#top) #606 [harleypig](/harleypig) opened this issue May 18, 2024 · 0 comments Labels [bug](/paul-gauthier/aider/labels/bug) Something isn\'t working ## Comments [](/harleypig) Copy link ### **[harleypig](/harleypig)** commented [May 18, 2024](#issue-2304113184) • edited +-----------------------------------------------------------------------+ | ### Issue | | | | I wasn\'t thinking and asked aider to create a file with the same | | name as a directory and got unexpectedly dumped back to the command | | line. | | | | | | | | $ mkdir -p testoops/oops | | $ cd testoops | | $ aider | | Aider v0.35.0 | | | | Models: openai/gpt-4o with diff edit format, weak model gpt- | | 3.5-turbo | | Git repo: .git with 0 files | | | | Repo-map: using 2048 tokens | | | | Use /help to see in-chat commands, run with --help to see cm | | d line args | | ──────────────────────────────────────────────────────────── | | ───────────────────────────────────────────────────────────────────── | | > Create a text file named './oops' that has 'this wont work | | ' | | | | Here is the SEARCH/REPLACE block to create the file ./oops w | | ith the content this wont work: | | | | ./oops | | | | | | | | <<<<<<< SEARCH | | | | ======= | | | | this wont work | | | | >>>>>>> REPLACE | | | | | | | | | | | | Allow edits to ./oops which was not previously added to chat? y | | Committing ./oops before applying edits. | | Cmd('git') failed due to: exit code(1) | | cmdline: git commit -m Add | | ed ./oops file. --no-verify -- /home/harleypig/projects/testoops/oops | | stderr: 'error: pathspec '/home/harl | | eypig/projects/testoops/oops' did not match any file(s) known to git' | | ──────────────────────────────────────────────────────────── | | ───────────────────────────────────────────────────────────────────── | | Traceback (most recent call last): | | File "/usr/local/bin/aider", line 8, in <module> | | sys.exit(main()) | | File "/home/harleypig/.local/share/ | | python/lib/python3.10/site-packages/aider/main.py", line 408, in main | | coder.run() | | File "/home/harleypig/.local/share/python/lib/p | | ython3.10/site-packages/aider/coders/base_coder.py", line 496, in run | | new_user_message = self.run_loop() | | File "/home/harleypig/.local/share/python/lib/python | | 3.10/site-packages/aider/coders/base_coder.py", line 512, in run_loop | | inp = self.io.get_input( | | File "/home/harleypig/.local/share/pyt | | hon/lib/python3.10/site-packages/aider/io.py", line 210, in get_input | | completer_instance = AutoCompleter( | | File "/home/harleypig/.local/share/p | | ython/lib/python3.10/site-packages/aider/io.py", line 47, in __init__ | | with open(fname, "r", encoding=self.encoding) as f: | | IsADirectoryError | | : [Errno 21] Is a directory: '/home/harleypig/projects/testoops/oops' | | | | | | | | | | | | | | | | ### Version and model info | | | | In example above. | +-----------------------------------------------------------------------+ | | | | | The text was updated successfully, but these errors were encountered: | | | | | +-----------------------------------------------------------------------+ All reactions [paul-gauthier](/paul-gauthier) added the [bug](/paul-gauthier/aider/labels/bug) Something isn\'t working label [May 20, 2024](#event-12868798902) [Sign up for free](/join?source=comment-repo) **to join this conversation on GitHub**. Already have an account? [Sign in to comment](/login?return_to=https%3A%2F%2Fgithub.com%2Fpaul-gauthier%2Faider%2Fissues%2F606) Assignees No one assigned Labels [bug](/paul-gauthier/aider/labels/bug) Something isn\'t working Projects None yet Milestone No milestone Development No branches or pull requests 2 participants ::: ## Footer [](https://github.com) © 2024 GitHub, Inc. ### Footer navigation - [Terms](https://docs.github.com/site-policy/github-terms/github-terms-of-service) - [Privacy](https://docs.github.com/site-policy/privacy-policies/github-privacy-statement) - [Security](https://github.com/security) - [Status](https://www.githubstatus.com/) - [Docs](https://docs.github.com/) - [Contact](https://support.github.com?tags=dotcom-footer) - Manage cookies - Do not share my personal information You can't perform that action at this time. ASSISTANT: To address the issue of `IsADirectoryError` when trying to create a file where a directory exists, we need to handle this exception in the relevant part of the code. The most likely file to need changes is `aider/io.py`. Please add `aider/io.py` to the chat so I can propose the necessary changes. USER: I added these files to the chat: aider/io.py. If you need to propose edits to other existing files not already added to the chat, you *MUST* tell the me their full path names and ask me to *add the files to the chat*. End your reply and wait for my approval. You can keep asking if you then decide you need to edit more files. ASSISTANT: To handle the `IsADirectoryError` when trying to create a file where a directory exists, we need to catch this exception and handle it appropriately in the `get_input` method of the `InputOutput` class in `aider/io.py`. Here are the changes: aider/io.py ```python <<<<<<< SEARCH try: with open(fname, "r", encoding=self.encoding) as f: content = f.read() except (FileNotFoundError, UnicodeDecodeError): continue ======= try: with open(fname, "r", encoding=self.encoding) as f: content = f.read() except (FileNotFoundError, UnicodeDecodeError, IsADirectoryError): continue >>>>>>> REPLACE ``` This change will ensure that if the code tries to open a directory as if it were a file, it will catch the `IsADirectoryError` and continue without crashing.
Aider just fixed this issue. The change is available in the main branch. You can get it by installing the latest version from github:
If you have a chance to try it, let me know if it works better for you. |
You might have a problem. Or I'm doing something weird behind the scenes.
This is the relevant line:
|
I think you might have something broken in your local python environment? |
I removed everything related to aider (including some old weirdness I pulled when first installing it last year) and installed it with pipx. As an aside, I've been meaning to convert to use pipx, so this gave me an excuse. Running |
If I clone the repo manually, I get the same error.
|
Any chance you're running an old version of git? I can clone the repo just fine. As can all the Github Actions testing jobs. I have received no other issues from users having this sort of install problem. I also only see a single v0.10.0 tag when I take a fresh clone of the repo...
|
I was using ubuntu's version (which was 2.34.1). I installed via git-core/ppa. I got the same error.
|
I could clone the repo and test the changes by doing the following. I still can't clone normally, and the previous pipx command still isn't working.
|
My apologies ... the git ref issue was a problem with my global gitconfig. Closing as the bug is fixed and working correctly. |
Issue
I wasn't thinking and asked aider to create a file with the same name as a directory and got unexpectedly dumped back to the command line.
Version and model info
In example above.
The text was updated successfully, but these errors were encountered: