oc_p5-dev / scripts /fix_lint.py
ASI-Engineer's picture
Upload folder using huggingface_hub
aac75d5 verified
raw
history blame
1.87 kB
#!/usr/bin/env python3
"""
Script pour corriger automatiquement les problèmes de lint du projet.
Usage: python scripts/fix_lint.py
"""
import subprocess
import sys
from pathlib import Path
def run_command(cmd, description):
"""Exécute une commande et affiche le résultat."""
print(f"\n{'=' * 60}")
print(f"🔧 {description}")
print(f"{'=' * 60}")
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
if result.stdout:
print(result.stdout)
if result.stderr:
print(result.stderr, file=sys.stderr)
return result.returncode
def main():
"""Corrige tous les problèmes de lint."""
project_root = Path(__file__).parent.parent
print(f"📁 Projet : {project_root}")
# 1. Formater avec Black
returncode = run_command(
f"cd {project_root} && .venv/bin/black ml_model/ tests/ examples/ --line-length 88",
"Formatage avec Black",
)
# 2. Trier les imports avec isort
returncode += run_command(
f"cd {project_root} && .venv/bin/python -m isort ml_model/ tests/ examples/ --profile black",
"Tri des imports avec isort",
)
# 3. Vérifier avec Flake8
returncode += run_command(
f"cd {project_root} && .venv/bin/python -m flake8 ml_model/ tests/ examples/ --max-line-length=88 --extend-ignore=E203,W503",
"Vérification avec Flake8",
)
# 4. Lancer les tests
returncode += run_command(
f"cd {project_root} && .venv/bin/python -m pytest tests/test_basic.py -v",
"Exécution des tests",
)
print(f"\n{'=' * 60}")
if returncode == 0:
print("✅ Tous les checks passent !")
else:
print("⚠️ Certains problèmes subsistent. Vérifiez les logs ci-dessus.")
print(f"{'=' * 60}\n")
return returncode
if __name__ == "__main__":
sys.exit(main())