mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-21 12:55:00 +00:00

# 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.
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
import os
|
|
import shutil
|
|
import sys
|
|
from tempfile import TemporaryDirectory
|
|
|
|
from git import Repo
|
|
|
|
|
|
def create_temp_repo(dirname, 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, 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))
|
|
|
|
# Commit with message "initial"
|
|
repo.git.commit(m="initial")
|
|
|
|
|
|
def main(tempdir):
|
|
if len(sys.argv) != 2:
|
|
print("Usage: python benchmark.py <dirname>")
|
|
sys.exit(1)
|
|
|
|
dirname = sys.argv[1]
|
|
|
|
create_temp_repo(dirname, tempdir)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# with TemporaryDirectory() as tempdir:
|
|
tempdir = "tmp.benchmark"
|
|
main(tempdir)
|