Yuri Almeida
Web Developement

Automatisation des Notifications de Bureau en Python avec auto-notifier

Yuri Almeida
<!DOCTYPE html>

Automatisation des Notifications de Bureau en Python avec auto-notifier

Quand on travaille avec deux écrans, il est facile de lancer un script long dans un terminal puis de se concentrer sur autre chose. Cela m’est arrivé souvent : je démarre un traitement en Python, je passe à une autre tâche, et quand je reviens… le script avait terminé (ou échoué) depuis longtemps.

auto-notifier a été créé pour ce cas précis. Il enveloppe votre fonction ou bloc de code, détecte si tout s’est bien terminé ou s’il y a eu une erreur, et envoie une notification native sur le bureau. Il repose sur deux concepts bien connus en Python — décorateurs et gestionnaires de contexte — sans configuration supplémentaire.


[ Espace réservé pour l’image de notification ] Exemple : notification après la fin du script


🚀 Installation

pip install auto-notifier

auto-notifier utilise notify-py en interne pour envoyer des notifications natives (Windows, macOS, Linux).


🧭 Fonctionnement

InterfaceIdéal Pour
@notify_when_doneSurveiller une fonction
notify_on_complete()Surveiller un bloc de code

Les deux détectent :

  • ✅ Succès de l’exécution
  • ❌ Exceptions (avec alerte d’échec)
  • ⏱️ Temps d’exécution mesuré

Les exceptions ne sont pas masquées — le traceback apparaît normalement dans le terminal.


🧩 Utilisation avec Décorateur

from auto_notifier import notify_when_done
import time

@notify_when_done(
    title=&quot;Sauvegarde terminée&quot;,
    message=&quot;La sauvegarde a été réalisée avec succès.&quot;,
    error_title=&quot;Échec de la sauvegarde&quot;
)
def executer_sauvegarde():
    time.sleep(5)  # simule une tâche
    # raise Exception(&quot;Erreur disque&quot;)  # tester un échec
    return &quot;ok&quot;

executer_sauvegarde()

Comportement :

  • Succès → Notification “Sauvegarde terminée”
  • Erreur → Notification “Échec de la sauvegarde”, exception relancée

📎 Utilisation avec Gestionnaire de Contexte

from auto_notifier import notify_on_complete
import time

with notify_on_complete(title=&quot;Importation terminée&quot;):
    time.sleep(3)
    print(&quot;Importation terminée&quot;)

Idéal pour les scripts ou blocs longs dans des notebooks.


🎛️ Personnalisation des Notifications

ParamètreDescription
titleTitre en cas de succès
messageMessage en cas de succès
error_titleTitre en cas d’erreur
error_messageMessage en cas d’erreur
icon_pathIcône personnalisé
app_nameNom visible dans le centre de notif

Exemple avec icône :

@notify_when_done(
    title=&quot;Rapport généré&quot;,
    message=&quot;Les métriques mensuelles sont prêtes.&quot;,
    icon_path=&quot;icons/chart.png&quot;
)
def generer_rapport():
    ...

🛠 Décorateurs et Context Managers

  • Décorateur : Enveloppe la fonction, mesure le temps, intercepte les erreurs et envoie la notification
  • Gestionnaire de contexte : Utilise __enter__ / __exit__ pour garantir la notification même en cas d’exception

Aucun thread, service ou configuration externe — uniquement du flux Python.


🔁 Exemple Complet (Style Pipeline)

from auto_notifier import notify_when_done, notify_on_complete
import pandas as pd
import time

@notify_when_done(title=&quot;Données nettoyées&quot;, error_title=&quot;Erreur de nettoyage&quot;)
def nettoyer_donnees(chemin):
    df = pd.read_csv(chemin)
    time.sleep(4)
    return df.dropna()

with notify_on_complete(title=&quot;Pipeline ETL terminé&quot;):
    propre = nettoyer_donnees(&quot;raw.csv&quot;)
    propre.to_csv(&quot;cleaned.csv&quot;, index=False)

🧭 Quand l’Utiliser

  • Scripts longs en terminal
  • Traitement de données / scraping
  • Entraînement de modèles
  • Sauvegardes ou exports

Conçu pour un usage local, avec notifications système.


📌 Résumé

auto-notifier ajoute des notifications aux fonctions ou blocs de code via décorateurs ou gestionnaires de contexte. Vous pouvez vous éloigner du terminal tout en sachant exactement quand un processus s’est terminé — ou a échoué.


PyPI : https://pypi.org/project/auto-notifier/ GitHub : https://github.com/yalmeidarj/auto-notifier


Si vous lancez des scripts et passez à autre chose, cet outil évite les devinettes.

Automatisation des Notifications de Bureau en Python avec auto-notifier | Blog