Airship Python Library
***********************
``urbanairship`` is a Python library for using the `Airship
`_ web service in support of our messaging product
lines and related features.
Installation
=============
Using ``pip``::
$ pip install urbanairship
Using the library
==================
The library is intended to be used with the small footprint of a single
import. To get started, import the package, and create an
:py:class:`Airship` object representing a single Airship project.
.. code-block:: python
import urbanairship as ua
airship = ua.Airship('', '')
push = airship.Push(airship=airship)
push.audience = ua.ios_channel('074e84a2-9ed9-4eee-9ca4-cc597bfdbef3')
push.notification = ua.notification(ios=ua.ios(alert='Hello from Python', badge=1))
push.device_types = ua.device_types('ios')
push.send()
The library uses `requests`_ for communication with the Airship API,
providing connection pooling and strict SSL checking. The ``Airship``
object is threadsafe, and can be instantiated once and reused in
multiple threads.
EU Base URL
-----------
When creating an instance of ``urbanairship.Airship``, an optional argument
may be added to specify use of Airship's EU data center. This is required for projects
based in our EU data center. If no location argument is passed, the US data center will be used.
.. code-block:: python
import urbanairship as ua
eu_airship = ua.Airship(key='', secret='', location='eu')
Logging
-------
``urbanairship`` uses the standard logging module for integration into
an application's existing logging. If you do not have logging
configured otherwise, your application can set it up like so:
.. code-block:: python
import logging
logging.basicConfig()
If you're having trouble with the Airship API, you can turn on verbose debug
logging.
.. code-block:: python
logging.getLogger('urbanairship').setLevel(logging.DEBUG)
As of Python 2.7, ``DeprecationWarning`` warnings are silenced by
default. To enable them, use the ``warnings`` module:
.. code-block:: python
import warnings
warnings.simplefilter('default')
Exceptions
==========
.. autoclass:: urbanairship.AirshipFailure
.. autoclass:: urbanairship.Unauthorized
.. autoclass:: urbanairship.ConnectionFailure
Development
============
The library source code is `available on GitHub `_.
Tests can be run with nose_:
.. code-block:: sh
nosetests --with-doctest
Contents
=========
.. toctree::
:maxdepth: 3
push.rst
devices.rst
audience.rst
reports.rst
custom_events.rst
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
.. _channels: https://docs.airship.com/api/ua/?python#tag-channels
.. _requests: http://python-requests.org
.. _github: https://github.com/urbanairship/python-library
.. _nose: https://nose.readthedocs.org/en/latest/