d3d75d1073ef259b45bdefb293ef33a554462bef
Otherwise, the next self._connection.connect() call will not try again. In fact, it will do nothing. It won't raise the exception again. Therefore, closing the connection before retrying is mandatory.
PyAPNs2
Python library for interacting with the Apple Push Notification service (APNs) via HTTP/2 protocol
Installation
Either download the source from GitHub or use easy_install:
$ easy_install apns2
Sample usage
from apns2.client import APNsClient
from apns2.payload import Payload
token_hex = 'b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b87'
payload = Payload(alert="Hello World!", sound="default", badge=1)
topic = 'com.example.App'
client = APNsClient('key.pem', use_sandbox=False, use_alternative_port=False)
client.send_notification(token_hex, payload, topic)
Further Info
iOS Reference Library: Local and Push Notification Programming Guide
Contributing
To develop PyAPNs2, check out the code and install dependencies. It's recommended to use a virtualenv to isolate dependencies:
# Clone the source code.
git clone https://github.com/Pr0ger/PyAPNs2.git
cd PyAPNs2
# Create a virtualenv and install dependencies.
virtualenv venv
. venv/bin/activate
pip install -e .
To run the tests:
pip install -r requirements-dev.txt
python -m unittest discover test
You can use tox for running tests with all supported Python versions:
pyenv install 2.7.13 && pyenv install 3.4.6 && pyenv install 3.5.3 & pyenv install 3.6.0
pyenv local 3.6.0 3.5.3 3.4.6 2.7.13
tox
To run the linter:
pip install pylint
pylint --reports=n apns2 test
License
PyAPNs2 is distributed under the terms of the MIT license.
See LICENSE file for the complete license details.
Languages
Python
100%