The Wayback Machine - https://web.archive.org/web/20200904153617/https://github.com/kopf/httsleep
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.rst

httsleep

Build Status

Coverage Status

httsleep is a powerful polling library for Python.

Idea

Set your success conditions, set a few alarms, and get polling!

until = {
    'status_code': 200,
    'jsonpath': [{'expression': 'status', 'value': 'OK'}]
}
alarms = [
    {'json': {'status': 'ERROR'}},
    {'jsonpath': [{'expression': 'status', 'value': 'UNKNOWN'},
                  {'expression': 'owner', 'value': 'Chris'}],
    'callback': is_job_really_failing},
    {'status_code': 404}
]
try:
   response = httsleep(
       'http://myendpoint/jobs/1', until, alarms=alarms,
       max_retries=20)
except Alarm as e:
    print "Response was:", e.response
    print "Alarm condition that matched was:", e.alarm

Translated into English, this means:

  • Poll http://myendpoint/jobs/1 -- at most 20 times -- until
    • it returns a status code of 200
    • AND the status key in its response has the value OK
  • but raise an alarm if
    • the status key has the value ERROR
    • OR the status key has the value UNKNOWN AND the owner key has the value Chris AND the function is_job_really_dying returns True
    • OR the status code is 404

Documentation

http://httsleep.readthedocs.io/

Installing

pip install httsleep

Testing

pip install -e .
pip install -r test-requirements.txt
py.test

About

A python library for polling HTTP endpoints - batteries included!

Topics

Resources

License

Packages

No packages published

Languages

You can’t perform that action at this time.