Skip to content

Explore supporting **Run Dependent Cells** #14316

@rebornix

Description

@rebornix

Background

Efficiently handling cell dependencies has become a major challenge in today's data analysis and computational notebook landscape. As cells are interconnected, modification in one can affect others, making it critical to have a reliable way to manage and track these relationships. Our objective is to implement a mechanism that can identify and navigate dependencies between cells, thus enhancing the user workflow and data integrity within the notebook.

Proposal

We will introduce a new execution command, "Execute cell with dependent cells," which will intelligently identify and manage the execution of a cell and its dependent cells in a notebook.

To archive this, we would experiment with following techniques:

  • Leveraging Language Server Information: Use symbols and references from the language server to map and establish the grammatical connections between cells.
    • In order to understand how data flows, we will rely on both symbol info (where symbols are defined) and also references (specifically, distinguishing between write and read references) from the language server. For example, if cell A defines a symbol which is utilized by cell B, any modification in cell A necessitates a re-run of cell B, indicating a dependency of B on A. Similarly, if cell A involves a write reference to a symbol and cell B encompasses a read reference of the same, it is construed that B is dependent on A.
  • Build Dependency Graph with cell execution states: Develop a dynamic dependency graph that updates in real-time as cells are modified or executed, using both symbol/references information and historical execution sequences.

UX

  • Add the command "Execute cell with dependent cells" to the Cell Execution Toolbar.
  • Provide visual cues, such as notebook cell decorations or status bar items, to indicate which cells are now "stale".

Related Issues

Metadata

Metadata

Assignees

Labels

feature-requestRequest for new features or functionalityon-testplanunder-discussionIssue is under discussion for relevance, priority, approach

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions