{ "info": { "author": "Alexander Tikhonov", "author_email": "random.gauss@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10" ], "description": "aioapns - An efficient APNs Client Library for Python/asyncio\n=================================================================================\n\n.. image:: https://github.com/Fatal1ty/aioapns/workflows/tests/badge.svg\n :target: https://github.com/Fatal1ty/aioapns/actions\n\n.. image:: https://requires.io/github/Fatal1ty/aioapns/requirements.svg?branch=master\n :target: https://requires.io/github/Fatal1ty/aioapns/requirements/?branch=master\n :alt: Requirements Status\n\n.. image:: https://img.shields.io/pypi/v/aioapns.svg\n :target: https://pypi.python.org/pypi/aioapns\n\n.. image:: https://img.shields.io/pypi/pyversions/aioapns.svg\n :target: https://pypi.python.org/pypi/aioapns/\n\n.. image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg\n :target: https://opensource.org/licenses/Apache-2.0\n\n**aioapns** is a library designed specifically for sending push-notifications to iOS devices\nvia Apple Push Notification Service. aioapns provides an efficient client through\nasynchronous HTTP2 protocol for use with Python's ``asyncio``\nframework.\n\naioapns requires Python 3.5 or later.\n\n\nPerformance\n-----------\n\nIn my testing aioapns allows you to send on average 1.3k notifications per second on a single core.\n\n\nFeatures\n--------\n\n* Internal connection pool which adapts to the current load\n* Support for certificate and token based connections\n* Ability to set TTL (time to live) for notifications\n* Ability to set priority for notifications\n* Ability to set collapse-key for notifications\n* Ability to use production or development APNs server\n\n\nInstallation\n------------\n\nUse pip to install::\n\n $ pip install aioapns\n\n\nBasic Usage\n-----------\n\n.. code-block:: python\n\n import asyncio\n from uuid import uuid4\n from aioapns import APNs, NotificationRequest, PushType\n\n\n async def run():\n apns_cert_client = APNs(\n client_cert='/path/to/apns-cert.pem',\n use_sandbox=False,\n )\n apns_key_client = APNs(\n key='/path/to/apns-key.p8',\n key_id='',\n team_id='',\n topic='', # Bundle ID\n use_sandbox=False,\n )\n request = NotificationRequest(\n device_token='',\n message = {\n \"aps\": {\n \"alert\": \"Hello from APNs\",\n \"badge\": \"1\",\n }\n },\n notification_id=str(uuid4()), # optional\n time_to_live=3, # optional\n push_type=PushType.ALERT, # optional\n )\n await apns_cert_client.send_notification(request)\n await apns_key_client.send_notification(request)\n\n loop = asyncio.get_event_loop()\n loop.run_until_complete(run())\n\n\nLicense\n-------\n\naioapns is developed and distributed under the Apache 2.0 license.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Fatal1ty/aioapns", "keywords": "", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "aioapns", "package_url": "https://pypi.org/project/aioapns/", "platform": "all", "project_url": "https://pypi.org/project/aioapns/", "project_urls": { "Homepage": "https://github.com/Fatal1ty/aioapns" }, "release_url": "https://pypi.org/project/aioapns/2.1/", "requires_dist": [ "h2 (>=4.0.0)", "pyOpenSSL (>=17.5.0)", "pyjwt (>=2.0.0)" ], "requires_python": "", "summary": "An efficient APNs Client Library for Python/asyncio", "version": "2.1", "yanked": false, "yanked_reason": null }, "last_serial": 12633011, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "1071e9ee9bc0284008072702a61ac897", "sha256": "a90084455aefe6d7a880cc3b003aa4edadc60deb0e726a98ba732349e04c6fb8" }, "downloads": -1, "filename": "aioapns-0.3.tar.gz", "has_sig": false, "md5_digest": "1071e9ee9bc0284008072702a61ac897", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5506, "upload_time": "2017-05-11T09:06:19", "upload_time_iso_8601": "2017-05-11T09:06:19.956292Z", "url": "https://files.pythonhosted.org/packages/52/36/88c49fb36d5f4b5fa7a994f9ac14b0fab2caa3e17b7e7b55f563b9500819/aioapns-0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4": [ { "comment_text": "", "digests": { "md5": "9007d7174bbd4327ff9e9d4d3bc1a672", "sha256": "33fdbc58d4816d2dbcd533845e65653888640c929e62e7c7f7c0ad3ed8d9e45f" }, "downloads": -1, "filename": "aioapns-0.4.tar.gz", "has_sig": false, "md5_digest": "9007d7174bbd4327ff9e9d4d3bc1a672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5701, "upload_time": "2017-05-11T09:09:47", "upload_time_iso_8601": "2017-05-11T09:09:47.987042Z", "url": "https://files.pythonhosted.org/packages/9a/a2/5cc6c554241b6e4c35400c3309045cd3921030610369be8139d70f5c732d/aioapns-0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5627594c69b1bbd43c09f74789363194", "sha256": "7837667208a914054d5e86a55cc32e698b8c5121e3d333bf628dea3d9a682cb1" }, "downloads": -1, "filename": "aioapns-0.4.1.tar.gz", "has_sig": false, "md5_digest": "5627594c69b1bbd43c09f74789363194", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5724, "upload_time": "2017-05-12T11:23:22", "upload_time_iso_8601": "2017-05-12T11:23:22.921518Z", "url": "https://files.pythonhosted.org/packages/94/72/768ee6ab42d3bdacf85c3fa3538e3c5404c7e3e35ac62456c15769de977d/aioapns-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5": [ { "comment_text": "", "digests": { "md5": "03598808dff2d0e3e303da366482bd0c", "sha256": "b00cb10e22bfe9bfc6deec59ce505b699aa6b8f24626a932fe64960a8f15b6b9" }, "downloads": -1, "filename": "aioapns-0.5.tar.gz", "has_sig": false, "md5_digest": "03598808dff2d0e3e303da366482bd0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5757, "upload_time": "2017-05-29T09:45:03", "upload_time_iso_8601": "2017-05-29T09:45:03.992884Z", "url": "https://files.pythonhosted.org/packages/7f/36/3ea71b5f809cef4238e501f445ec1d94377f69be596f2453c966a57c1b86/aioapns-0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6": [ { "comment_text": "", "digests": { "md5": "92f966e1c360b68f762841758458297d", "sha256": "f95cac134e9e7084703a58312e3035a410bead0c3e622094d3f1baa28e50e0ce" }, "downloads": -1, "filename": "aioapns-0.6.tar.gz", "has_sig": false, "md5_digest": "92f966e1c360b68f762841758458297d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5840, "upload_time": "2017-05-29T11:01:53", "upload_time_iso_8601": "2017-05-29T11:01:53.938253Z", "url": "https://files.pythonhosted.org/packages/db/e8/9b91ecb8fdc85a5d17a53513e065d43dcd32d175bb0a8a3d2fd7751894b8/aioapns-0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0": [ { "comment_text": "", "digests": { "md5": "8594297d7b8b5750bcf1e8f5978c031d", "sha256": "aa8b0880c8602701c796ff52de7d90339a3cfd00bbd3da4e4f8f5386442fb8a7" }, "downloads": -1, "filename": "aioapns-1.0.tar.gz", "has_sig": false, "md5_digest": "8594297d7b8b5750bcf1e8f5978c031d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5846, "upload_time": "2017-08-22T07:36:04", "upload_time_iso_8601": "2017-08-22T07:36:04.106353Z", "url": "https://files.pythonhosted.org/packages/4f/68/a019e6ee6a8ec0ab602807ce3d9ecd7bd39fc491700cd7d6b6953d341c8c/aioapns-1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1": [ { "comment_text": "", "digests": { "md5": "84f7a58174570799e3f75c2fcddcc95c", "sha256": "c677d01436c837a87b56b6cfffbc9ec9d3c63da1dd1bd7b3a8ca2137b97b0390" }, "downloads": -1, "filename": "aioapns-1.1.tar.gz", "has_sig": false, "md5_digest": "84f7a58174570799e3f75c2fcddcc95c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6020, "upload_time": "2018-01-19T10:04:59", "upload_time_iso_8601": "2018-01-19T10:04:59.623605Z", "url": "https://files.pythonhosted.org/packages/4c/3a/9c7bcf363ac276870ec9dfdf1ef66ea0fbb7ae8db3eff335704071033d67/aioapns-1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "1c2cd4c0e773ee133ee9486c3ee1f02b", "sha256": "1da490f93d6ade79726ad57d77f2cdada4c8af5169e81567ac0dbda5284c0e21" }, "downloads": -1, "filename": "aioapns-1.1.1.tar.gz", "has_sig": false, "md5_digest": "1c2cd4c0e773ee133ee9486c3ee1f02b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6028, "upload_time": "2018-01-19T14:51:46", "upload_time_iso_8601": "2018-01-19T14:51:46.473759Z", "url": "https://files.pythonhosted.org/packages/ef/f0/cbcd1a4f4980eb7addf374974ba13935c14784a1423ee11aec2b5ef4f053/aioapns-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.10": [ { "comment_text": "", "digests": { "md5": "555b6af65e3fbe7083c68534922fcf16", "sha256": "65f50c2fd6aea973a6ea54c275a96b52c2db82b6eacb84f97e6ecbf512ba6fd2" }, "downloads": -1, "filename": "aioapns-1.10.tar.gz", "has_sig": false, "md5_digest": "555b6af65e3fbe7083c68534922fcf16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8072, "upload_time": "2020-07-26T13:00:23", "upload_time_iso_8601": "2020-07-26T13:00:23.637970Z", "url": "https://files.pythonhosted.org/packages/e4/03/bbeae753c219a6307f4fa3bf5923a5b690e45e5fea1f6171fe88e0f4cca4/aioapns-1.10.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11": [ { "comment_text": "", "digests": { "md5": "c2bd26aff1b612d06803194a010601ac", "sha256": "7239ec5e2a564a1b23b70555dd8e761e798bd3f2ba8d006230eb9e2f48e6037b" }, "downloads": -1, "filename": "aioapns-1.11.tar.gz", "has_sig": false, "md5_digest": "c2bd26aff1b612d06803194a010601ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8196, "upload_time": "2020-07-31T12:34:37", "upload_time_iso_8601": "2020-07-31T12:34:37.039535Z", "url": "https://files.pythonhosted.org/packages/45/22/ad20dc3273edfd1d8f9c346802a4549bf2ee04f875362867b11f2efdca2f/aioapns-1.11.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12": [ { "comment_text": "", "digests": { "md5": "0fd26d20d8ed7705fdce5121d9ab06fc", "sha256": "263e36188bb218105c35bcbfde9252d78780805168fa2071d3f40b08bee14b17" }, "downloads": -1, "filename": "aioapns-1.12.tar.gz", "has_sig": false, "md5_digest": "0fd26d20d8ed7705fdce5121d9ab06fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8200, "upload_time": "2020-08-16T16:32:36", "upload_time_iso_8601": "2020-08-16T16:32:36.476441Z", "url": "https://files.pythonhosted.org/packages/17/a5/cb15e176c7ea9a99eb86ba91f4c6fbb4a035f119c0a1fd0dec357ccd3ebf/aioapns-1.12.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2": [ { "comment_text": "", "digests": { "md5": "dbab6fed4f53757ca76f35820f58a45b", "sha256": "f3456702cc4a25e2e22ccf2048bc0d43ad2621d1d728689ee3ad5483138a7f87" }, "downloads": -1, "filename": "aioapns-1.2.tar.gz", "has_sig": false, "md5_digest": "dbab6fed4f53757ca76f35820f58a45b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6081, "upload_time": "2018-01-24T20:36:21", "upload_time_iso_8601": "2018-01-24T20:36:21.268452Z", "url": "https://files.pythonhosted.org/packages/a5/ec/1a7c61b3f0ab2c6017ab0505449e196be372d33a8d27ebac45a0bce9cdfc/aioapns-1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3": [ { "comment_text": "", "digests": { "md5": "1aabcc7c785511fe48a4e0a3a7956525", "sha256": "0ed1c427c27e91f8c6edbdf5c5b2b3b27151ee2830797994cc917f00ec82b54c" }, "downloads": -1, "filename": "aioapns-1.3.tar.gz", "has_sig": false, "md5_digest": "1aabcc7c785511fe48a4e0a3a7956525", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6106, "upload_time": "2018-01-29T11:53:24", "upload_time_iso_8601": "2018-01-29T11:53:24.774833Z", "url": "https://files.pythonhosted.org/packages/cb/41/7cc1ba3ae8cb410a795e46f6cad2bf884b748878d81f95540c9306ca8111/aioapns-1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4": [ { "comment_text": "", "digests": { "md5": "f74320df07df227380e62a5d593ac229", "sha256": "1920b1abf6ebdb0e1b8203faa54215ba1ad08411b75a92999059d96f461f430e" }, "downloads": -1, "filename": "aioapns-1.4.tar.gz", "has_sig": false, "md5_digest": "f74320df07df227380e62a5d593ac229", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6132, "upload_time": "2018-08-07T10:05:16", "upload_time_iso_8601": "2018-08-07T10:05:16.934658Z", "url": "https://files.pythonhosted.org/packages/98/87/ecf7f319d9e718722964a7e1b6f5f756976d4f9f33a95e9ac839ac42fd15/aioapns-1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5": [ { "comment_text": "", "digests": { "md5": "377b8ac6b7cfe8788c2b75a564151875", "sha256": "1bfbb7d56849572c8cc53c2ed0b663ccc2fe46630e40768ea459f17a98810f6a" }, "downloads": -1, "filename": "aioapns-1.5.tar.gz", "has_sig": false, "md5_digest": "377b8ac6b7cfe8788c2b75a564151875", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6113, "upload_time": "2019-02-01T11:54:24", "upload_time_iso_8601": "2019-02-01T11:54:24.908632Z", "url": "https://files.pythonhosted.org/packages/03/6b/8672804e30f83dab7998a6fd2e746a50a4c215ecbd4d119b4aa822743f6f/aioapns-1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "55b676bf83d09546c3f2762192d7791a", "sha256": "e98d5d9a4411cb991f9ba60c6be3c62129b403344cf64271fa47c100db048641" }, "downloads": -1, "filename": "aioapns-1.5.1.tar.gz", "has_sig": false, "md5_digest": "55b676bf83d09546c3f2762192d7791a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6109, "upload_time": "2019-04-21T14:22:14", "upload_time_iso_8601": "2019-04-21T14:22:14.308935Z", "url": "https://files.pythonhosted.org/packages/73/f6/dc9dd368b3f38b495dd80a526b3e93f00b1a588a6ca0d7a863de80e22807/aioapns-1.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "31d8e5974812ce2322c4e08f7a2a4a6c", "sha256": "bca43ecbb9d55860b8f0d4904165a89e7883a66b87896f9c4f79b5f1e870f299" }, "downloads": -1, "filename": "aioapns-1.5.2.tar.gz", "has_sig": false, "md5_digest": "31d8e5974812ce2322c4e08f7a2a4a6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6133, "upload_time": "2019-04-21T14:39:56", "upload_time_iso_8601": "2019-04-21T14:39:56.158855Z", "url": "https://files.pythonhosted.org/packages/83/2a/d9c27e80cde406198766391f9722f31211923859a6813935d75380459e5d/aioapns-1.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6": [ { "comment_text": "", "digests": { "md5": "302506dfd2217f9bfffa3428afc5e2e3", "sha256": "9906037f593e032bb1871bc0cb248a7f5cd5fcbf4eceb963428781a97d13e7a7" }, "downloads": -1, "filename": "aioapns-1.6.tar.gz", "has_sig": false, "md5_digest": "302506dfd2217f9bfffa3428afc5e2e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7572, "upload_time": "2019-04-27T17:43:54", "upload_time_iso_8601": "2019-04-27T17:43:54.278309Z", "url": "https://files.pythonhosted.org/packages/97/4c/cb6028c5557393ffef0e4958eee2cb5387e904b1934d7677bf6a948812d5/aioapns-1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "f71b8a304c3b0d125704de9f764697ec", "sha256": "4e3062931ed0b9974a5362aa2d09f1d5650647e5be562cc370865c46d8aa791a" }, "downloads": -1, "filename": "aioapns-1.6.1.tar.gz", "has_sig": false, "md5_digest": "f71b8a304c3b0d125704de9f764697ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7584, "upload_time": "2019-04-30T08:46:57", "upload_time_iso_8601": "2019-04-30T08:46:57.993997Z", "url": "https://files.pythonhosted.org/packages/ba/4f/f9dcb3a1048e5bbb6fe99adea3347b493ced45040c0013b153cb07e5fc6e/aioapns-1.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "dee0e810c8866f2ac9793116ba65db8f", "sha256": "e9714dcdea5ee6184db53662f76314579f5df34d9eddac499fd5579874d14465" }, "downloads": -1, "filename": "aioapns-1.6.2.tar.gz", "has_sig": false, "md5_digest": "dee0e810c8866f2ac9793116ba65db8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7585, "upload_time": "2019-06-13T15:20:54", "upload_time_iso_8601": "2019-06-13T15:20:54.140501Z", "url": "https://files.pythonhosted.org/packages/81/99/f1bc87dfeb25770c428d775ef7fa5b5a7a054440a9ee31466803882ff485/aioapns-1.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7": [ { "comment_text": "", "digests": { "md5": "282a0d2ed2d69b59898a0d43948d5bcd", "sha256": "a547685e05ea094a0974160bca513b30d861d8927d84465c717b165b0c63b379" }, "downloads": -1, "filename": "aioapns-1.7.tar.gz", "has_sig": false, "md5_digest": "282a0d2ed2d69b59898a0d43948d5bcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7691, "upload_time": "2019-06-27T12:31:56", "upload_time_iso_8601": "2019-06-27T12:31:56.986875Z", "url": "https://files.pythonhosted.org/packages/08/8e/bb464b1c90c2a21e5a1dbc1fb0554827c2413e55e99781ef8bd6d991ea3c/aioapns-1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8": [ { "comment_text": "", "digests": { "md5": "052e4fb0ec6992379893594a6ce56328", "sha256": "839fe5c2ba7d411202a22e0c7cc09c44528bf80b621e599b5e4759de1dddd8a3" }, "downloads": -1, "filename": "aioapns-1.8.tar.gz", "has_sig": false, "md5_digest": "052e4fb0ec6992379893594a6ce56328", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7695, "upload_time": "2019-10-14T11:05:03", "upload_time_iso_8601": "2019-10-14T11:05:03.068525Z", "url": "https://files.pythonhosted.org/packages/be/e4/c97daa4b1ad69b62789563dde7e69b296dfffa32da13f940c2bdb7f05f40/aioapns-1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9": [ { "comment_text": "", "digests": { "md5": "ce95196a005eeb6707cc57e723eb2884", "sha256": "48f096e6fcc8373ca84bf7af19c9e67af8c511833ce247d2a7770bd284d0d360" }, "downloads": -1, "filename": "aioapns-1.9.tar.gz", "has_sig": false, "md5_digest": "ce95196a005eeb6707cc57e723eb2884", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7874, "upload_time": "2019-10-30T11:15:38", "upload_time_iso_8601": "2019-10-30T11:15:38.772806Z", "url": "https://files.pythonhosted.org/packages/4c/b9/a8528c3b126b46dee1f2615ce8c18d8f942ead29ad8a24e837c9c19c9c26/aioapns-1.9.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.1": [ { "comment_text": "", "digests": { "md5": "3ab2c703133e45ea841a71f8c461e179", "sha256": "52f5d0928a13f4cb59afecaf38d7a120fb9780184b77f6c2cd4307425652d605" }, "downloads": -1, "filename": "aioapns-1.9.1.tar.gz", "has_sig": false, "md5_digest": "3ab2c703133e45ea841a71f8c461e179", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7799, "upload_time": "2019-11-04T21:37:30", "upload_time_iso_8601": "2019-11-04T21:37:30.154540Z", "url": "https://files.pythonhosted.org/packages/cd/9a/40b0638e66f619a305f47550d22ec758fd566b8c38a2684afed68eb1df81/aioapns-1.9.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0": [ { "comment_text": "", "digests": { "md5": "a094a837a7d05efdd6e24efef8b4d9cf", "sha256": "443ca4850535b723213101b9d91b0c31023cd58cd9fe84b210647795c53412ef" }, "downloads": -1, "filename": "aioapns-2.0.tar.gz", "has_sig": false, "md5_digest": "a094a837a7d05efdd6e24efef8b4d9cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9073, "upload_time": "2021-02-03T22:01:08", "upload_time_iso_8601": "2021-02-03T22:01:08.824910Z", "url": "https://files.pythonhosted.org/packages/f3/f4/c3b011763529d8073156c0e68361e67e925005723411bf2b18ddd32c8ede/aioapns-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "75446ba6c78cfc6cf48ce1ea2002949a", "sha256": "0bca7d1f5ca8abaed948d71ad6355d64496eaecda3b0538245d5d5f675717a23" }, "downloads": -1, "filename": "aioapns-2.0.1.tar.gz", "has_sig": false, "md5_digest": "75446ba6c78cfc6cf48ce1ea2002949a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9092, "upload_time": "2021-02-03T22:05:36", "upload_time_iso_8601": "2021-02-03T22:05:36.418466Z", "url": "https://files.pythonhosted.org/packages/64/70/6b0381950f57d99fb6b4d2835bcab67a9ab212b0cd00e7364f4bf9392e9e/aioapns-2.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "0c74fa763e0091080ce6f6522d2874f4", "sha256": "ea58ce685aa6d0ffbdc3be4a6999c7268b9c765f806d3e4da7677c098fb72cbc" }, "downloads": -1, "filename": "aioapns-2.0.2.tar.gz", "has_sig": false, "md5_digest": "0c74fa763e0091080ce6f6522d2874f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9271, "upload_time": "2021-02-03T22:18:05", "upload_time_iso_8601": "2021-02-03T22:18:05.256178Z", "url": "https://files.pythonhosted.org/packages/0a/47/83a67bbf71334317e97e882e779d6407af891f5a1eef7e30af18a7bf5b5f/aioapns-2.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1": [ { "comment_text": "", "digests": { "md5": "463789e910b07a5f20d603d862fe1f13", "sha256": "095a205ec08481a640ea85be1a85e4c1b26a43058a489ee7e48dcc13ab2d1d12" }, "downloads": -1, "filename": "aioapns-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "463789e910b07a5f20d603d862fe1f13", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13133, "upload_time": "2022-01-20T13:53:00", "upload_time_iso_8601": "2022-01-20T13:53:00.037821Z", "url": "https://files.pythonhosted.org/packages/44/13/6c9d4ddc68bdadfcd40d79ec38c7e9ed810949582e25698a577f06a66321/aioapns-2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cb05be6e502e710b00615c195226487c", "sha256": "2ce526910bc2514a84b8105abe80508526ceafc0097c89f86bbbc501f8666c99" }, "downloads": -1, "filename": "aioapns-2.1.tar.gz", "has_sig": false, "md5_digest": "cb05be6e502e710b00615c195226487c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13104, "upload_time": "2022-01-20T13:53:02", "upload_time_iso_8601": "2022-01-20T13:53:02.102685Z", "url": "https://files.pythonhosted.org/packages/d9/96/3710b67291400645c8a9618ae7e9cdea0b52fc789a4d2137e216c179a54b/aioapns-2.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "463789e910b07a5f20d603d862fe1f13", "sha256": "095a205ec08481a640ea85be1a85e4c1b26a43058a489ee7e48dcc13ab2d1d12" }, "downloads": -1, "filename": "aioapns-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "463789e910b07a5f20d603d862fe1f13", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13133, "upload_time": "2022-01-20T13:53:00", "upload_time_iso_8601": "2022-01-20T13:53:00.037821Z", "url": "https://files.pythonhosted.org/packages/44/13/6c9d4ddc68bdadfcd40d79ec38c7e9ed810949582e25698a577f06a66321/aioapns-2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cb05be6e502e710b00615c195226487c", "sha256": "2ce526910bc2514a84b8105abe80508526ceafc0097c89f86bbbc501f8666c99" }, "downloads": -1, "filename": "aioapns-2.1.tar.gz", "has_sig": false, "md5_digest": "cb05be6e502e710b00615c195226487c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13104, "upload_time": "2022-01-20T13:53:02", "upload_time_iso_8601": "2022-01-20T13:53:02.102685Z", "url": "https://files.pythonhosted.org/packages/d9/96/3710b67291400645c8a9618ae7e9cdea0b52fc789a4d2137e216c179a54b/aioapns-2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }