Never write another polling function again!
Documentation available at Read the Docs
You can install the package from Pypi
Polling2 is a powerful python utility used to wait for a function to return a certain expected condition.
Some possible uses cases include:
- Wait for API response to return with code 200
- Wait for a file to exist (or not exist)
- Wait for a thread lock on a resource to expire
Polling2 is handy for getting rid of all that duplicated polling-code. Often, applications require retrying until the correct response is returned. Why re-implement the ability to poll again and again? Use Polling2!
Polling2 is a fork of the original polling. It was forked when the original maintainer failed to respond to issues or PRs.
Polling2 is under active development. Would you like to see a particular feature? Ask and thou shall recieve.
pip install polling2
# install lib, but use system links from the repo into sitepackages.
python setup.py develop
# install test dependenices.
python setup.py test
# run the tests
pytest tests
Note, tox
is also available, as well as pre-commit
.
# install tox and run it
pip install tox
tox
Pre-commit performs auto-formatting and things of that nature before each commit.
pip install pre-commit
pre-commit install
Now pre-commit will run automatically on git commit
.
# This call will wait until the file exists, checking every 0.1 seconds and stopping after 3 seconds have elapsed
file_handle = polling2.poll(
lambda: open('/tmp/myfile.txt'),
ignore_exceptions=(IOError,),
timeout=3,
step=0.1)
# Polling will return the value of your polling function, so you can now interact with it
file_handle.close()
There are more examples in the documentation.