Packages
livebook
0.16.4
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/file_systems.ex
defmodule Livebook.FileSystems do
alias Livebook.FileSystem
@doc """
Returns the type identifier for the given file system.
"""
@spec type(FileSystem.t()) :: String.t()
def type(%module{}), do: module_to_type(module)
@doc """
Returns an `%Ecto.Changeset{}` for tracking file system changes.
"""
@spec change_file_system(FileSystem.t(), map()) :: Ecto.Changeset.t()
def change_file_system(file_system, attrs \\ %{})
def change_file_system(%FileSystem.S3{} = file_system, attrs) do
FileSystem.S3.change_file_system(file_system, attrs)
end
@doc """
Loads the file system from given type and dumped data.
"""
@spec load(String.t(), map()) :: FileSystem.t()
def load(type, dumped_data) do
type
|> type_to_module()
|> struct!()
|> FileSystem.load(dumped_data)
end
@doc """
Returns file system module corresponding to the given type.
"""
@spec type_to_module(String.t()) :: module()
def type_to_module(type)
def type_to_module("local"), do: FileSystem.Local
def type_to_module("s3"), do: FileSystem.S3
@doc """
Returns a serializable type for corresponding to the given file
system module.
"""
@spec module_to_type(module()) :: String.t()
def module_to_type(module)
def module_to_type(FileSystem.Local), do: "local"
def module_to_type(FileSystem.S3), do: "s3"
end