This library helps to display loading spinners in CLI in non-intrusive manner.
Applications/libraries don't have to depend on any third-party API, but only
need to log loading messages through Python's standard logging library:
logger = logging.getLogger('myapp.logger')
logger.info('Loading data...', extra={'user_waiting': True})
# some long taking process goes here...
logger.info('Finished loading!', extra={'user_waiting': False})At the outest code of the application, setup a SpinnerHandler:
from logging_spinner import SpinnerHandler
logger = logging.getLogger('myapp')
logger.setLevel(logging.INFO)
logger.addHandler(SpinnerHandler())SpinnerHandler is only aware of log records with user_waiting extra
field and displays them with a spinner.
See also sample.py code.
Written by Hong Minhee and distributed under GPLv3 or later.
Released on June 22, 2017.
- Fixed a
ValueErrorraised when a log record with{'user_waiting': Flase}is made without any previous log records with{'user_waiting': True}.
Released on May 21, 2017.
- Fixed a bug that
SpinerHandlerhad crashed whenuser_waitinglog records show a spinner again after a previous spinner was hidden.
Released on May 21, 2017.
logging_spinner.UserWaitingFilterwas introduced to avoid duplicate prints of a log record withuser_waitingextra field.
Released on May 21, 2017. The initial release.
