mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-29 16:54:59 +00:00
feat: Replace wordcount with find_original_update_blocks in testsr.py
This commit is contained in:
parent
3272a2b84e
commit
7e763094b3
1 changed files with 32 additions and 13 deletions
45
testsr.py
45
testsr.py
|
@ -1,11 +1,7 @@
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
import json
|
||||||
|
from aider.coders.editblock_coder import find_original_update_blocks, DEFAULT_FENCE
|
||||||
def wordcount(text):
|
|
||||||
"""Count the number of words in the given text."""
|
|
||||||
return len(text.split())
|
|
||||||
|
|
||||||
|
|
||||||
def process_markdown(filename):
|
def process_markdown(filename):
|
||||||
try:
|
try:
|
||||||
|
@ -15,6 +11,7 @@ def process_markdown(filename):
|
||||||
# Split the content into sections based on '####' headers
|
# Split the content into sections based on '####' headers
|
||||||
sections = re.split(r"(?=####\s)", content)
|
sections = re.split(r"(?=####\s)", content)
|
||||||
|
|
||||||
|
results = []
|
||||||
for section in sections:
|
for section in sections:
|
||||||
if section.strip(): # Ignore empty sections
|
if section.strip(): # Ignore empty sections
|
||||||
# Extract the header (if present)
|
# Extract the header (if present)
|
||||||
|
@ -22,19 +19,41 @@ def process_markdown(filename):
|
||||||
# Get the content (everything after the header)
|
# Get the content (everything after the header)
|
||||||
content = "\n".join(section.split("\n")[1:]).strip()
|
content = "\n".join(section.split("\n")[1:]).strip()
|
||||||
|
|
||||||
# Count words
|
# Process the content with find_original_update_blocks
|
||||||
count = wordcount(content)
|
blocks = list(find_original_update_blocks(content, DEFAULT_FENCE))
|
||||||
|
|
||||||
print(f"{header}: {count} words")
|
# Create a dictionary for this section
|
||||||
|
section_result = {
|
||||||
|
"header": header,
|
||||||
|
"blocks": []
|
||||||
|
}
|
||||||
|
|
||||||
|
for block in blocks:
|
||||||
|
if block[0] is None: # This is a shell command block
|
||||||
|
section_result["blocks"].append({
|
||||||
|
"type": "shell",
|
||||||
|
"content": block[1]
|
||||||
|
})
|
||||||
|
else: # This is a SEARCH/REPLACE block
|
||||||
|
section_result["blocks"].append({
|
||||||
|
"type": "search_replace",
|
||||||
|
"filename": block[0],
|
||||||
|
"original": block[1],
|
||||||
|
"updated": block[2]
|
||||||
|
})
|
||||||
|
|
||||||
|
results.append(section_result)
|
||||||
|
|
||||||
|
# Output the results as JSON
|
||||||
|
print(json.dumps(results, indent=2))
|
||||||
|
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
print(f"Error: File '{filename}' not found.")
|
print(json.dumps({"error": f"File '{filename}' not found."}))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"An error occurred: {e}")
|
print(json.dumps({"error": f"An error occurred: {str(e)}"}))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if len(sys.argv) != 2:
|
if len(sys.argv) != 2:
|
||||||
print("Usage: python testsr.py <markdown_filename>")
|
print(json.dumps({"error": "Usage: python testsr.py <markdown_filename>"}))
|
||||||
else:
|
else:
|
||||||
process_markdown(sys.argv[1])
|
process_markdown(sys.argv[1])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue