Metadata-Version: 2.0
Name: notifiers
Version: 0.6.3
Summary: Easily send notifications everywhere
Home-page: https://github.com/liiight/notifiers
Author: Or Carmi
Author-email: or.carmi82@gmail.com
License: MIT
Description-Content-Type: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Requires-Dist: certifi (==2017.11.5)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: click (==6.7)
Requires-Dist: idna (==2.6)
Requires-Dist: jsonschema (==2.6.0)
Requires-Dist: requests (==2.18.4)
Requires-Dist: urllib3 (==1.22)
Provides-Extra: dev
Requires-Dist: alabaster (==0.7.10); extra == 'dev'
Requires-Dist: attrs (==17.3.0); extra == 'dev'
Requires-Dist: babel (==2.5.1); extra == 'dev'
Requires-Dist: bumpversion (==0.5.3); extra == 'dev'
Requires-Dist: certifi (==2017.11.5); extra == 'dev'
Requires-Dist: chardet (==3.0.4); extra == 'dev'
Requires-Dist: click (==6.7); extra == 'dev'
Requires-Dist: codecov (==2.0.10); extra == 'dev'
Requires-Dist: coverage (==4.4.2); extra == 'dev'
Requires-Dist: docutils (==0.14); extra == 'dev'
Requires-Dist: first (==2.0.1); extra == 'dev'
Requires-Dist: idna (==2.6); extra == 'dev'
Requires-Dist: imagesize (==0.7.1); extra == 'dev'
Requires-Dist: jinja2 (==2.10); extra == 'dev'
Requires-Dist: markupsafe (==1.0); extra == 'dev'
Requires-Dist: pip-tools (==1.11.0); extra == 'dev'
Requires-Dist: pluggy (==0.6.0); extra == 'dev'
Requires-Dist: py (==1.5.2); extra == 'dev'
Requires-Dist: pygments (==2.2.0); extra == 'dev'
Requires-Dist: pytest-cov (==2.5.1); extra == 'dev'
Requires-Dist: pytest (==3.3.1); extra == 'dev'
Requires-Dist: pytz (==2017.3); extra == 'dev'
Requires-Dist: requests (==2.18.4); extra == 'dev'
Requires-Dist: six (==1.11.0); extra == 'dev'
Requires-Dist: snowballstemmer (==1.2.1); extra == 'dev'
Requires-Dist: sphinx-autodoc-annotation (==1.0.post1); extra == 'dev'
Requires-Dist: sphinx (==1.6.5); extra == 'dev'
Requires-Dist: sphinxcontrib-websupport (==1.0.1); extra == 'dev'
Requires-Dist: urllib3 (==1.22); extra == 'dev'

Notifiers
=========
The easiest way to send notifications!

.. image:: https://img.shields.io/travis/liiight/notifiers/master.svg?style=flat-square
    :target: https://travis-ci.org/liiight/notifiers
    :alt: Travis CI

.. image:: https://img.shields.io/codecov/c/github/liiight/notifiers/master.svg?style=flat-square
    :target: https://codecov.io/gh/liiight/notifiers
    :alt: Codecov

.. image:: https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=flat-square
    :target: https://gitter.im/notifiers/notifiers

.. image:: https://img.shields.io/pypi/v/notifiers.svg?style=flat-square
    :target: https://pypi.python.org/pypi/notifiers
    :alt: PyPi version

.. image:: https://img.shields.io/pypi/pyversions/notifiers.svg?style=flat-square
    :target: https://pypi.org/project/notifiers
    :alt: Supported Python versions

.. image:: https://img.shields.io/pypi/l/notifiers.svg?style=flat-square
    :target: https://choosealicense.com/licenses
    :alt: License

.. image:: https://img.shields.io/pypi/status/notifiers.svg?style=flat-square
    :target: https://pypi.python.org/pypi/notifiers
    :alt: Status

.. image:: https://img.shields.io/docker/build/liiight/notifiers.svg?style=flat-square
    :target: https://hub.docker.com/r/liiight/notifiers/
    :alt: Docker build

.. image:: https://img.shields.io/readthedocs/notifiers.svg?style=flat-square
    :target: https://readthedocs.org/projects/notifiers/badge/?version=latest
    :alt: RTD

See `Releases <https://github.com/liiight/notifiers/releases>`_ for recent changes

.. inclusion-start

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/>`_

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
-----------

.. code:: 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>

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

-  SendGrid, Graphite, Stride, Prowl, Teams, Twilio and many more...
-  Low level providers (Amazon SNS, Google FCM, OS Toast messages) via ``extra`` dependencies
-  Docs!

Why python 3 only?
~~~~~~~~~~~~~~~~~~

I wanted to avoid the whole unicode issue fiasco if possible, but
there isn't a real constraint in adding python 2 support. If there’s an
overwhelming desire for this, i’ll do it. Probably.

.. inclusion-end

See `Docs <http://notifiers.readthedocs.io/>`_ for more information

