animation

Decorators for terminal-based wait animations.


Keywords
animation, wait, waiting, status
License
MIT
Install
pip install animation==0.0.6

Documentation

animation

Tools for terminal-based wait animations

Installation

git clone http://github.com/bprinty/animation.git
cd animation
python setup.py install

Documentation

Documentation for the package can be found at Read The Docs.

Usage

The animation module provides decorators for doing terminal-based wait animations. To add a wait animation to a function that requires some processing time, simply decorate the function with the wait animation you want to use.

Here is an example of how to use it in a project:

import animation
import time

@animation.simple_wait
def long_running_function():
    ... 5 seconds later ...
    return

This will print an animated waiting message like this (the elipses at the end of the text grow and shrink while the function executes):

waiting ...

The animation types provided by default are:

  • bar (simple bar that slides back and forth)
  • spinner (a spinning line)
  • dots (dots that move around in a sqare)
  • elipses (elipses that grow and shrink)
  • text with elipses (elipses with text in front of them)

And you can use any of these built-in animations like so:

import animation
import time

@animation.wait('bar')
def long_running_function():
    ... 5 seconds later ...
    return

@animation.wait('spinner')
def long_running_function():
    ... 5 seconds later ...
    return

In addition to these default types, the module also supports custom animations. For example, to create an animation with a counter-clockwise spinning wheel:

wheel = ('-', '/', '|', '\\')
@animation.wait(wheel)
def long_running_function():
    ... 5 seconds later ...
    return

If you want to manually start and stop the wait animation, you can use the `animation.Wait` class:

wait = animation.Wait()
wait.start()
long_running_function()
wait.stop()

Finally, you can change the color of animations with the `color=` argument:

import animation

@animation.wait('bar', color='blue')
def long_running_function():
    ... 5 seconds later ...
    return

Questions/Feedback

File an issue in the GitHub issue tracker.