/tqdm_elixir

Add a progress bar to your enumerables in a second

Primary LanguageElixirApache License 2.0Apache-2.0

Build Status Coverage Status Inline docs Hex.pm package version Hex.pm package license

Tqdm

Tqdm easily adds a CLI progress bar to any enumerable.

tqdm

A (partial) port of Python's tqdm to Elixir. Thanks noamraph and all other contributors for the original library!

Just wrap Lists, Maps, Streams, or anything else that implements Enumerable with Tqdm.tqdm:

for _ <- Tqdm.tqdm(1..1000) do
  :timer.sleep(10)
end

# or

1..1000
|> Tqdm.tqdm()
|> Enum.map(fn _ -> :timer.sleep(10) end)

# or even...

1..1000
|> Stream.map(fn _ -> :timer.sleep(10) end)
|> Tqdm.tqdm(total: 1000)
|> Stream.run()

# |###-------| 392/1000 39.0% [elapsed: 00:00:04.627479 left: 00:00:07, 84.71 iters/sec]

Full documentation can be found here.

Installation

  1. Add tqdm to your list of dependencies in mix.exs:
    def deps do
      [{:tqdm, "~> 0.0.2"}]
    end
  1. Ensure tqdm is added to your list of applications:
    def application do
      [applications: [:tqdm]]
    end