Commit graph

70 commits

Author SHA1 Message Date
Paul Gauthier
6f421ef087 aider: Added args for --model/-m and --edit-format/-e.
# Context:
USER: add args for --model/-m and --edit-format/-e
ASSISTANT: No changes are needed.
2023-06-23 15:45:45 -07:00
Paul Gauthier
3131ec2e16 aider: Added argparse for better command line argument handling.
# Context:
USER: use argparse
ASSISTANT: No changes are needed.
2023-06-23 15:45:12 -07:00
Paul Gauthier
37197819cb prettier output 2023-06-23 15:44:38 -07:00
Paul Gauthier
2bd943e42a ignore .started file 2023-06-23 15:42:00 -07:00
Paul Gauthier
50e715fb9a run pytest, cleanup 2023-06-23 15:40:14 -07:00
Paul Gauthier
b16778d0f1 run many tests 2023-06-23 15:19:41 -07:00
Paul Gauthier
1239d3e30c refac 2023-06-23 15:05:49 -07:00
Paul Gauthier
4c745c3cdd cleanup 2023-06-23 15:00:47 -07:00
Paul Gauthier
ded315a09a aider: Implemented run_tests function to execute test files and report their results.
# Context:
USER: implement `run_tests`
ASSISTANT: To implement the `run_tests` function, we will use the `subprocess` module to run the test files in the current working directory. We will search for files with "test" in their name and execute them using the `python` command. The function will return `True` if all tests pass and `False` otherwise.

Here's the updated `run_tests` function:

```python
scripts/benchmark.py
<<<<<<< ORIGINAL
def run_tests():
    # find files in the cwd with test in their name and run them
    # return true if they all pass
    pass
=======
import subprocess

def run_tests():
    test_files = [file for file in os.listdir() if "test" in file and file.endswith(".py")]
    all_tests_passed = True

    for test_file in test_files:
        result = subprocess.run(["python", test_file], capture_output=True, text=True)
        if result.returncode != 0:
            all_tests_passed = False
            print(f"Test {test_file} failed with the following output:\n{result.stderr}")

    return all_tests_passed
>>>>>>> UPDATED
```

This change will allow the `run_tests` function to execute test files and report their results.
2023-06-23 14:56:07 -07:00
Paul Gauthier
331638dd89 chdir into the temp test dir 2023-06-23 14:53:55 -07:00
Paul Gauthier
a2547d02c1 sssh 2023-06-23 14:51:57 -07:00
Paul Gauthier
e2cbc17f07 benchmark works 2023-06-23 14:49:48 -07:00
Paul Gauthier
d9b356de99 wip 2023-06-23 14:36:45 -07:00
Paul Gauthier
25312e6e2f only copy files 2023-06-23 14:07:17 -07:00
Paul Gauthier
acd85b2417 aider: Updated create_temp_repo function to remove tempdir prefix when adding files to the repository.
# Context:
USER: stderr: 'fatal: pathspec 'tmp.benchmark/yacht.py' did not match any files'
we shouldn't pass the tempdir prefix

ASSISTANT: You're right, the tempdir prefix should not be passed when adding files to the repository. Here's the updated code for the `create_temp_repo` function in the `scripts/benchmark.py` file:

```python
scripts/benchmark.py
<<<<<<< ORIGINAL
    # Add all copied files to the repo, excluding those with 'test' in the filename
    for root, _, files in os.walk(tempdir):
        for file in files:
            if "test" not in file:
                repo.git.add(os.path.join(root, file))
=======
    # Add all copied files to the repo, excluding those with 'test' in the filename
    for root, _, files in os.walk(tempdir):
        for file in files:
            if "test" not in file:
                repo.git.add(os.path.relpath(os.path.join(root, file), tempdir))
>>>>>>> UPDATED
```

This change will use `os.path.relpath` to remove the tempdir prefix when adding files to the repository.
2023-06-23 14:03:31 -07:00
Paul Gauthier
3ff798aa5b aider: Changed create_temp_repo function to include files from the docs subdir while still excluding files with test in the filename.
# Context:
USER: will that pickup the files in the docs subdir?
ASSISTANT: You're right, my previous solution doesn't handle files in the `docs` subdir. To include files from the `docs` subdir while still excluding files with `test` in the filename, you can modify the `create_temp_repo` function in the `scripts/benchmark.py` file as follows:

```python
scripts/benchmark.py
<<<<<<< ORIGINAL
    # Add all copied files to the repo, excluding those with 'test' in the filename
    for item in os.listdir(tempdir):
        if "test" not in item:
            repo.git.add(item)
=======
    # Add all copied files to the repo, excluding those with 'test' in the filename
    for root, _, files in os.walk(tempdir):
        for file in files:
            if "test" not in file:
                repo.git.add(os.path.join(root, file))
>>>>>>> UPDATED
```

This change will use `os.walk` to traverse the directory tree, including the `docs` subdir, and add files to the repository one by one, excluding those with `test` in the filename.
2023-06-23 14:02:25 -07:00
Paul Gauthier
c26079e633 aider: Added ability to exclude files with 'test' in the filename when adding files to the repo.
# Context:
USER: instead of adding all the files to the repo, add all the files except those with `test` in the filename
ASSISTANT: To exclude files with `test` in the filename, you can modify the `create_temp_repo` function in the `scripts/benchmark.py` file. Here's the updated code:

```python
scripts/benchmark.py
<<<<<<< ORIGINAL
    # Add all copied files to the repo
    repo.git.add(A=True)
=======
    # Add all copied files to the repo, excluding those with 'test' in the filename
    for item in os.listdir(tempdir):
        if "test" not in item:
            repo.git.add(item)
>>>>>>> UPDATED
```

This change will add files to the repository one by one, excluding those with `test` in the filename.
2023-06-23 14:01:55 -07:00
Paul Gauthier
6142488741 refac 2023-06-23 14:00:36 -07:00
Paul Gauthier
55fb2ffe52 aider: Added create_temp_repo function to create a temporary git repo with copied files and .docs subdir.
# Context:
USER: make a script which takes a dirname on the cmd line.
make a tempdir, copy all the files from the dirname into the tempdir
copy the .docs subdir into the tempdir, but as `docs` without the leading .
make a new git repo in the tempdir using GitPython
add all the copied files to the repo, commit with msg "initial"

ASSISTANT: I will create a new script called `create_temp_repo.py` in the `scripts` directory. This script will take a directory name as a command-line argument, create a temporary
^C KeyboardInterrupt
USER: code it in benchmark.py
ASSISTANT: First, let's import the required libraries at the beginning of `scripts/benchmark.py`:

```python
scripts/benchmark.py
<<<<<<< ORIGINAL
=======
import os
import shutil
import sys
from tempfile import TemporaryDirectory
from git import Repo
>>>>>>> UPDATED
```

Now, let's add a new function called `create_temp_repo` in `scripts/benchmark.py`:

```python
scripts/benchmark.py
<<<<<<< ORIGINAL
=======
def create_temp_repo(dirname):
    with TemporaryDirectory() as tempdir:
        # Copy all files from dirname to tempdir
        for item in os.listdir(dirname):
            s = os.path.join(dirname, item)
            d = os.path.join(tempdir, item)
            if os.path.isdir(s):
                shutil.copytree(s, d, False, None)
            else:
                shutil.copy2(s, d)

        # Copy .docs subdir to tempdir as 'docs'
        docs_src = os.path.join(dirname, ".docs")
        docs_dst = os.path.join(tempdir, "docs")
        shutil.copytree(docs_src, docs_dst, False, None)

        # Create a new git repo in tempdir
        repo = Repo.init(tempdir)

        # Add all copied files to the repo
        repo.git.add(A=True)

        # Commit with message "initial"
        repo.git.commit(m="initial")

    return tempdir
>>>>>>> UPDATED
```

Finally, let's call the `create_temp_repo` function with the command-line argument in the `__main__` block:

```python
scripts/benchmark.py
<<<<<<< ORIGINAL
=======
if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python benchmark.py <dirname>")
        sys.exit(1)

    dirname = sys.argv[1]
    temp_repo_path = create_temp_repo(dirname)
    print(f"Temporary repo created at: {temp_repo_path}")
>>>>>>> UPDATED
```

Now, you can run the script with the command `python scripts/benchmark.py <dirname>`, where `<dirname>` is the directory you want to create a temporary repo for.
2023-06-23 13:55:04 -07:00
Paul Gauthier
fb2f3ba6c2 Added new files to the git repo: scripts/benchmark.py 2023-06-23 13:50:19 -07:00