Structuredeprojet/README.md

2.7 KiB

🔧 Pole Engineering Project Automation

Automatisation complète du traitement des projets de poteaux utilitaires.


Installation rapide

pip install pillow openpyxl reportlab google-generativeai

🚀 Utilisation

# Utilisation minimale
python pole_automation.py E65-BK7-26-132679

# Avec chemins personnalisés
python pole_automation.py E65-BK7-26-132679 \
  --base-dir  /Users/moi/Projets \
  --depart-dir /Users/moi/départ \
  --gemini-key AIza...VotreCléAPI

Variable d'environnement (recommandé pour la clé API)

export GEMINI_API_KEY="AIza...VotreCléAPI"
python pole_automation.py E65-BK7-26-132679

📁 Structure des dossiers

Dossier départ (source)

départ/
  1d1-PBO345 rue saint-eugene/
      photo_poteau.jpg
      photo_ancrage.jpg
      1d1-PBO345.xlsx
  2sd2-PBO678 boul. des erables/
      ...

Convention de nommage des sous-dossiers

Partie Exemple Signification
1 1 Numéro de séquence
d ou sd d Avec (d) ou Sans dérogation (sd)
1 1 Nombre d'ancrages
-PBO345 -PBO345 Référence du poteau
rue saint… (optionnel) Adresse

Projet créé automatiquement

<base-dir>/E65-BK7-26-132679/
  compilation/       ← Tous les PDFs finaux ici
  ingénierie/
  RSA-UDS/           ← Dossiers renommés depuis départ
  plan/

🔄 Logique de renommage

Type Nouveau nom Prochain saut
sd 10-PBO345 +1
d 11-PBO345 rue saint-x +2 (CDC)

🤖 Intégration Gemini AI

Le script envoie les images JPG de chaque dossier à Gemini qui identifie :

  • Poteau → converti en PDF avec le numéro séquentiel (ex: 12-PBO345.pdf)
  • Ancrage → converti en PDF avec le numéro suivant (ex: 13-PBO345.pdf)

Sans clé Gemini : un algorithme de fallback classe les images par nom de fichier.


📄 Fichiers PDF générés (dans compilation/)

Pour chaque poteau, dans l'ordre :

  1. {seq}-{ref}.pdf ← Images du poteau
  2. {seq}-{ref}.pdf ← Images de l'ancrage
  3. {seq}-{ref}.pdf ← Fichier Excel converti

🛠️ Configuration

Modifiez les constantes en haut du script :

DEFAULT_BASE_DIR   = Path.home() / "Projects"   # Dossier racine des projets
DEFAULT_DEPART_DIR = Path.home() / "départ"     # Dossier source
GEMINI_MODEL       = "gemini-1.5-flash"          # Modèle Gemini à utiliser