Auto_Save_Projet Sauve_Projet_Qualite_Air

Version: 1.1.0 (2024-01-12) Auteur: kahina et franck - Groupe 2 Contact: bigmoletos@yopmail.com

Script de sauvegarde automatique avec compression ZIP.

Ce module: - Crée une archive ZIP datée du projet - Génère un résumé hiérarchique des modifications - Vérifie l’intégrité de la sauvegarde

Architecture:

  1. Sauvegarde: - Compression ZIP du projet avec niveau de compression optimal - Organisation par date/heure (format: JJ_MM_AAAA_HHhMM) - Vérification d’intégrité avec test ZIP

  2. Logs: - Résumé hiérarchique des modifications avec emojis - Classification par dossier avec indentation - Horodatage des changements au format ISO

  3. Structure des fichiers: - backup_dir/

    ├── projet_qualite_air.zip (archive complète) └── resume_des_modifs.log (modifications détaillées)

  4. Gestion des erreurs: - Validation des chemins source/destination - Vérification des permissions - Contrôle d’intégrité ZIP - Logging détaillé des erreurs

Dépendances:

  • Python 3.8+

  • zipfile: Compression et vérification

  • pathlib: Gestion des chemins

  • logging: Journalisation des événements

auto_save_projet.sauve_projet_qualite_air.create_backup_folder()[source]

Crée le dossier de sauvegarde avec horodatage.

Cette fonction: 1. Génère un nom de dossier unique avec date et heure 2. Crée l’arborescence si nécessaire 3. Vérifie les permissions d’écriture

Format du dossier:

JJ_MM_AAAA_HHhMM (exemple: 12_01_2024_15h30)

returns:

Chemin du dossier de sauvegarde créé

rtype:

Path

raises OSError:

Si la création du dossier échoue

raises PermissionError:

Si les droits sont insuffisants

auto_save_projet.sauve_projet_qualite_air.log_file_modification(file_path, action='modifié')[source]

Enregistre une modification de fichier dans le log.

Paramètres:
  • file_path (Path) – Chemin du fichier modifié

  • action (str) – Type de modification (modifié, créé, supprimé)

auto_save_projet.sauve_projet_qualite_air.generate_changes_summary(project_path, backup_dir)[source]

Génère un résumé des fichiers modifiés dans les 3 dernières heures.

auto_save_projet.sauve_projet_qualite_air.create_zip_backup(project_path, backup_dir)[source]

Crée une archive ZIP optimisée du projet.

auto_save_projet.sauve_projet_qualite_air.verify_zip_integrity(zip_path)[source]

Vérifie l’intégrité de l’archive ZIP.

Cette fonction: 1. Teste la structure de l’archive 2. Vérifie chaque fichier compressé 3. Valide le CRC des données 4. Contrôle la présence du manifeste

Paramètres:

zip_path (Path) – Chemin de l’archive à vérifier

Renvoie:

True si l’archive est valide et complète

Type renvoyé:

bool

Notes

  • Utilise zipfile.testzip() pour la vérification

  • Vérifie aussi la présence du manifeste

  • Contrôle la taille minimale attendue

auto_save_projet.sauve_projet_qualite_air.main()[source]

Fonction principale de sauvegarde. Crée une sauvegarde datée avec un résumé des modifications et une archive ZIP.