chore: ajoute ruff (lint) et corrige les violations

- Config ruff dans pyproject.toml : règles E/W/F/I/UP/B, whitelist des appels
  d'injection FastAPI (Depends/File/Form/Query) pour B008, B904 ignoré
  (traduction volontaire des exceptions en réponses HTTP)
- Auto-fixes : tri des imports, suppression d'imports inutilisés, annotations
  PEP 604, f-strings sans placeholder, modes open redondants
- Suppression de variables inutilisées (config.reset_setting, parser locataires)

ruff check . : All checks passed ; 61 tests OK

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 10:20:36 +02:00
parent 4606d6785b
commit d42bfecab4
34 changed files with 148 additions and 105 deletions

View File

@@ -5,9 +5,9 @@ import logging
import httpx
from .sql_executor import execute_readonly_sql, get_schema_description
from .settings_service import get_setting
from ..database.connection import get_session_factory
from .settings_service import get_setting
from .sql_executor import execute_readonly_sql, get_schema_description
logger = logging.getLogger(__name__)

View File

@@ -12,7 +12,6 @@ import sqlite3
from ..database.connection import get_db_path
# PRAGMA autorisés (lecture de métadonnées uniquement)
_ALLOWED_PRAGMAS = {"table_info", "database_list", "table_list"}

View File

@@ -1,9 +1,7 @@
"""Service de prédiction de tags pour les dépenses basé sur l'historique."""
from typing import Optional
from collections import Counter
from sqlalchemy import select, func
from sqlalchemy import func, select
from sqlalchemy.orm import Session
from ..database.models import Depense, Tag
@@ -14,8 +12,8 @@ class TagPrediction:
def __init__(
self,
tag_id: Optional[int],
tag_name: Optional[str],
tag_id: int | None,
tag_name: str | None,
confidence: float,
reason: str,
):
@@ -72,7 +70,7 @@ class TagPredictor:
reason="Aucun historique trouvé",
)
def _predict_by_fournisseur(self, fournisseur: str) -> Optional[TagPrediction]:
def _predict_by_fournisseur(self, fournisseur: str) -> TagPrediction | None:
"""Prédit le tag basé sur le fournisseur.
Retourne le tag le plus fréquemment utilisé pour ce fournisseur.
@@ -111,7 +109,7 @@ class TagPredictor:
def _predict_by_sous_categorie(
self, sous_categorie: str
) -> Optional[TagPrediction]:
) -> TagPrediction | None:
"""Prédit le tag basé sur la sous-catégorie.
Retourne le tag le plus fréquemment utilisé pour cette sous-catégorie.