https://github.com/ddmee/polling2
Powerful polling utility in Python
https://github.com/ddmee/polling2
polling polling-functions python python3
Last synced: 8 months ago
JSON representation
Powerful polling utility in Python
- Host: GitHub
- URL: https://github.com/ddmee/polling2
- Owner: ddmee
- License: mit
- Created: 2019-02-22T15:26:28.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-07-13T08:35:53.000Z (12 months ago)
- Last Synced: 2025-08-21T10:00:21.235Z (10 months ago)
- Topics: polling, polling-functions, python, python3
- Language: Python
- Homepage: https://polling2.readthedocs.io/
- Size: 278 KB
- Stars: 61
- Watchers: 3
- Forks: 9
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
[](https://travis-ci.org/ddmee/polling2)
[](https://pypi.org/project/polling2/)
[](https://pypi.org/project/polling2/)
[](https://polling2.readthedocs.io/en/latest/?badge=latest)
[](https://sonarcloud.io/summary/new_code?id=ddmee_polling2)
[](https://sonarcloud.io/summary/new_code?id=ddmee_polling2)
[](https://sonarcloud.io/summary/new_code?id=ddmee_polling2)
[](https://sonarcloud.io/summary/new_code?id=ddmee_polling2)
[](https://sonarcloud.io/summary/new_code?id=ddmee_polling2)
# polling2
_Never write another polling function again!_
Documentation available at [Read the Docs](https://polling2.readthedocs.io)
You can install the package from [Pypi](https://pypi.org/project/polling2/)
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](https://github.com/justiniso/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.
## Installation
```shell
pip install polling2
```
## Development installation
```shell
# 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`.
```shell
# install tox and run it
pip install tox
tox
```
Pre-commit performs auto-formatting and things of that nature before each commit.
```shell
pip install pre-commit
pre-commit install
```
Now pre-commit will run automatically on ``git commit``.
## Example:
```python
# 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](https://polling2.readthedocs.io/en/latest/examples) in the documentation.
## API and user guide at [Read the Docs](https://polling2.readthedocs.io)
[](https://polling2.readthedocs.io)