Packages
livebook
0.13.2
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/livebook/notebook/cell/smart.ex
defmodule Livebook.Notebook.Cell.Smart do
# A cell with evaluable code that is edited through a dedicated UI.
#
# Smart cell is supposed to provide the user with an easy, code-free
# way to achieve a specific task, such as plotting a chart or querying
# a database. The user interacts with smart cell through UI, while
# the smart cell generates plain code to be executed. The user can
# access and take over the underlying code at any point.
#
# The available smart cells come from the runtime, therefore they
# are one Livebook's extension points.
defstruct [
:id,
:source,
:chunks,
:outputs,
:kind,
:attrs,
:js_view,
:editor
]
alias Livebook.Utils
alias Livebook.Notebook.Cell
@type t :: %__MODULE__{
id: Cell.id(),
source: String.t() | :__pruned__,
chunks: Livebook.Runtime.chunks() | nil,
outputs: list(Cell.indexed_output()),
kind: String.t() | nil,
attrs: attrs() | :__pruned__,
js_view: Livebook.Runtime.js_view() | nil,
editor: Livebook.Runtime.editor() | nil
}
@type attrs :: map()
@doc """
Returns an empty cell.
"""
@spec new() :: t()
def new() do
%__MODULE__{
id: Utils.random_id(),
source: "",
chunks: nil,
outputs: [],
kind: nil,
attrs: %{},
js_view: nil,
editor: nil
}
end
end