voila

Voilà, des dashboards à partir de vos Jupyter Notebooks

Emmanuel Jakobowicz Mis à jour le : 9 mars 2020 actualités, méthode Laissez un commentaire

L'écosystème Jupyter a changé notre façon de coder et d'apprendre de nouveaux langages grâce notamment au Jupyter Notebooks. Leur évolution vers le Jupyter Lab permet de faire plus que coder dans un Notebook (voir mon article sur le sujet ici).

Néanmoins, un point restait manquant pour mieux partager des Notebooks : la possibilité de cacher le code et de les rendre interactifs.

A quoi sert Jupyter Voilà ?

Voilà permet de transformer un simple Jupyter Notebook en une application web interactive. Pour arriver à cela, on doit combiner deux outils de l'écosystème Jupyter :

  • Les widgets qui permettent de faire apparaître des éléments interactifs dans un Notebook
  • Voilà qui permet de transformer instantanément un Notebook en une application autonome sans code et sécurisée

Il existait bien Jupyter Dashboard qui permettait de construire des tableaux de bord (dashboard) à partir de Notebook mais le projet est en stand-by et pas entretenu depuis plus d'un an. Par ailleurs, la partie passage en production du projet lié au projet Jupyter Dashboards Server a été abandonné.

Voilà arrive donc comme remplaçant de tous ces systèmes.

Quelle place pour Jupyter Voilà ?

Le monde du dashboarding et des applications web se divise aujourd'hui en deux parties :

  • Les développements sur mesure, généralement en Javascript, très esthétique et personnalisable mais demandant la présence d'un développeur Web
  • Les développements basés sur des outils qui génèrent vos applications web avec le moins de développement web possible.

Jupyter Voilà entre dans la deuxième catégorie. L'outil le plus connu dans la communauté data open source pour ce type d'outil reste le package shiny dans l'écosystème R. Dans l'écosystème Python, Bokeh et Dash sont les deux packages les plus avancés de ce côté.

Par rapport à ces outils, Jupyter Voilà se présente comme un outil extrêmement simple à mettre en oeuvre qui vous permettra de transformer vos Jupyter Notebooks en applications web ou en Dashboard quasiment automatiquement.

Comment ça marche ?

Le principe se cachant derrière voilà est très simple. Votre Jupyter Notebook et tous ses widgets sont exécutés et la partie résultat est rendue disponible dans une application web que vous pourrez mettre en forme avec un template voilà.

Pour l'application web, c'est le framework Python Tornado qui a été choisi. L'approche utilisée permet de déconnecter la partie code et la partie application web. La personne avec qui vous partagez votre application web ne peut pas accéder au code python de votre Notebook.

Votre code n'est donc jamais accessible et ne peut pas être modifié comme cela peut être le cas dans un Notebook.

Une autre force de Jupyter Voilà, c'est qu'il ne dépend pas d'un langage, il suffit de choisir le noyau utilisé par votre Notebook (liste des noyaux disponibles) et ensuite vous pouvez même construire un dashboard en C++ (si vous en avez envie ;-)).

Où trouver des informations sur Jupyter Voilà

La documentation de Voilà

Voilà est un projet en pleine évolution, n'hésitez pas à le tester. Je publierai dans les prochaines semaines un article avec un exemple complet de mise en place d'un tableau de bord avec voilà.

Partager cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.