Skip to main content
Les notebooks exécutent les cellules en fonction des dépendances entre variables, et non selon l’ordre d’apparition des cellules sur la page. Si la cellule B lit une variable définie dans la cellule A, alors la cellule B dépend de la cellule A. La cellule A est en amont de la cellule B, et la cellule B est en aval de la cellule A. Lorsqu’une cellule en amont s’exécute, le notebook peut réexécuter les cellules en aval afin que leurs sorties reflètent les valeurs les plus récentes. L’exécution automatique ou non des cellules dépend des paramètres de runtime du notebook. Les notebooks déterminent les dépendances en suivant les définitions et les références :
  • Une définition est un nom global créé par une cellule, par exemple une variable, une fonction, une classe ou un nom importé.
  • Une référence est un nom global qu’une cellule lit depuis une autre cellule.
Pour en savoir plus, consultez How marimo runs cells dans la documentation de marimo.

Cellules obsolètes et bloquées

Les notebooks suivent l’état de chaque cellule afin de déterminer si elle doit être exécutée. Les principaux états d’une cellule sont obsolète et bloquée.

Cellules obsolètes

Une cellule est obsolète si elle n’a jamais été exécutée ou si elle n’a pas été exécutée avec son code ou ses entrées les plus récents. Une fois la cellule exécutée avec son code et ses entrées actuels, elle n’est plus obsolète. Une cellule devient obsolète dans les situations suivantes :
  • Vous modifiez le code de la cellule.
  • Une cellule en amont s’exécute alors que le notebook utilise le mode lazy. Dans ce mode, le notebook marque les cellules en aval comme obsolètes au lieu de les exécuter automatiquement.
  • Un module Python utilisé par la cellule est modifié alors que le rechargement automatique paresseux des modules est activé.
Exécutez une cellule obsolète pour mettre à jour sa sortie. Si des cellules en amont sont obsolètes, le notebook les exécute au préalable. Vous pouvez également exécuter toutes les cellules obsolètes en une seule fois.

Cellules bloquées

Une cellule est bloquée si elle-même ou l’une de ses cellules en amont est désactivée. Les cellules bloquées ne s’exécutent pas automatiquement, même lorsque leurs entrées changent. Pour débloquer une cellule, réactivez la cellule désactivée dont elle dépend. Le notebook peut alors exécuter les cellules en aval qui sont obsolètes et dont les sorties doivent être mises à jour. Pour la procédure, voir Désactiver ou activer une cellule.

Supprimer des cellules

Lorsque vous supprimez une cellule, le notebook supprime également les variables globales qu’elle définissait. Selon les paramètres du runtime, le notebook réexécute, invalide ou marque comme obsolètes les cellules qui font référence aux variables supprimées.

Définir chaque nom global une seule fois

Définissez chaque nom global dans une seule cellule. Si deux cellules définissent le même nom global, le notebook ne peut pas déterminer de source unique de vérité pour les cellules en aval. Cette restriction s’applique aux variables, aux fonctions, aux classes et aux noms de packages importés. Pour les variables temporaires, faites précéder le nom de la variable d’un seul tiret bas afin de la rendre locale à la cellule. Vous pouvez également définir des variables temporaires à l’intérieur d’une fonction.

Éviter les mutations entre cellules

Évitez de modifier des objets utilisés par plusieurs cellules. Les notebooks ne suivent pas les mutations d’objets : modifier un objet ne marque donc pas les cellules dépendantes comme obsolètes. Par exemple, supposons qu’une cellule ajoute une colonne à un DataFrame défini dans une autre cellule. Les cellules qui référencent ce DataFrame ne sont pas réexécutées automatiquement. Pour maintenir la cohérence de l’état du notebook, créez un nouvel objet et affectez-le à une nouvelle variable. Si vous devez modifier un objet, faites-le dans la cellule qui le définit. Pour en savoir plus, voir Variable mutations are not tracked.

Inspecter les variables et les dépendances

Afficher les variables

Utilisez l’explorateur de variables pour afficher les variables définies, leurs types, l’endroit où elles sont déclarées et celui où elles sont référencées.
Variables circulant entre des cellules de notebook dépendantes
Pour en savoir plus sur les symboles et les connexions entre les cellules, voir :

Visualiser les relations entre cellules dans la minimap

Utilisez le panneau Dependencies pour examiner les relations entre les cellules :
  1. Dans la barre latérale, sélectionnez Explore dependencies ().
  2. Sélectionnez MINIMAP.

Afficher le graphe de dépendances

Utilisez la vue graphique pour visualiser les dépendances entre cellules sous forme de graphe orienté acyclique (DAG) :
  1. Dans la barre latérale, sélectionnez Explore dependencies ().
  2. Sélectionnez GRAPH.
Déplacez-vous dans le graphe, zoomez et réorganisez les nœuds pour explorer les relations entre les cellules.