# Module Core ## Description générale Le module `core` contient les fonctionnalités centrales et utilitaires communs utilisés dans l'ensemble du système d'analyse de tickets. Il fournit des outils essentiels pour la gestion des fichiers, la journalisation, et le traitement des données. ## Structure - `core/utils.py` : Fonctions utilitaires générales - `core/__init__.py` : Exports des fonctions principales - `core/tests/` : Tests unitaires pour les fonctionnalités du module ## Fonctionnalités principales ### Journalisation (`setup_logging`, `log_separator`) ```python setup_logging(level=logging.INFO, log_file=None) log_separator(length=60) ``` Ces fonctions permettent de configurer facilement la journalisation dans l'ensemble de l'application avec un format cohérent. Elles sont utilisées dans les scripts d'extraction de tickets et les modules d'interaction avec Odoo. ### Gestion de fichiers (`save_json`, `save_text`, `ensure_dir`) ```python save_json(data, file_path) save_text(text, file_path) ensure_dir(path) ``` Fonctions utilisées pour sauvegarder des données au format JSON ou texte, et pour s'assurer que les répertoires existent avant d'y écrire des fichiers. ### Normalisation (`normalize_filename`) ```python normalize_filename(name) ``` Fonction qui normalise les noms de fichiers en remplaçant les caractères non autorisés par des underscores et en limitant la longueur. Très utile pour le traitement des pièces jointes des tickets. ### Détection de duplicats (`detect_duplicate_content`) ```python detect_duplicate_content(messages) ``` Identifie les messages avec un contenu dupliqué, ce qui permet d'éviter les redondances dans les rapports générés. ### Gestion du temps (`get_timestamp`) ```python get_timestamp() ``` Retourne un timestamp au format standardisé (YYYYMMDD_HHMMSS) utilisé pour nommer les fichiers et tracer les opérations. ### Analyse d'images (`is_important_image`) ```python is_important_image(tag, message_text) ``` Détermine si une image est importante ou s'il s'agit simplement d'un logo ou d'une signature dans un message. ## Utilisation dans le projet Le module `core` est utilisé par de nombreux composants du système : - Les scripts d'extraction de tickets (`odoo_extractor.py`) - Les modules d'interaction avec Odoo (`odoo/retrieve_ticket.py`, `odoo/message_manager.py`, etc.) - Potentiellement utilisable dans les nouveaux workflows de test et les agents modifiés ## Maintien et évolution Bien que le module `core` contienne des fonctionnalités essentielles, certaines de ses fonctions pourraient être déplacées ou dupliquées dans le nouveau système de tests (`tests/common/`) pour une meilleure modularité. Possibilités d'évolution : - Centralisation des fonctions liées aux fichiers et à la journalisation - Migration progressive des fonctions vers la nouvelle architecture de tests - Conservation des fonctions distinctes pour le traitement des tickets