Current section
Files
Jump to
Current section
Files
lib/datasets/datasets.ex
defmodule ExPolars.Datasets do
@moduledoc """
Vega datasets, copied from altair: https://github.com/altair-viz/vega_datasets
"""
alias ExPolars.DataFrame, as: DF
path = Application.app_dir(:ex_polars, ["priv"])
datasets =
path
|> Path.join("local_datasets.json")
|> File.read!()
|> Jason.decode!()
|> Enum.reduce(%{}, fn {name, filename}, acc ->
name = String.replace(name, "-", "_")
filename = Path.join(path, filename)
Map.put(acc, name, filename)
end)
Enum.each(datasets, fn {name, filename} ->
fname = String.to_atom(name)
def unquote(fname)() do
filename = unquote(filename)
{:ok, df} =
case Path.extname(filename) do
".json" -> DF.read_json(filename)
".csv" -> DF.read_csv(filename)
".parquet" -> DF.read_parquet(filename)
_ -> {:ok, nil}
end
df
end
end)
end