From f052052cf35c0434ce4094e3d6113e1980989e3a Mon Sep 17 00:00:00 2001 From: Michel Date: Wed, 7 May 2025 08:33:31 +0200 Subject: [PATCH] Ajout du fichier requirements.txt --- Purge_alertes.py | 35 -------------------------- detect_encodage.py | 16 ------------ requirements.txt | 51 ++++++++++++++++++++++++++++++++++++++ run_deploy.py | 61 ---------------------------------------------- 4 files changed, 51 insertions(+), 112 deletions(-) delete mode 100644 Purge_alertes.py delete mode 100644 detect_encodage.py create mode 100644 requirements.txt delete mode 100644 run_deploy.py diff --git a/Purge_alertes.py b/Purge_alertes.py deleted file mode 100644 index 54d83d5..0000000 --- a/Purge_alertes.py +++ /dev/null @@ -1,35 +0,0 @@ -# Purges des entrées de toutes les tables dans la base Sondes qui commencent -# par Alertes_*** et qui sont agées de plus de sept jours. -import mysql.connector -import os -from dotenv import load_dotenv - -# Charger les variables d'environnement -load_dotenv() - -config = { - "host": os.getenv("DB_HOST"), - "user": os.getenv("DB_USER"), - "password": os.getenv("DB_PASSWORD"), - "database": os.getenv("DB_NAME") -} - -conn = mysql.connector.connect(**config) -cursor = conn.cursor() - -# Récupérer toutes les tables d'alertes -cursor.execute("SHOW TABLES") -tables = [t[0] for t in cursor.fetchall()] -alertes_tables = [t for t in tables if t.startswith("Alertes_")] - -# Appliquer la purge à chaque table -for table in alertes_tables: - query = f"DELETE FROM {table} WHERE Debut_defaut < NOW() - INTERVAL 7 DAY" - cursor.execute(query) - print(f"✅ Table {table} purgée.") - -conn.commit() -cursor.close() -conn.close() - -print("🎉 Purge terminée pour toutes les alertes anciennes.") \ No newline at end of file diff --git a/detect_encodage.py b/detect_encodage.py deleted file mode 100644 index 65a0fa1..0000000 --- a/detect_encodage.py +++ /dev/null @@ -1,16 +0,0 @@ -import os - -racine = "." # point de départ = dossier courant - -def detect_fichiers_non_utf8(dossier): - for root, dirs, files in os.walk(dossier): - for file in files: - if file.endswith(".py"): - chemin = os.path.join(root, file) - try: - with open(chemin, encoding="utf-8") as f: - f.read() - except UnicodeDecodeError: - print(f"⚠️ Encodage non UTF-8 : {chemin}") - -detect_fichiers_non_utf8(racine) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..988acd9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,51 @@ +altair==5.5.0 +attrs==25.3.0 +blinker==1.9.0 +cachetools==5.5.2 +certifi==2025.4.26 +charset-normalizer==3.4.2 +click==8.1.8 +colorama==0.4.6 +contourpy==1.3.2 +cycler==0.12.1 +dotenv==0.9.9 +fonttools==4.57.0 +fpdf==1.7.2 +gitdb==4.0.12 +GitPython==3.1.44 +idna==3.10 +Jinja2==3.1.6 +jsonschema==4.23.0 +jsonschema-specifications==2025.4.1 +kiwisolver==1.4.8 +logging==0.4.9.6 +MarkupSafe==3.0.2 +matplotlib==3.10.1 +mysql-connector-python==9.3.0 +narwhals==1.38.0 +numpy==2.2.5 +packaging==24.2 +paho-mqtt==2.1.0 +pandas==2.2.3 +pillow==11.2.1 +protobuf==6.30.2 +pyarrow==20.0.0 +pydeck==0.9.1 +pyparsing==3.2.3 +python-dateutil==2.9.0.post0 +python-dotenv==1.1.0 +pytz==2025.2 +referencing==0.36.2 +requests==2.32.3 +rpds-py==0.24.0 +schedule==1.2.2 +six==1.17.0 +smmap==5.0.2 +streamlit==1.45.0 +tenacity==9.1.2 +toml==0.10.2 +tornado==6.4.2 +typing_extensions==4.13.2 +tzdata==2025.2 +urllib3==2.4.0 +watchdog==6.0.0 diff --git a/run_deploy.py b/run_deploy.py deleted file mode 100644 index 98ccf01..0000000 --- a/run_deploy.py +++ /dev/null @@ -1,61 +0,0 @@ -import paramiko -import os -from dotenv import load_dotenv -import tkinter as tk -from tkinter import messagebox - -load_dotenv() - -HOST = os.getenv("SSH_HOST") -USER = os.getenv("SSH_USER") -KEY = os.getenv("SSH_KEY") -PASSPHRASE = os.getenv("SSH_KEY_PASSPHRASE") - -root = tk.Tk() -root.withdraw() - -# 🛡 Vérifie que le fichier existe -if not os.path.exists(KEY): - messagebox.showerror("❌ Erreur", f"Clé SSH introuvable :\n{KEY}") - exit(1) - -# 🛡 Vérifie que la clé est lisible par paramiko -try: - paramiko.RSAKey.from_private_key_file(KEY, password=PASSPHRASE) -except paramiko.PasswordRequiredException: - messagebox.showerror("❌ Clé protégée", "La clé est protégée par une passphrase, mais aucune n'a été fournie.") - exit(1) -except paramiko.SSHException: - messagebox.showerror("❌ Erreur de format", "Le fichier de clé n’est pas au format OpenSSH.\n\nSolution : Exporter depuis PuTTYgen → Conversions > Export OpenSSH key") - exit(1) -except Exception as e: - messagebox.showerror("❌ Autre erreur", f"{e}") - exit(1) - -# ✅ Si la clé est valide, on continue -client = paramiko.SSHClient() -client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - -try: - client.connect( - hostname=HOST, - username=USER, - key_filename=KEY, - passphrase=PASSPHRASE - ) - - stdin, stdout, stderr = client.exec_command("bash ~/travail/Gestion_sondes/scripts/deploy_all.sh") - - output = stdout.read().decode() - errors = stderr.read().decode() - - if "Déploiement complet terminé avec succès" in output: - messagebox.showinfo("✅ Déploiement réussi", "Le déploiement s'est bien déroulé.") - else: - messagebox.showwarning("⚠️ Déploiement incomplet", f"Vérifie les logs :\n\n{errors}") - -except Exception as e: - messagebox.showerror("❌ Erreur SSH", f"{e}") - -finally: - client.close()