Stéphan Peccini f812fac89e
feat: Amelioration structure - tests, documentation et qualite du code
Cette mise a jour complete ameliore significativement la qualite et la maintenabilite du projet.

1. Extension de la couverture de tests

Couverture globale passee de 8% a 16% (+100%)
- Ajout de 25 nouveaux tests (total: 67 tests, 100% passent)
- Nouveaux fichiers de tests:
  * tests/unit/test_gitea.py (17 tests)
  * tests/unit/test_fiches_tickets.py (8 tests)

Etat de la couverture par module:
- utils/gitea.py: 100%
- utils/widgets.py: 100%
- utils/logger.py: 94%
- app/fiches/utils/tickets/core.py: 77%
- utils/graph_utils.py: 59%

2. Documentation d'architecture complete

Creation de 3 nouveaux documents (30 Ko total):
- docs/ARCHITECTURE.md (15 Ko)
  * Architecture complete du projet
  * Flux de donnees detailles
  * Indices de vulnerabilite (IHH, ISG, ICS, IVC)
  * Structure du graphe NetworkX

- docs/MODULES.md (15 Ko)
  * Guide des 11 modules principaux
  * Exemples de code (15+ snippets)
  * Bonnes pratiques
  * Guide de depannage

- docs/README.md (4 Ko)
  * Index de toute la documentation

Contenu documente:
- 5 modules applicatifs
- 6 modules utilitaires
- 4 indices de vulnerabilite avec formules et seuils
- Conventions de code

3. Reorganisation de la documentation

Structure finale optimisee:
- Racine: README.md (mis a jour) + Instructions.md
- docs/: 11 documents organises par categorie

Fichiers deplaces vers docs/:
- README_connexion.md -> docs/CONNEXION.md
- GUIDE_LOGS.md -> docs/
- GUIDE_RUFF.md -> docs/
- RAPPORT_RUFF.md -> docs/
- RAPPORT_CORRECTIONS_AUTO.md -> docs/
- REFACTORING_REPORT.md -> docs/
- VERIFICATION_LOGS.md -> docs/
- TODO_IA_BATCH.md -> docs/

4. Ajout de docstrings

52 fonctions documentees en style Google (100%)
Documentation en francais avec Args, Returns, Raises

5. Corrections automatiques Ruff

Application de 347 corrections automatiques:
- Formatage du code (line-length: 120)
- Organisation des imports
- Simplifications syntaxiques
- Suppressions de code mort
- Ameliorations de performance

6. Configuration qualite du code

Nouveaux fichiers:
- pyproject.toml: configuration Ruff complete
- .vscode/settings.json: integration Ruff avec formatOnSave
- GUIDE_RUFF.md: documentation du linter
- GUIDE_LOGS.md: documentation du logging
- .gitignore: ajout htmlcov/ pour rapports de couverture

Etat final du projet:
- Linter: Ruff configure (15 regles actives)
- Tests: 67 tests (100% passent)
- Couverture de code: 16%
- Docstrings: 52/52 (100%)
- Documentation: 11 fichiers organises

Impact:
- Tests plus robustes et maintenables
- Documentation technique complete
- Meilleure organisation des fichiers
- Workflow optimise avec Ruff
- Code pret pour integration continue

References:
- Architecture: docs/ARCHITECTURE.md
- Guide modules: docs/MODULES.md
- Tests: tests/unit/
- Configuration: pyproject.toml

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-07 19:00:49 +01:00
..
2025-05-11 15:47:54 +02:00

Module Utils

Ce module contient des utilitaires essentiels qui supportent le fonctionnement de l'application FabNum. Il fournit des fonctions génériques et des services partagés utilisés par les différents modules de l'application.

Structure du module

Le module utils comprend plusieurs fichiers utilitaires clés :

  • gitea.py : Fonctions pour interagir avec l'API Gitea (récupération des fiches, gestion des tickets, etc.)
  • graph_utils.py : Utilitaires pour manipuler, analyser et transformer les graphes de la chaîne de fabrication
  • visualisation.py : Fonctions communes pour la génération de visualisations et de graphiques

Fonctionnalités

Intégration Gitea (gitea.py)

  • Récupération des fiches et documents depuis le dépôt Gitea
  • Gestion de l'authentification et des tokens d'accès
  • Lecture et écriture des tickets et commentaires
  • Récupération des données de structure pour les fiches

Manipulation de graphes (graph_utils.py)

  • Chargement et sauvegarde des graphes de dépendance
  • Calcul des chemins critiques et des niveaux de criticité
  • Fonctions d'analyse pour identifier les vulnérabilités
  • Transformation et filtrage des graphes pour différentes analyses

Visualisation (visualisation.py)

  • Fonctions génériques pour générer des visualisations cohérentes
  • Helpers pour le formatage des données avant visualisation
  • Fonctions de conversion entre différents formats de données

Utilisation

Ce module est conçu pour être importé par les autres composants de l'application. Exemple d'utilisation :

from utils.gitea import charger_instructions_depuis_gitea
from utils.graph_utils import charger_graphe

# Chargement des instructions
instructions = charger_instructions_depuis_gitea(INSTRUCTIONS_PATH)

# Chargement du graphe principal
G_temp, G_temp_ivc, dot_file_path = charger_graphe()

Ce module est fondamental pour l'application car il centralise les fonctions réutilisables et réduit la duplication de code entre les différents composants de l'application.