{ "info": { "author": "Expo Team", "author_email": "exponent.team@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# exponent-server-sdk-python\n\nThis repo is maintained by Expo's awesome community :heart_eyes:! So, if you have problems with the code in this repository, please feel free to open an issue, and make a PR. Thanks!\n\n## Installation\n\n```\npip install exponent_server_sdk\n```\n\n## Usage\n\nUse to send push notifications to Exponent Experiences from a Python server.\n\n[Full documentation](https://docs.expo.io/versions/latest/guides/push-notifications#http2-api) on the API is available if you want to dive into the details.\n\nHere's an example on how to use this with retries and reporting via [pyrollbar](https://github.com/rollbar/pyrollbar).\n```python\nfrom exponent_server_sdk import DeviceNotRegisteredError\nfrom exponent_server_sdk import PushClient\nfrom exponent_server_sdk import PushMessage\nfrom exponent_server_sdk import PushResponseError\nfrom exponent_server_sdk import PushServerError\nfrom requests.exceptions import ConnectionError\nfrom requests.exceptions import HTTPError\n\n\n# Basic arguments. You should extend this function with the push features you\n# want to use, or simply pass in a `PushMessage` object.\ndef send_push_message(token, message, extra=None):\n try:\n response = PushClient().publish(\n PushMessage(to=token,\n body=message,\n data=extra))\n except PushServerError as exc:\n # Encountered some likely formatting/validation error.\n rollbar.report_exc_info(\n extra_data={\n 'token': token,\n 'message': message,\n 'extra': extra,\n 'errors': exc.errors,\n 'response_data': exc.response_data,\n })\n raise\n except (ConnectionError, HTTPError) as exc:\n # Encountered some Connection or HTTP error - retry a few times in\n # case it is transient.\n rollbar.report_exc_info(\n extra_data={'token': token, 'message': message, 'extra': extra})\n raise self.retry(exc=exc)\n\n try:\n # We got a response back, but we don't know whether it's an error yet.\n # This call raises errors so we can handle them with normal exception\n # flows.\n response.validate_response()\n except DeviceNotRegisteredError:\n # Mark the push token as inactive\n from notifications.models import PushToken\n PushToken.objects.filter(token=token).update(active=False)\n except PushResponseError as exc:\n # Encountered some other per-notification error.\n rollbar.report_exc_info(\n extra_data={\n 'token': token,\n 'message': message,\n 'extra': extra,\n 'push_response': exc.push_response._asdict(),\n })\n raise self.retry(exc=exc)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/expo/exponent-server-sdk-python", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "exponent-server-sdk", "package_url": "https://pypi.org/project/exponent-server-sdk/", "platform": "", "project_url": "https://pypi.org/project/exponent-server-sdk/", "project_urls": { "Homepage": "https://github.com/expo/exponent-server-sdk-python" }, "release_url": "https://pypi.org/project/exponent-server-sdk/0.3.1/", "requires_dist": [ "requests", "six" ], "requires_python": "", "summary": "Expo Server SDK for Python", "version": "0.3.1" }, "last_serial": 5716631, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "255f7671fdd61c64f2ccaffea6c35a9d", "sha256": "c602d820d99d4d0f0eab61453cefca56a01815b365dc20ab02d483aef3c5411f" }, "downloads": -1, "filename": "exponent_server_sdk-0.0.1.tar.gz", "has_sig": false, "md5_digest": "255f7671fdd61c64f2ccaffea6c35a9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1484, "upload_time": "2016-02-12T06:12:53", "url": "https://files.pythonhosted.org/packages/e1/9d/a8462382ec945770b5dbea78cbfe0707a29a5e54da38a1389a722c2507c8/exponent_server_sdk-0.0.1.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "b8265029aeb927d5fac3c66549574b0f", "sha256": "6e1a7976cb4e1bfc955df70305f39d071e9d9dd451a4e3b524089463c6aac33d" }, "downloads": -1, "filename": "exponent_server_sdk-0.0.14.tar.gz", "has_sig": false, "md5_digest": "b8265029aeb927d5fac3c66549574b0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5402, "upload_time": "2018-01-03T02:57:06", "url": "https://files.pythonhosted.org/packages/78/da/09e9de126769ddd758816101ac6f9fbe1303fc03a8993cc8bde9d5fe0c9f/exponent_server_sdk-0.0.14.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "91004b9b0d3adf242bb85aa7a9824c59", "sha256": "662a0e4fd956a3e691009bd10a74b684ddc93e6a3668b146e976f80258c3bbf9" }, "downloads": -1, "filename": "exponent_server_sdk-0.1.0.tar.gz", "has_sig": false, "md5_digest": "91004b9b0d3adf242bb85aa7a9824c59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5351, "upload_time": "2017-02-18T19:18:10", "url": "https://files.pythonhosted.org/packages/0d/b7/c55bb4ad39a3175d98d45325dab5ffd5c87b16def8e7c53e7d6869574a4e/exponent_server_sdk-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "45be0d8d845ae83e97ca62afabd65297", "sha256": "f537fd6ef1389dea4b64a4b80fad5e7663fc7fa561ef6dc200703c89278e8d45" }, "downloads": -1, "filename": "exponent_server_sdk-0.1.1.tar.gz", "has_sig": false, "md5_digest": "45be0d8d845ae83e97ca62afabd65297", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5411, "upload_time": "2017-03-17T19:17:37", "url": "https://files.pythonhosted.org/packages/ed/37/d2bcc4fdc7e5477bbb939fd5152693e1ff8ec82ff82c640a670f2b93aff6/exponent_server_sdk-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "525e70005a4c812cd0f86289f0d67f8b", "sha256": "6d62bbbdcd395f137f51f658c388683d20bf8686a477ceb6fc5e8e1abfbe91fc" }, "downloads": -1, "filename": "exponent_server_sdk-0.1.2.tar.gz", "has_sig": false, "md5_digest": "525e70005a4c812cd0f86289f0d67f8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5403, "upload_time": "2017-12-07T02:09:17", "url": "https://files.pythonhosted.org/packages/74/a4/9e21f7bf354180e60c21ebe579b0bf06531a1e9235c0e38eb80b5eb23f65/exponent_server_sdk-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ec0a4929cdc26b346a667734cb774c99", "sha256": "add2a5ed036b6955e0f881c7267f8987dd97981b1ccc22a04cb7eb0ba1a6c74c" }, "downloads": -1, "filename": "exponent_server_sdk-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ec0a4929cdc26b346a667734cb774c99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5426, "upload_time": "2017-12-13T06:31:40", "url": "https://files.pythonhosted.org/packages/74/01/a05c3fef4ce8cb51444a3fe7f634a862b2c7b7143b6240fa42a18c0371a4/exponent_server_sdk-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "48e3799ec4b15b429eaa9cf5fca0955a", "sha256": "4797f1f97f41f7675b11af6d002697e1c550dcf6460705df78fbe8fc024efe3e" }, "downloads": -1, "filename": "exponent_server_sdk-0.1.4.tar.gz", "has_sig": false, "md5_digest": "48e3799ec4b15b429eaa9cf5fca0955a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5788, "upload_time": "2018-07-07T19:05:31", "url": "https://files.pythonhosted.org/packages/a6/1c/2a612f9912e9488829d8ada7e254c7c0088beadcc4703c0fea461e28db76/exponent_server_sdk-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f326682bb4d55a38182a460e665e82db", "sha256": "f2e04a3478e4985c41c5ee549cc780ea8d4c7e3505a9d4d5a4025be853409f65" }, "downloads": -1, "filename": "exponent_server_sdk-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f326682bb4d55a38182a460e665e82db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6026, "upload_time": "2018-07-13T23:57:50", "url": "https://files.pythonhosted.org/packages/6d/75/f69fba10b3b57ecb888fd20f0ff4078c98b59d20515a3cfa71aa87772532/exponent_server_sdk-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed48f8cf118bfa328e50b84aeaea01e2", "sha256": "657b3670a28838a28cdda31f3010532d6b89331188d47de86ed69a9b844e91e1" }, "downloads": -1, "filename": "exponent_server_sdk-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ed48f8cf118bfa328e50b84aeaea01e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5788, "upload_time": "2018-07-13T23:57:51", "url": "https://files.pythonhosted.org/packages/96/0c/d71cffc4a4af3763c8389bfcb96327c9eadfd99519cf837b810a42db9e24/exponent_server_sdk-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e066ddde1e2d57035a72a158f8166b4e", "sha256": "8a18f0a3616155501ee16cb0234ebcffc4ab00ee3e5d0cfa536da6acbb84f932" }, "downloads": -1, "filename": "exponent_server_sdk-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e066ddde1e2d57035a72a158f8166b4e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7029, "upload_time": "2019-08-22T13:48:20", "url": "https://files.pythonhosted.org/packages/19/96/ba7698ecca13d620bb58a6801371b36a078e30f80dc4044fec026f9dd04d/exponent_server_sdk-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2429078e04d3bc44393e0d660a8171bb", "sha256": "8912d6948d244bf4a158ddaec45e66aa2718dceeb3f5c19a7fc333259d426499" }, "downloads": -1, "filename": "exponent_server_sdk-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2429078e04d3bc44393e0d660a8171bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5974, "upload_time": "2019-08-22T13:48:21", "url": "https://files.pythonhosted.org/packages/2a/b1/7ad1f3ae4c1a25387777cf28c70a3ed8092fa99a0883b854aaa413c0e79c/exponent_server_sdk-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "38580d2d29c0c24412d58db90ca5ff15", "sha256": "8e7520fbe194b1f82c400d1de28de73a7ad020abbd065425f84129cc91047d6c" }, "downloads": -1, "filename": "exponent_server_sdk-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "38580d2d29c0c24412d58db90ca5ff15", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7028, "upload_time": "2019-08-22T18:29:35", "url": "https://files.pythonhosted.org/packages/d9/da/dd7f1cf476d09409adb944164e0bea3df6170844078b1d3e6b4d6556cbb9/exponent_server_sdk-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12eb8e85f94de753604ad3a8acf93de8", "sha256": "aa7ffbf4c552564c0af01f00345e2ca1e95d1bf2797dde5268ea63400ebeeb02" }, "downloads": -1, "filename": "exponent_server_sdk-0.3.1.tar.gz", "has_sig": false, "md5_digest": "12eb8e85f94de753604ad3a8acf93de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5971, "upload_time": "2019-08-22T18:29:36", "url": "https://files.pythonhosted.org/packages/6b/b4/a17fa3cffb9387cedee21d62ed96db4f8e167ba063073221723024d37af9/exponent_server_sdk-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "38580d2d29c0c24412d58db90ca5ff15", "sha256": "8e7520fbe194b1f82c400d1de28de73a7ad020abbd065425f84129cc91047d6c" }, "downloads": -1, "filename": "exponent_server_sdk-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "38580d2d29c0c24412d58db90ca5ff15", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7028, "upload_time": "2019-08-22T18:29:35", "url": "https://files.pythonhosted.org/packages/d9/da/dd7f1cf476d09409adb944164e0bea3df6170844078b1d3e6b4d6556cbb9/exponent_server_sdk-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12eb8e85f94de753604ad3a8acf93de8", "sha256": "aa7ffbf4c552564c0af01f00345e2ca1e95d1bf2797dde5268ea63400ebeeb02" }, "downloads": -1, "filename": "exponent_server_sdk-0.3.1.tar.gz", "has_sig": false, "md5_digest": "12eb8e85f94de753604ad3a8acf93de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5971, "upload_time": "2019-08-22T18:29:36", "url": "https://files.pythonhosted.org/packages/6b/b4/a17fa3cffb9387cedee21d62ed96db4f8e167ba063073221723024d37af9/exponent_server_sdk-0.3.1.tar.gz" } ] }