#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Utilitaire pour initialiser la structure de données du projet """ import os import platform def initialize_data_directories(): """ Crée la structure de répertoires nécessaire pour le stockage des données """ # Répertoire principal de données data_dir = "data" # Sous-répertoires pour les différents types de données subdirs = [ "outputs", # Sorties finales "images", # Images analysées "translations", # Journaux de traduction "ocr_logs", # Journaux OCR "summaries", # Journaux de résumés "rewrites", # Journaux de reformulation "uploads", # Fichiers téléchargés temporaires "templates", # Modèles de documents "temp", # Fichiers temporaires "workflows" # Journaux de flux de travail complets ] # Créer le répertoire principal s'il n'existe pas if not os.path.exists(data_dir): os.makedirs(data_dir) print(f"Création du répertoire principal: {data_dir}") # Créer les sous-répertoires for subdir in subdirs: full_path = os.path.join(data_dir, subdir) if not os.path.exists(full_path): os.makedirs(full_path) print(f"Création du sous-répertoire: {full_path}") # Créer le fichier .gitkeep dans chaque répertoire vide pour le contrôle de version for subdir in subdirs: full_path = os.path.join(data_dir, subdir) gitkeep_file = os.path.join(full_path, ".gitkeep") if not os.path.exists(gitkeep_file): with open(gitkeep_file, "w") as f: f.write("# Ce fichier permet de conserver le répertoire vide dans Git") print("Structure de répertoires initialisée avec succès.") # Ajustements spécifiques à Windows if platform.system() == "Windows": # Vérifier si le chemin du fichier temporaire est trop long temp_dir = os.path.join(data_dir, "temp") temp_path = os.path.abspath(temp_dir) if len(temp_path) > 240: # Windows a une limite de 260 caractères pour les chemins print(f"AVERTISSEMENT: Le chemin du répertoire temporaire est trop long: {len(temp_path)} caractères") print("Windows a une limite de 260 caractères pour les chemins complets.") print("Considérez déplacer le projet dans un répertoire avec un chemin plus court.") if __name__ == "__main__": initialize_data_directories()