Packages
livebook
0.15.5
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/apps/preview_app_spec.ex
defmodule Livebook.Apps.PreviewAppSpec do
# App spec for deploying notebook directly from a session.
#
# This spec is used when deploying apps directly from the session,
# which we call previews.
#
# The notebook files may be stored on the local file system, so this
# app spec should always be deployed on the same node where it is
# built.
@enforce_keys [:slug, :session_id]
defstruct [:slug, :session_id, version: "1"]
end
defimpl Livebook.Apps.AppSpec, for: Livebook.Apps.PreviewAppSpec do
def load(app_spec, files_tmp_path) do
case Livebook.Sessions.fetch_session(app_spec.session_id) do
{:ok, %{pid: pid, files_dir: files_dir}} ->
notebook = Livebook.Session.get_notebook(pid)
files_tmp_dir =
files_tmp_path
|> Livebook.FileSystem.Utils.ensure_dir_path()
|> Livebook.FileSystem.File.local()
with :ok <- Livebook.Notebook.copy_files(notebook, files_dir, files_tmp_dir) do
{:ok, %{notebook: notebook, warnings: []}}
end
{:error, _reason} ->
{:error, "the session has already been closed"}
end
end
def should_warmup?(_app_spec) do
false
end
end