ragflow_preprocess/utils/data_structure.py
2025-03-27 17:59:10 +01:00

65 lines
2.6 KiB
Python

#!/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()