74 lines
2.1 KiB
Bash
74 lines
2.1 KiB
Bash
#!/bin/bash
|
|
cd /home/dev/rmi/backend
|
|
|
|
echo "=== Step 1: Auto-fix with ruff ==="
|
|
ruff check app/ --fix --unsafe-fixes
|
|
|
|
echo "=== Step 2: Count remaining errors ==="
|
|
ruff check app/ 2>&1 | grep "Found" | tail -1
|
|
|
|
echo "=== Step 3: Fix B904 (raise from None) ==="
|
|
# Find files with B904 and add 'from None' to raise statements
|
|
python3 -c "
|
|
import re
|
|
import os
|
|
|
|
result = os.popen('ruff check app/ 2>&1').read()
|
|
|
|
# Find files with B904
|
|
b904_files = set()
|
|
lines = result.split('\n')
|
|
current_file = None
|
|
for i, line in enumerate(lines):
|
|
file_match = re.search(r' -->\s*(app/[^:]+):', line)
|
|
if file_match:
|
|
current_file = file_match.group(1)
|
|
if 'B904' in line and current_file:
|
|
b904_files.add(current_file)
|
|
|
|
print(f'Files with B904: {len(b904_files)}')
|
|
|
|
count = 0
|
|
for filepath in b904_files:
|
|
if not os.path.exists(filepath):
|
|
continue
|
|
try:
|
|
with open(filepath, 'r') as f:
|
|
lines = f.readlines()
|
|
|
|
new_lines = []
|
|
i = 0
|
|
while i < len(lines):
|
|
line = lines[i]
|
|
new_lines.append(line)
|
|
|
|
# Check if this line ends 'except' (no 'as')
|
|
if re.match(r'^\s*except\s*:$', line):
|
|
# Look ahead for raise within next 5 lines
|
|
j = i + 1
|
|
while j < min(i + 6, len(lines)):
|
|
if 'raise ' in lines[j] and ' from ' not in lines[j]:
|
|
indent = len(lines[j]) - len(lines[j].lstrip())
|
|
new_lines.append(' ' * indent + 'from None\n')
|
|
break
|
|
new_lines.append(lines[j])
|
|
if 'raise' in lines[j]:
|
|
break
|
|
j += 1
|
|
i = j + 1
|
|
else:
|
|
i += 1
|
|
|
|
if new_lines != lines:
|
|
with open(filepath, 'w') as f:
|
|
f.writelines(new_lines)
|
|
count += 1
|
|
print(f'Fixed B904: {filepath}')
|
|
except Exception as e:
|
|
print(f'Error: {filepath} - {e}')
|
|
|
|
print(f'Fixed {count} files with B904')
|
|
"
|
|
|
|
echo "=== Step 4: Count again ==="
|
|
ruff check app/ 2>&1 | grep "Found" | tail -1
|