Skip to main content

The easy way to send notifications

Project description

Notifiers
=========
![Full logo](https://raw.githubusercontent.com/notifiers/notifiers/develop/assets/images/circle_full_logo.png)

[![Travis CI](https://img.shields.io/travis/notifiers/notifiers/master.svg?style=flat-square) ](https://travis-ci.org/notifiers/notifiers) [![Codecov](https://img.shields.io/codecov/c/github/notifiers/notifiers/master.svg?style=flat-square) ](https://codecov.io/gh/notifiers/notifiers) [![image](https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=flat-square) ](https://gitter.im/notifiers/notifiers) [![PyPi version](https://img.shields.io/pypi/v/notifiers.svg?style=flat-square) ](https://pypi.python.org/pypi/notifiers) [![Supported Python versions](https://img.shields.io/pypi/pyversions/notifiers.svg?style=flat-square) ](https://pypi.org/project/notifiers) [![License](https://img.shields.io/pypi/l/notifiers.svg?style=flat-square) ](https://choosealicense.com/licenses) [![Status](https://img.shields.io/pypi/status/notifiers.svg?style=flat-square) ](https://pypi.org/project/notifiers/) [![Docker build](https://img.shields.io/docker/build/liiight/notifiers.svg?style=flat-square) ](https://hub.docker.com/r/liiight/notifiers/) [![RTD](https://img.shields.io/readthedocs/notifiers.svg?style=flat-square) ](https://readthedocs.org/projects/notifiers/badge/?version=latest) [![Paypal](https://img.shields.io/badge/Donate-PayPal-green.svg?style=flat-square) ](https://paypal.me/notifiers) [![Downloads](http://pepy.tech/badge/notifiers)](http://pepy.tech/count/notifiers)
[![Twitter Follow](https://img.shields.io/twitter/follow/liiight.svg?style=flat-square&logo=twitter&label=Follow) ](https://twitter.com/liiight)


See [changelog](http://notifiers.readthedocs.io/en/latest/changelog.html) for recent changes

Got an app or service and you want to enable your users to use notifications with their provider of choice? Working on a script and you want to receive notification based on its output? You don't need to implement a solution yourself, or use individual provider libs. A one stop shop for all notification providers with a unified and simple interface.

Supported providers
-------------------

[Pushover](https://pushover.net/), [SimplePush](https://simplepush.io/), [Slack](https://api.slack.com/), [Gmail](https://www.google.com/gmail/about/), Email (SMTP), [Telegram](https://telegram.org/), [Gitter](https://gitter.im), [Pushbullet](https://www.pushbullet.com), [Join](https://joaoapps.com/join/), [Hipchat](https://www.hipchat.com/docs/apiv2), [Zulip](https://zulipchat.com/), [Twilio](https://www.twilio.com/), [Pagerduty](https://www.pagerduty.com), [Mailgun](https://www.mailgun.com/), [PopcornNotify](https://popcornnotify.com), [StatusPage.io](https://statuspage.io)

Advantages
----------

- Spend your precious time on your own code base, instead of chasing down 3rd party provider APIs. That's what we're here for!
- With a minimal set of well known and stable dependencies ([requests](https://pypi.python.org/pypi/requests), [jsonschema](https://pypi.python.org/pypi/jsonschema/2.6.0) and [click](https://pypi.python.org/pypi/click/6.7)) you're better off than installing 3rd party SDKs.
- A unified interface means that you already support any new providers that will be added, no more work needed!
- Thorough testing means protection against any breaking API changes. We make sure your code your notifications will always get delivered!

Installation
------------

Via pip:
```
$ pip install notifiers
```
Or Dockerhub:
```
$ docker pull liiight/notifiers
```
Basic Usage
-----------

```python
>>> from notifiers import get_notifier
>>> p = get_notifier('pushover')
>>> p.required
{'required': ['user', 'message', 'token']}
>>> p.notify(user='foo', token='bar', message='test')
<NotificationResponse,provider=Pushover,status=Success>
```

Or:
```python
>>> from notifiers import notify
>>> notify('pushover', user='foo', token='bar', message='test')
<NotificationResponse,provider=Pushover,status=Success>
```

From CLI
--------

```text
$ notifiers pushover notify --user foo --token baz "This is so easy!"
```

As a logger
-----------

Directly add to your existing stdlib logging:

```python
>>> import logging
>>> from notifiers.logging import NotificationHandler

>>> log = logging.getLogger(__name__)

>>> defaults = {
'token': 'foo,
'user': 'bar
}
>>> hdlr = NotificationHandler('pushover', defaults=defaults)
>>> hdlr.setLevel(logging.ERROR)

>>> log.addHandler(hdlr)
>>> log.error('And just like that, you get notified about all your errors!')
```

Mentions
--------

- Mentioned in [Python Bytes](https://pythonbytes.fm/episodes/show/67/result-of-moving-python-to-github) podcast

In the near future
------------------

- Many more providers!
- Low level providers (Amazon SNS, Google FCM, OS Toast messages) via `extra` dependencies

See [Docs](http://notifiers.readthedocs.io/) for more information

Donations
---------

If you like this and want to buy me a cup of coffee, please click the donation button above or click this [link](https://paypal.me/notifiers) ☕


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notifiers-0.7.3.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notifiers-0.7.3-py3-none-any.whl (50.5 kB view details)

Uploaded Python 3

File details

Details for the file notifiers-0.7.3.tar.gz.

File metadata

  • Download URL: notifiers-0.7.3.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for notifiers-0.7.3.tar.gz
Algorithm Hash digest
SHA256 7a60c762975456a2e52103346817ad4cb7f7caba65aaf1e6bb6f4524949516cd
MD5 c7d88062e55f3853746197c596ccf531
BLAKE2b-256 fb653a4fb3ebba5346deb62c7b55ce7d680afc8e1e74d3a3f5aa428766c89351

See more details on using hashes here.

File details

Details for the file notifiers-0.7.3-py3-none-any.whl.

File metadata

File hashes

Hashes for notifiers-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 13ad74c307510633d2579f96d1e36cc2eec2b87cf048c3d511fa425c26b363e5
MD5 88d374a72fcd31d7ab7aa4d747a91145
BLAKE2b-256 4e61baf51a1f63f614e0049909f6c3ebb1ca1ce2bf885f48c81fbb6693f868c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page