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à
- Le mode de fonctionnement et d'installation sont disponibles ici :
https://github.com/voila-dashboards/voila - La documentation complète se trouve ici : https://voila.readthedocs.io/en/stable/
- L'article complet sur Voilà (en anglais) est disponible ici : https://blog.jupyter.org/and-voil%C3%A0-f6a2c08a4a93
- Pour vous aider dans vos premiers développements avec voilà, une galerie a été mise au point, elle se trouve ici : https://voila-gallery.org/
La documentation de Voilà
Partager cet article