Skip to content

Cell and notebook reflection API #88

@altavir

Description

@altavir

This issue is actually an extension of #78. The idea is to have interfaces that define cell and notebook status. Those interfaces should be placed in an external artifact that is available to plugin and library developers. When inside the notebook the instances of those interfaces could be obtained as implicit calls. My idea is that the whole code executed in a cell should be done with a cell receiver. During notebook execution, this cell receiver is substituted by the actual cell object.

The following features should be supported.

Cell:

  • val id: String. A unique cell id.
  • val notebook: Notebook. Get a reference to a current notebook.
  • val/var text: String. The code inside the cell (see Support for input/output caching #76 ).
  • val output: MIMEContainer. The output as MIMEContainer.
  • val rawOutput: String. Raw output.
  • Specific notebooks controls like hide input/output.
  • Execution controls. Maybe asynchronous cell result.

Notebook:

  • Kernel handle.
  • A collection of resource handles with the possibility to inject new resources in runtime (see Load static resources via module descriptions #74 ). The resources must provide asynchronous load handles or a javascript promise name so one could organize asynchronous loading of widgets.
  • Find a Cell by id.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions