Marimo - notebook réactif open source pour Python
(github.com/marimo-team)- Un notebook pour expérimenter rapidement avec des données et des modèles
- Exécution par cellule, calcul et mise à jour automatiques
- Toujours réexécutable, sans état caché
- Enregistré sous forme de fichier Python, donc compatible avec Git
- Possibilité de transformer les notebooks en pipelines ou de les déployer comme applications web interactives
Environnement de programmation réactif
- marimo garantit la cohérence entre le code du notebook, les sorties et l’état du programme.
- Lorsqu’une cellule est exécutée, marimo met automatiquement à jour les cellules qui référencent ses variables, ce qui évite les erreurs liées à la réexécution manuelle des cellules.
- Lorsqu’une cellule est supprimée, marimo retire ces variables de la mémoire du programme afin d’éliminer tout état caché.
- Les notebooks s’exécutent dans un ordre déterministe fondé sur les références de variables, sans dépendre de la position des cellules dans la page.
- Lorsqu’on interagit avec des éléments d’interface comme des curseurs, des menus déroulants ou des transformateurs de DataFrame, les cellules qui utilisent ces valeurs sont automatiquement relancées avec les valeurs les plus récentes.
- marimo analyse statiquement le code afin de n’exécuter que les cellules nécessaires, ce qui améliore les performances.
- marimo inclut diverses fonctionnalités pratiques comme GitHub Copilot, le formatage de code Black, l’export HTML, l’autocomplétion rapide, une extension VS Code, etc.
Démarrage rapide
- Installation : installez marimo dans le terminal avec
pip install marimoouconda install -c conda-forge marimo. - Création d’un notebook : créez un notebook vide avec
marimo editoret modifiez un notebook nommé avecmarimo edit your_notebook.py. - Exécution de l’application : lancez
marimo run your_notebook.pypour exécuter le notebook comme application web. Cette application est déployée sur le cloud marimo. - Exécution comme script : lancez
python your_notebook.pypour exécuter un notebook marimo comme script. - Conversion automatique de notebooks Jupyter : utilisez la CLI pour convertir automatiquement des notebooks Jupyter en notebooks marimo.
- Tutoriels : lancez
marimo tutorial --helppour afficher la liste de tous les tutoriels.
En savoir plus
- marimo est facile à prendre en main pour les débutants et offre de nombreuses fonctionnalités aux utilisateurs avancés.
- Par exemple, vous pouvez découvrir l’outil de visualisation d’embeddings créé avec marimo (vidéo).
- Vous trouverez davantage d’informations dans la documentation, le dossier
examples/et la galerie.
Inspiration
- marimo réinvente les notebooks Python comme des programmes Python reproductibles, interactifs et partageables.
- Avec la conviction que les outils que l’on utilise façonnent notre manière de penser, le projet espère offrir un meilleur environnement de programmation à la communauté Python.
- Le projet s’inspire de nombreuses sources et initiatives, notamment Pluto.jl, ObservableHQ et les essais de Bret Victor.
- marimo fait partie d’un mouvement plus large autour de la programmation réactive par flux de données, où des idées de programmation fonctionnelle, déclarative et réactive améliorent divers outils comme IPyflow, streamlit, TensorFlow, PyTorch, JAX et React.
L’avis de GN⁺
- marimo est un notebook Python réactif innovant qui cherche à dépasser les limites d’outils existants comme les notebooks Jupyter, en facilitant l’expérimentation sur les données et les modèles, la confiance dans la justesse du notebook, ainsi que la mise en production sous forme de pipeline ou d’application web interactive.
- Cet outil met l’accent sur la cohérence du code et la reproductibilité, tout en simplifiant les interactions avec les éléments d’interface utilisateur afin d’améliorer l’expérience de programmation.
- marimo facilite la collaboration et le partage dans les domaines de la science des données, de la recherche et de l’éducation, et propose une plateforme qui favorise les interactions entre utilisateurs ainsi que le partage des connaissances grâce à la construction d’une communauté.
1 commentaires
Avis sur Hacker News
En tant qu'utilisateur de Jupyter et d'Observable, je ressentais le manque de réactivité des cellules dans Observable, et je pense que ce problème est bien résolu ici. J'aime le fait que le format de fichier de Marimo soit en Python, et la licence Apache 2 me plaît aussi. J'ai été impressionné par la découverte de la fonctionnalité GitHub Copilot.
En travaillant avec des collaborateurs utilisant Jupyter Notebook, la configuration de l'environnement et l'état caché de Jupyter ont posé problème. Ce projet essaie de résoudre le second point, mais au prix de la flexibilité. Si l'on privilégie la reproductibilité, cela peut être un compromis acceptable.
requirements.txtest la solution standard à un autre problème, mais son utilisation est fastidieuse.requirements.txtcontraignant et espère une meilleure solution.Je suis heureux qu'enfin quelqu'un s'attaque à ce sujet. Il existe bien une extension VSCode, mais c'est dommage qu'elle ouvre une vue navigateur complète au lieu d'utiliser l'interface de notebook native de VSCode. Il partage aussi ses réflexions sur la gestion des packages et le déploiement de code en production.
J'ai quelques questions sur la plateforme : qu'en est-il des widgets interactifs, et pourriez-vous expliquer les dépendances et les interactions avec l'écosystème Jupyter ?
Je pense que l'extension Jupytext est sous-estimée. Elle résout les problèmes d'interaction de Jupyter avec git ainsi que certaines pratiques de programmation qui compliquent l'écriture de fichiers de bibliothèque. J'attends des mises à jour réactives de ce nouveau projet qu'elles soient utiles aux débutants comme aux projets complexes.
La liste des dépendances est courte et, en dehors de tornado, elle n'entraîne pas beaucoup de dépendances supplémentaires lourdes. Cela semble être un projet très utile et très élégant.
Marimo me semble excellent. Je me demande s'il est envisagé d'ajouter le support de mermaid.js dans le markdown.
Je suis fan d'Akshay et de Myles, les créateurs de Marimo, et je pense que l'arrivée d'un concurrent à Jupyter aura un effet bénéfique sur l'écosystème des outils scientifiques.
Je pense que Quarto résout beaucoup des problèmes de Jupyter mentionnés dans ce fil. Même le NIH recommande l'utilisation de Quarto et propose des formations à ce sujet.
Définir plusieurs fois la même variable est une erreur. La raison est évidente. Mais si la variable n'est utilisée que dans la cellule où elle apparaît pour la première fois, la réutilisation du nom devrait être possible.