The easy way to send notifications
Project description
Notifiers
=========

[ ](https://travis-ci.org/notifiers/notifiers) [ ](https://codecov.io/gh/notifiers/notifiers) [ ](https://gitter.im/notifiers/notifiers) [ ](https://pypi.python.org/pypi/notifiers) [ ](https://pypi.org/project/notifiers) [ ](https://choosealicense.com/licenses) [ ](https://pypi.org/project/notifiers/) [ ](https://hub.docker.com/r/liiight/notifiers/) [ ](https://readthedocs.org/projects/notifiers/badge/?version=latest) [ ](https://paypal.me/notifiers) [](http://pepy.tech/count/notifiers)
[ ](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) ☕
=========

[ ](https://travis-ci.org/notifiers/notifiers) [ ](https://codecov.io/gh/notifiers/notifiers) [ ](https://gitter.im/notifiers/notifiers) [ ](https://pypi.python.org/pypi/notifiers) [ ](https://pypi.org/project/notifiers) [ ](https://choosealicense.com/licenses) [ ](https://pypi.org/project/notifiers/) [ ](https://hub.docker.com/r/liiight/notifiers/) [ ](https://readthedocs.org/projects/notifiers/badge/?version=latest) [ ](https://paypal.me/notifiers) [](http://pepy.tech/count/notifiers)
[ ](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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
notifiers-0.7.3-py3-none-any.whl
(50.5 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a60c762975456a2e52103346817ad4cb7f7caba65aaf1e6bb6f4524949516cd
|
|
| MD5 |
c7d88062e55f3853746197c596ccf531
|
|
| BLAKE2b-256 |
fb653a4fb3ebba5346deb62c7b55ce7d680afc8e1e74d3a3f5aa428766c89351
|
File details
Details for the file notifiers-0.7.3-py3-none-any.whl.
File metadata
- Download URL: notifiers-0.7.3-py3-none-any.whl
- Upload date:
- Size: 50.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13ad74c307510633d2579f96d1e36cc2eec2b87cf048c3d511fa425c26b363e5
|
|
| MD5 |
88d374a72fcd31d7ab7aa4d747a91145
|
|
| BLAKE2b-256 |
4e61baf51a1f63f614e0049909f6c3ebb1ca1ce2bf885f48c81fbb6693f868c1
|