A python 3 client for the Cachet API
A python 3.6+ API client for the open source status page system Cachet.
The goal of this package is to create a user friendly interface to the Cachet API.
- Resources are returned as objects clearly separating read only
properties from the ones we can change. The raw json response
is always available in an
- Active use of type hints throughout the entire codebase making code completion a breeze
- Proper pagination under the hood. Method listing resources will return generators. You can configure the start page and page size that fits the situation. Each new page leads to a new http request.
- Client is using a single session regardless of resource type making more complex work a lot faster (connection reuse)
- A very extensive set of tests/unit tests.
- Easy to extend and test
Please don't hesitate opening an issue about anything related to this package.
pip install cachet-client
import cachetclient from cachetclient.v1 import enums client = cachetclient.Client( endpoint='https://status.test/api/v1', api_token='secrettoken', )
Check if api is responding
if client.ping(): print("Cachet is up and running!")
Create and delete a subscriber
sub = client.subscribers.create(firstname.lastname@example.org', verify=True) sub.delete()
List all subscribers paginated (generator). Each new page is fetched from the server under the hood.
for sub in client.subscribers.list(page=1, per_page=100): print(sub.id, sub.email)
Create a component issue
issue = client.incidents.create( name="Something blew up!", message="We are looking into it", status=enums.INCIDENT_INVESTIGATING, # Optional for component issues component_id=mycomponent.id, component_status=enums.COMPONENT_STATUS_MAJOR_OUTAGE, )
.. and most other features supported by the Cachet API
python -m virtualenv .venv . .venv/bin/activate pip install -e .
This project has a fairly extensive test setup.
- Unit tests are located in
tests/including a fake implementation of the Cachet API.
- A simpler test script under
extras/live_run.pythat needs a running test instance of Cachet.
Running unit tests
pip install -r tests/requirements.txt tox # Optionally tox -e pep8 # for pep8 run only tox -e py36 # tests only # Running tests with pytest also works, but this works poorly in combination with environment variables for the live test script (tox separates environments) pytest tests/
Testing with real Cachet service
Do not run this script against a system in production. This is only for a test service. Cachet can easily be set up locally with docker: https://github.com/CachetHQ/Docker
Optionally we can run cachet from source: https://github.com/CachetHQ/Docker
A local setup is also located in the root or the repo (
You need to set the following environment variables.
python extras/live_run.py ... ================================================= Number of tests : 10 Successful : 10 Failure : 0 Percentage passed : 100.0% =================================================
pip install -r docs/requirements.txt python setup.py build_sphinx
Do not hesitate opening issues or submit completed or partial pull requests. Contributors of all experience levels are welcome.
This project is sponsored by zetta.io
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size cachet_client-4.0.1-py3-none-any.whl (25.6 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
Hashes for cachet_client-4.0.1-py3-none-any.whl