We can get elixir modules with something like:
elixir_mods = Application.spec(:elixir, :modules)
e |> Enum.each(fn mod ->
try do
LivebookHelpers.livebook_from_module(mod, "elixir_livebooks/#{mod |> inspect |> String.replace(".","") |> Macro.underscore}")
rescue
_e ->
IO.inspect(mod)
end
end)
You'll see logged all the modules we couldn't do.
We could try to fix them if we were really keen.
Currently these are problematic:
BlankLineDoctest
Calendar
Code
Code.Fragment
Code.Identifier
Config.Provider
Config.Reader
DateTime
DynamicSupervisor
File
File.Stream
FinishingDoctestWrong
Float
GenServer
IEx
IEx.Evaluator
IEx.Helpers
IEx.Info
IEx.Server
IO
IO.ANSI
IndentedInvalidElixir
Inspect.Algebra
Inspect.Opts
Integer
Kernel
Kernel.ParallelCompiler
Kernel.SpecialForms
LivebookHelpers.MixProject
Logger
Logger.Formatter
Macro.Env
Map
Mix
Mix.Compilers.Erlang
Mix.Config
Mix.Dep
Mix.Local.Installer
Mix.Project
Mix.Release
Mix.Shell
Mix.Shell.Quiet
Mix.Task
Mix.Task.Compiler.Diagnostic
Mix.Tasks.App.Config
Mix.Tasks.App.Start
Mix.Tasks.App.Tree
Mix.Tasks.Archive.Build
Mix.Tasks.Archive.Check
Mix.Tasks.Archive.Install
Mix.Tasks.Archive.Uninstall
Mix.Tasks.Compile
Mix.Tasks.Compile.Elixir
Mix.Tasks.Compile.Erlang
Mix.Tasks.Compile.Leex
Mix.Tasks.Compile.Protocols
Mix.Tasks.Compile.Yecc
Mix.Tasks.CreateLivebookFromModule
Mix.Tasks.Deps
Mix.Tasks.Deps.Compile
Mix.Tasks.Deps.Get
Mix.Tasks.Deps.Loadpaths
Mix.Tasks.Deps.Precompile
Mix.Tasks.Deps.Tree
Mix.Tasks.Deps.Unlock
Mix.Tasks.Deps.Update
Mix.Tasks.Do
Mix.Tasks.Escript.Build
Mix.Tasks.Escript.Install
Mix.Tasks.Escript.Uninstall
Mix.Tasks.Format
Mix.Tasks.Help
Mix.Tasks.Hex
Mix.Tasks.Hex.Build
Mix.Tasks.Hex.Config
Mix.Tasks.Hex.Docs
Mix.Tasks.Hex.Info
Mix.Tasks.Hex.Organization
Mix.Tasks.Hex.Outdated
Mix.Tasks.Hex.Owner
Mix.Tasks.Hex.Package
Mix.Tasks.Hex.Publish
Mix.Tasks.Hex.Registry
Mix.Tasks.Hex.Repo
Mix.Tasks.Hex.Retire
Mix.Tasks.Hex.Search
Mix.Tasks.Hex.Sponsor
Mix.Tasks.Hex.User
Mix.Tasks.Loadpaths
Mix.Tasks.Local.PublicKeys
Mix.Tasks.New
Mix.Tasks.Profile.Cprof
Mix.Tasks.Profile.Eprof
Mix.Tasks.Profile.Fprof
Mix.Tasks.Release
Mix.Tasks.Release.Init
Mix.Tasks.Run
Mix.Tasks.Test
Mix.Tasks.Test.Coverage
Mix.Tasks.Xref
Mix.Utils
Module
Module.Types.Unify
OptionParser
Port
Process
Protocol
Record
Registry
StartingDoctestWrong
String
Supervisor
Supervisor.Spec
Task
Task.Supervisor
mods = [
Elixir.Access,
Elixir.Agent,
Elixir.Agent.Server,
Elixir.Application,
Elixir.ArgumentError,
Elixir.ArithmeticError,
Elixir.Atom,
Elixir.BadArityError,
Elixir.BadBooleanError,
Elixir.BadFunctionError,
Elixir.BadMapError,
Elixir.BadStructError,
Elixir.Base,
Elixir.Behave,
Elixir.Behaviour,
Elixir.Bitwise,
Elixir.BlankLineDoctest,
Elixir.Bullets,
Elixir.Calendar,
Elixir.Calendar.ISO,
Elixir.Calendar.TimeZoneDatabase,
Elixir.Calendar.UTCOnlyTimeZoneDatabase,
Elixir.CaseClauseError,
Elixir.Code,
Elixir.Code.Formatter,
Elixir.Code.Fragment,
Elixir.Code.Identifier,
Elixir.Code.LoadError,
Elixir.Code.Normalizer,
Elixir.Code.Typespec,
Elixir.Collectable,
Elixir.Collectable.BitString,
Elixir.Collectable.File.Stream,
Elixir.Collectable.HashDict,
Elixir.Collectable.HashSet,
Elixir.Collectable.IO.Stream,
Elixir.Collectable.List,
Elixir.Collectable.Map,
Elixir.Collectable.MapSet,
Elixir.Collectable.Mix.Shell,
Elixir.CompileError,
Elixir.CondClauseError,
Elixir.Config,
Elixir.Config.Provider,
Elixir.Config.Reader,
Elixir.Date,
Elixir.Date.Range,
Elixir.DateTime,
Elixir.Dict,
Elixir.DoctestInDoctest,
Elixir.DoctestSpansLines,
Elixir.DynamicSupervisor,
Elixir.Enum,
Elixir.Enum.EmptyError,
Elixir.Enum.OutOfBoundsError,
Elixir.Enumerable,
Elixir.Enumerable.Date.Range,
Elixir.Enumerable.File.Stream,
Elixir.Enumerable.Function,
Elixir.Enumerable.GenEvent.Stream,
Elixir.Enumerable.HashDict,
Elixir.Enumerable.HashSet,
Elixir.Enumerable.IO.Stream,
Elixir.Enumerable.List,
Elixir.Enumerable.Map,
Elixir.Enumerable.MapSet,
Elixir.Enumerable.Range,
Elixir.Enumerable.Stream,
Elixir.ErlangError,
Elixir.Exception,
Elixir.File,
Elixir.File.CopyError,
Elixir.File.Error,
Elixir.File.LinkError,
Elixir.File.RenameError,
Elixir.File.Stat,
Elixir.File.Stream,
Elixir.FinishingDoctestWrong,
Elixir.Float,
Elixir.FnsForAll,
Elixir.FnsForNone,
Elixir.Function,
Elixir.FunctionClauseError,
Elixir.GenEvent,
Elixir.GenEvent.Stream,
Elixir.GenServer,
Elixir.HashDict,
Elixir.HashSet,
Elixir.Hex,
Elixir.Hex.API,
Elixir.Hex.API.Auth,
Elixir.Hex.API.Key,
Elixir.Hex.API.Key.Organization,
Elixir.Hex.API.Package,
Elixir.Hex.API.Package.Owner,
Elixir.Hex.API.Release,
Elixir.Hex.API.ReleaseDocs,
Elixir.Hex.API.ShortURL,
Elixir.Hex.API.User,
Elixir.Hex.Application,
Elixir.Hex.Config,
Elixir.Hex.Crypto,
Elixir.Hex.Crypto.AES_CBC_HMAC_SHA2,
Elixir.Hex.Crypto.AES_GCM,
Elixir.Hex.Crypto.ContentEncryptor,
Elixir.Hex.Crypto.Encryption,
Elixir.Hex.Crypto.KeyManager,
Elixir.Hex.Crypto.PBES2_HMAC_SHA2,
Elixir.Hex.Crypto.PKCS5,
Elixir.Hex.Crypto.PublicKey,
Elixir.Hex.HTTP,
Elixir.Hex.HTTP.Certs,
Elixir.Hex.HTTP.SSL,
Elixir.Hex.HTTP.VerifyHostname,
Elixir.Hex.Mix,
Elixir.Hex.Mix.TaskDescription,
Elixir.Hex.Netrc,
Elixir.Hex.Netrc.Cache,
Elixir.Hex.Netrc.Parser,
Elixir.Hex.OptionParser,
Elixir.Hex.Parallel,
Elixir.Hex.Registry,
Elixir.Hex.Registry.Server,
Elixir.Hex.RemoteConverger,
Elixir.Hex.Repo,
Elixir.Hex.Resolver,
Elixir.Hex.Resolver.Backtracks,
Elixir.Hex.SCM,
Elixir.Hex.Server,
Elixir.Hex.Set,
Elixir.Hex.Shell,
Elixir.Hex.Shell.Process,
Elixir.Hex.Sponsor,
Elixir.Hex.State,
Elixir.Hex.Stdlib,
Elixir.Hex.Tar,
Elixir.Hex.UpdateChecker,
Elixir.Hex.Utils,
Elixir.Hex.Version,
Elixir.Hex.Version.InvalidRequirementError,
Elixir.Hex.Version.InvalidVersionError,
Elixir.Hex.Version.Requirement,
Elixir.IEx,
Elixir.IEx.App,
Elixir.IEx.Autocomplete,
Elixir.IEx.Broker,
Elixir.IEx.CLI,
Elixir.IEx.Config,
Elixir.IEx.Evaluator,
Elixir.IEx.Helpers,
Elixir.IEx.History,
Elixir.IEx.Info,
Elixir.IEx.Info.Any,
Elixir.IEx.Info.Atom,
Elixir.IEx.Info.BitString,
Elixir.IEx.Info.Date,
Elixir.IEx.Info.Float,
Elixir.IEx.Info.Function,
Elixir.IEx.Info.Integer,
Elixir.IEx.Info.List,
Elixir.IEx.Info.Map,
Elixir.IEx.Info.NaiveDateTime,
Elixir.IEx.Info.PID,
Elixir.IEx.Info.Port,
Elixir.IEx.Info.Reference,
Elixir.IEx.Info.Time,
Elixir.IEx.Info.Tuple,
Elixir.IEx.Introspection,
Elixir.IEx.Pry,
Elixir.IEx.Server,
Elixir.IEx.State,
Elixir.IO,
Elixir.IO.ANSI,
Elixir.IO.ANSI.Docs,
Elixir.IO.ANSI.Sequence,
Elixir.IO.Stream,
Elixir.IO.StreamError,
Elixir.Implementation,
Elixir.ImplementedProto,
Elixir.ImplementedProto.Implementation,
Elixir.IndentedCodeAreElixirCells,
Elixir.IndentedInvalidElixir,
Elixir.Inspect,
Elixir.Inspect.Algebra,
Elixir.Inspect.Any,
Elixir.Inspect.Atom,
Elixir.Inspect.BitString,
Elixir.Inspect.Date,
Elixir.Inspect.Date.Range,
Elixir.Inspect.DateTime,
Elixir.Inspect.Error,
Elixir.Inspect.Float,
Elixir.Inspect.Function,
Elixir.Inspect.HashDict,
Elixir.Inspect.HashSet,
Elixir.Inspect.Integer,
Elixir.Inspect.List,
Elixir.Inspect.Macro.Env,
Elixir.Inspect.Map,
Elixir.Inspect.MapSet,
Elixir.Inspect.NaiveDateTime,
Elixir.Inspect.Opts,
Elixir.Inspect.PID,
Elixir.Inspect.Port,
Elixir.Inspect.Range,
Elixir.Inspect.Reference,
Elixir.Inspect.Regex,
Elixir.Inspect.Stream,
Elixir.Inspect.Time,
Elixir.Inspect.Tuple,
Elixir.Inspect.Version,
Elixir.Inspect.Version.Requirement,
Elixir.Integer,
Elixir.Kernel,
Elixir.Kernel.CLI,
Elixir.Kernel.ErrorHandler,
Elixir.Kernel.LexicalTracker,
Elixir.Kernel.ParallelCompiler,
Elixir.Kernel.ParallelRequire,
Elixir.Kernel.SpecialForms,
Elixir.Kernel.Typespec,
Elixir.Kernel.Utils,
Elixir.KeyError,
Elixir.Keyword,
Elixir.List,
Elixir.List.Chars,
Elixir.List.Chars.Atom,
Elixir.List.Chars.BitString,
Elixir.List.Chars.Float,
Elixir.List.Chars.Integer,
Elixir.List.Chars.List,
Elixir.LivebookHelpers,
Elixir.LivebookHelpers.MixProject,
Elixir.Logger,
Elixir.Logger.App,
Elixir.Logger.BackendSupervisor,
Elixir.Logger.Backends.Console,
Elixir.Logger.Config,
Elixir.Logger.Filter,
Elixir.Logger.Formatter,
Elixir.Logger.Handler,
Elixir.Logger.Translator,
Elixir.Logger.Utils,
Elixir.Logger.Watcher,
Elixir.Macro,
Elixir.Macro.Env,
Elixir.MacroWithDoc,
Elixir.MacroWithNoDoc,
Elixir.Map,
Elixir.MapSet,
Elixir.MatchError,
Elixir.Mix,
Elixir.Mix.CLI,
Elixir.Mix.Compilers.ApplicationTracer,
Elixir.Mix.Compilers.Elixir,
Elixir.Mix.Compilers.Erlang,
Elixir.Mix.Compilers.Test,
Elixir.Mix.Config,
Elixir.Mix.Dep,
Elixir.Mix.Dep.Converger,
Elixir.Mix.Dep.ElixirSCM,
Elixir.Mix.Dep.Fetcher,
Elixir.Mix.Dep.Loader,
Elixir.Mix.Dep.Lock,
Elixir.Mix.Dep.Umbrella,
Elixir.Mix.ElixirVersionError,
Elixir.Mix.Error,
Elixir.Mix.Generator,
Elixir.Mix.Hex,
Elixir.Mix.InvalidTaskError,
Elixir.Mix.Local,
Elixir.Mix.Local.Installer,
Elixir.Mix.NoProjectError,
Elixir.Mix.NoTaskError,
Elixir.Mix.Project,
Elixir.Mix.ProjectStack,
Elixir.Mix.PublicKey,
Elixir.Mix.Rebar,
Elixir.Mix.Release,
Elixir.Mix.RemoteConverger,
Elixir.Mix.SCM,
Elixir.Mix.SCM.Git,
Elixir.Mix.SCM.Path,
Elixir.Mix.Shell,
Elixir.Mix.Shell.IO,
Elixir.Mix.Shell.Process,
Elixir.Mix.Shell.Quiet,
Elixir.Mix.State,
Elixir.Mix.Task,
Elixir.Mix.Task.Compiler,
Elixir.Mix.Task.Compiler.Diagnostic,
Elixir.Mix.Tasks.App.Config,
Elixir.Mix.Tasks.App.Start,
Elixir.Mix.Tasks.App.Tree,
Elixir.Mix.Tasks.Archive,
Elixir.Mix.Tasks.Archive.Build,
Elixir.Mix.Tasks.Archive.Check,
Elixir.Mix.Tasks.Archive.Install,
Elixir.Mix.Tasks.Archive.Uninstall,
Elixir.Mix.Tasks.Clean,
Elixir.Mix.Tasks.Cmd,
Elixir.Mix.Tasks.Compile,
Elixir.Mix.Tasks.Compile.All,
Elixir.Mix.Tasks.Compile.App,
Elixir.Mix.Tasks.Compile.Elixir,
Elixir.Mix.Tasks.Compile.Erlang,
Elixir.Mix.Tasks.Compile.Leex,
Elixir.Mix.Tasks.Compile.Protocols,
Elixir.Mix.Tasks.Compile.Yecc,
Elixir.Mix.Tasks.CreateLivebookFromModule,
Elixir.Mix.Tasks.Deps,
Elixir.Mix.Tasks.Deps.Clean,
Elixir.Mix.Tasks.Deps.Compile,
Elixir.Mix.Tasks.Deps.Get,
Elixir.Mix.Tasks.Deps.Loadpaths,
Elixir.Mix.Tasks.Deps.Precompile,
Elixir.Mix.Tasks.Deps.Tree,
Elixir.Mix.Tasks.Deps.Unlock,
Elixir.Mix.Tasks.Deps.Update,
Elixir.Mix.Tasks.Do,
Elixir.Mix.Tasks.Escript,
Elixir.Mix.Tasks.Escript.Build,
Elixir.Mix.Tasks.Escript.Install,
Elixir.Mix.Tasks.Escript.Uninstall,
Elixir.Mix.Tasks.Format,
Elixir.Mix.Tasks.Help,
Elixir.Mix.Tasks.Hex,
Elixir.Mix.Tasks.Hex.Audit,
Elixir.Mix.Tasks.Hex.Build,
Elixir.Mix.Tasks.Hex.Config,
Elixir.Mix.Tasks.Hex.Docs,
Elixir.Mix.Tasks.Hex.Info,
Elixir.Mix.Tasks.Hex.Install,
Elixir.Mix.Tasks.Hex.Organization,
Elixir.Mix.Tasks.Hex.Outdated,
Elixir.Mix.Tasks.Hex.Owner,
Elixir.Mix.Tasks.Hex.Package,
Elixir.Mix.Tasks.Hex.Publish,
Elixir.Mix.Tasks.Hex.Registry,
Elixir.Mix.Tasks.Hex.Repo,
Elixir.Mix.Tasks.Hex.Retire,
Elixir.Mix.Tasks.Hex.Search,
Elixir.Mix.Tasks.Hex.Sponsor,
Elixir.Mix.Tasks.Hex.User,
Elixir.Mix.Tasks.Iex,
Elixir.Mix.Tasks.Loadconfig,
Elixir.Mix.Tasks.Loadpaths,
Elixir.Mix.Tasks.Local,
Elixir.Mix.Tasks.Local.Hex,
Elixir.Mix.Tasks.Local.PublicKeys,
Elixir.Mix.Tasks.Local.Rebar,
Elixir.Mix.Tasks.New,
Elixir.Mix.Tasks.Profile.Cprof,
Elixir.Mix.Tasks.Profile.Eprof,
Elixir.Mix.Tasks.Profile.Fprof,
Elixir.Mix.Tasks.Release,
Elixir.Mix.Tasks.Release.Init,
Elixir.Mix.Tasks.Run,
Elixir.Mix.Tasks.Test,
Elixir.Mix.Tasks.Test.Coverage,
Elixir.Mix.Tasks.WillRecompile,
Elixir.Mix.Tasks.Xref,
Elixir.Mix.TasksServer,
Elixir.Mix.Utils,
Elixir.Mod,
Elixir.Module,
Elixir.Module.LocalsTracker,
Elixir.Module.ParallelChecker,
Elixir.Module.Types,
Elixir.Module.Types.Error,
Elixir.Module.Types.Expr,
Elixir.Module.Types.Helpers,
Elixir.Module.Types.Of,
Elixir.Module.Types.Pattern,
Elixir.Module.Types.Unify,
Elixir.ModuleDocFalse,
Elixir.NaiveDateTime,
Elixir.Node,
Elixir.NonElixirBackticks,
Elixir.OptionParser,
Elixir.OptionParser.ParseError,
Elixir.Path,
Elixir.Path.Wildcard,
Elixir.Port,
Elixir.Process,
Elixir.Proto,
Elixir.Protocol,
Elixir.Protocol.UndefinedError,
Elixir.Range,
Elixir.Record,
Elixir.Record.Extractor,
Elixir.Regex,
Elixir.Regex.CompileError,
Elixir.Registry,
Elixir.Registry.Partition,
Elixir.Registry.Supervisor,
Elixir.RuntimeError,
Elixir.Set,
Elixir.StartingDoctestWrong,
Elixir.Stream,
Elixir.Stream.Reducers,
Elixir.String,
Elixir.String.Break,
Elixir.String.Chars,
Elixir.String.Chars.Atom,
Elixir.String.Chars.BitString,
Elixir.String.Chars.Date,
Elixir.String.Chars.DateTime,
Elixir.String.Chars.Float,
Elixir.String.Chars.Integer,
Elixir.String.Chars.List,
Elixir.String.Chars.NaiveDateTime,
Elixir.String.Chars.Time,
Elixir.String.Chars.URI,
Elixir.String.Chars.Version,
Elixir.String.Chars.Version.Requirement,
Elixir.String.Tokenizer,
Elixir.String.Unicode,
Elixir.StringIO,
Elixir.Supervisor,
Elixir.Supervisor.Default,
Elixir.Supervisor.Spec,
Elixir.SyntaxError,
Elixir.System,
Elixir.System.SignalHandler,
Elixir.SystemLimitError,
Elixir.Task,
Elixir.Task.Supervised,
Elixir.Task.Supervisor,
Elixir.Thing,
Elixir.Time,
Elixir.TokenMissingError,
Elixir.TryClauseError,
Elixir.Tuple,
Elixir.TypeDocs,
Elixir.URI,
Elixir.URI.Error,
Elixir.UndefinedFunctionError,
Elixir.UnicodeConversionError,
Elixir.Version,
Elixir.Version.InvalidRequirementError,
Elixir.Version.InvalidVersionError,
Elixir.Version.Parser,
Elixir.Version.Requirement,
Elixir.WithClauseError
]