{ "info": { "author": "R\u00f3bert M\u00e1rki", "author_email": "gsmiko@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: AsyncIO", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython" ], "description": "aiosfstream\n===========\n\n.. image:: https://badge.fury.io/py/aiosfstream.svg\n :target: https://badge.fury.io/py/aiosfstream\n :alt: PyPI package\n\n.. image:: https://readthedocs.org/projects/aiosfstream/badge/?version=latest\n :target: http://aiosfstream.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://travis-ci.org/robertmrk/aiosfstream.svg?branch=develop\n :target: https://travis-ci.org/robertmrk/aiosfstream\n :alt: Build status\n\n.. image:: https://coveralls.io/repos/github/robertmrk/aiosfstream/badge.svg\n :target: https://coveralls.io/github/robertmrk/aiosfstream\n :alt: Coverage\n\n.. image:: https://img.shields.io/badge/License-MIT-yellow.svg\n :target: https://opensource.org/licenses/MIT\n :alt: MIT license\n\naiosfstream is a `Salesforce Streaming API `_ client for asyncio_. It can\nbe used to receive push notifications about changes on Salesforce objects or\nnotifications of general events sent through the `Streaming API `_.\n\nFor detailed guidance on how to work with `PushTopics `_ or how\nto create `Generic Streaming Channels `_ please consult the\n`Streaming API documentation `_.\nFor working with `Platform Events `_ or\n`Change Data Capture events `_ check out the linked\ndocumentation.\n\nFeatures\n--------\n\n- Supported authentication types:\n - using a username and password\n - using a refresh token\n- Subscribe to and receive messages on:\n - `PushTopics `_\n - `Generic Streaming Channels `_\n - `Platform Events `_\n - `Change Data Capture events `_\n- Support for `durable messages and replay of events `_\n- Automatic recovery from replay errors\n\nUsage\n-----\n\n.. code-block:: python\n\n import asyncio\n\n from aiosfstream import SalesforceStreamingClient\n\n\n async def stream_events():\n # connect to Streaming API\n async with SalesforceStreamingClient(\n consumer_key=\"\",\n consumer_secret=\"\",\n username=\"\",\n password=\"\") as client:\n\n # subscribe to topics\n await client.subscribe(\"/topic/one\")\n await client.subscribe(\"/topic/two\")\n\n # listen for incoming messages\n async for message in client:\n topic = message[\"channel\"]\n data = message[\"data\"]\n print(f\"{topic}: {data}\")\n\n if __name__ == \"__main__\":\n loop = asyncio.get_event_loop()\n loop.run_until_complete(stream_events())\n\nDocumentation\n-------------\n\nhttp://aiosfstream.readthedocs.io/\n\n.. _aiohttp: https://github.com/aio-libs/aiohttp/\n.. _asyncio: https://docs.python.org/3/library/asyncio.html\n.. _api: https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/intro_stream.htm\n.. _PushTopic: https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/working_with_pushtopics.htm\n.. _GenericStreaming: https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/generic_streaming_intro.htm#generic_streaming_intro\n.. _replay: https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/using_streaming_api_durability.htm\n.. _PlatformEvents: https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_intro.htm\n.. _ChangeDataCapture: https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_intro.htm\n\nChangelog\n=========\n\n0.5.0 (2019-03-08)\n------------------\n\n- Add support for Change Data Capture events\n- Fix some typos in the documentation\n\n0.4.0 (2019-01-06)\n------------------\n\n- Add type hints\n- Configurable replay storage behavior\n\n0.3.0 (2018-11-07)\n------------------\n\n- Add support for sandbox orgs\n\n0.2.5 (2018-11-06)\n------------------\n\n- Add missing changelog entries\n\n0.2.4 (2018-11-06)\n------------------\n\n- Fix platform event message creation date extraction issue\n\n0.2.3 (2018-09-19)\n------------------\n\n- Fix asynchronous iterator bug in python 3.7\n\n0.2.2 (2018-06-15)\n------------------\n\n- Update aiocometd dependency to 0.3.1\n\n0.2.1 (2018-05-25)\n------------------\n\n- Fix replay issues on mass record delete operations\n- Improve the documentation of the Client.publish method\n\n0.2.0 (2018-05-05)\n------------------\n\n- Enable the usage of third party JSON libraries\n- Expose authentication results as public attributes in Authenticator classes\n\n0.1.0 (2018-04-26)\n------------------\n\n- Supported authentication types:\n - using a username and password\n - using a refresh token\n- Subscribe to and receive messages on:\n - `PushTopics `_\n - `Generic Streaming Channels `_\n- Support for `durable messages and replay of events `_\n- Automatic recovery from replay errors\n\n.. _aiohttp: https://github.com/aio-libs/aiohttp/\n.. _asyncio: https://docs.python.org/3/library/asyncio.html\n.. _api: https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/intro_stream.htm\n.. _PushTopic: https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/working_with_pushtopics.htm\n.. _GenericStreaming: https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/generic_streaming_intro.htm#generic_streaming_intro\n.. _replay: https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/using_streaming_api_durability.htm\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/robertmrk/aiosfstream", "keywords": "salesforce asyncio aiohttp comet cometd bayeux push streaming", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aiosfstream", "package_url": "https://pypi.org/project/aiosfstream/", "platform": "", "project_url": "https://pypi.org/project/aiosfstream/", "project_urls": { "CI": "https://travis-ci.org/robertmrk/aiosfstream", "Coverage": "https://coveralls.io/github/robertmrk/aiosfstream", "Docs": "http://aiosfstream.readthedocs.io/", "Homepage": "https://github.com/robertmrk/aiosfstream" }, "release_url": "https://pypi.org/project/aiosfstream/0.5.0/", "requires_dist": [ "aiocometd (<0.5.0,>=0.4.1)", "aiohttp (<4.0,>=3.1)", "asynctest (<1.0.0,>=0.12.0) ; extra == 'dev'", "coverage (<5.0,>=4.5) ; extra == 'dev'", "flake8 ; extra == 'dev'", "pylint ; extra == 'dev'", "mypy ; extra == 'dev'", "Sphinx (<2.0,>=1.7) ; extra == 'dev'", "sphinxcontrib-asyncio (>=0.2.0) ; extra == 'dev'", "sphinx-autodoc-typehints ; extra == 'dev'", "Sphinx (<2.0,>=1.7) ; extra == 'docs'", "sphinxcontrib-asyncio (>=0.2.0) ; extra == 'docs'", "sphinx-autodoc-typehints ; extra == 'docs'", "asynctest (<1.0.0,>=0.12.0) ; extra == 'tests'", "coverage (<5.0,>=4.5) ; extra == 'tests'", "flake8 ; extra == 'tests'", "pylint ; extra == 'tests'", "mypy ; extra == 'tests'" ], "requires_python": ">=3.6.0", "summary": "Salesforce Streaming API client for asyncio", "version": "0.5.0" }, "last_serial": 4914329, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8ff989073b2f38868942be0e00d3ffa7", "sha256": "94198110aad3051afd3935e09c8dd13240ea6720fd1f8417a04acbd59ea6313d" }, "downloads": -1, "filename": "aiosfstream-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8ff989073b2f38868942be0e00d3ffa7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 11162, "upload_time": "2018-04-26T14:19:11", "url": "https://files.pythonhosted.org/packages/0c/6f/275448f4b449fa4356fdacf1d27c6aff01121b56b085c7138ae535e5b906/aiosfstream-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4906397ac7df25af992d2ef639c71b6b", "sha256": "e9fc3dc25941daa764812ca26ffa233f06be9b3e6fd1bafe95fd6ae98db0fe2d" }, "downloads": -1, "filename": "aiosfstream-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4906397ac7df25af992d2ef639c71b6b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 55665, "upload_time": "2018-04-26T14:19:12", "url": "https://files.pythonhosted.org/packages/6a/25/30f1bccf0f6cdbd3c54a3e11c513b8052f13622bd7183a711f3a65b6d9c4/aiosfstream-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d40f61de7c51882d461ca861683d8347", "sha256": "2463b85092e2eaa9376b33921b97830412a63a852b694791ae312fd5b52f0444" }, "downloads": -1, "filename": "aiosfstream-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d40f61de7c51882d461ca861683d8347", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 11916, "upload_time": "2018-05-04T22:48:37", "url": "https://files.pythonhosted.org/packages/9b/e0/e3544fd5179cd11c5f862e2a303b4cce68fa6a27a23eab01200f02545502/aiosfstream-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa4fcc815bee54547c38fef0721c8ca2", "sha256": "f5ee3631220e142819a22641bb2f581a2e7ded092a14a4d7c7b4c77b93645b4e" }, "downloads": -1, "filename": "aiosfstream-0.2.0.tar.gz", "has_sig": false, "md5_digest": "aa4fcc815bee54547c38fef0721c8ca2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 56739, "upload_time": "2018-05-04T22:48:40", "url": "https://files.pythonhosted.org/packages/5a/80/2bfdf9eeee36a54596d2a9914af476d818855b7eaa1ea3e357d1d212cd87/aiosfstream-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "655c6c84b2c63b5b2f6136d89a6f6987", "sha256": "3d20ec9c688a40fe657f0c31e106442ea15b272fcaef7cd147726cea82878cf4" }, "downloads": -1, "filename": "aiosfstream-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "655c6c84b2c63b5b2f6136d89a6f6987", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12334, "upload_time": "2018-05-25T11:34:41", "url": "https://files.pythonhosted.org/packages/73/3b/594f301b30d09cba59d08e0f16e1e83c39fcc0366e9af3613139c6f77444/aiosfstream-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a7d997e6ac501b114d0ec9f4bda1339", "sha256": "37bd0065d4aff319dd53440d54430b5da76b8ee6b006868a5419dde28b272d32" }, "downloads": -1, "filename": "aiosfstream-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0a7d997e6ac501b114d0ec9f4bda1339", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 57182, "upload_time": "2018-05-25T11:34:45", "url": "https://files.pythonhosted.org/packages/3f/ee/d7962d7d9653ce87cdd343c6c5ccf35e53ddfacd92b98d5402785e964aa0/aiosfstream-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "71470ccd8576e7f1161a897f7526d7c6", "sha256": "f9207080b8e6490f3f87604381d765b9c733b006994aa253d2159070f631cefa" }, "downloads": -1, "filename": "aiosfstream-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "71470ccd8576e7f1161a897f7526d7c6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12359, "upload_time": "2018-06-15T12:07:59", "url": "https://files.pythonhosted.org/packages/99/95/3e8f55ff43437773f5b57c89dbdb8d75c86862934421dc9dcae331acccde/aiosfstream-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e03a9504e2af0616bc78bd3b0043995", "sha256": "146b86614e811b3d7cb4de9749fd5d4c525cd87afca202cea24e4bea7f35b96f" }, "downloads": -1, "filename": "aiosfstream-0.2.2.tar.gz", "has_sig": false, "md5_digest": "1e03a9504e2af0616bc78bd3b0043995", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 57256, "upload_time": "2018-06-15T12:08:02", "url": "https://files.pythonhosted.org/packages/b6/7c/7a0ef4289fea93076292d9d78f640ff0ca344ea2ed26771dec877c341a1f/aiosfstream-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "6264c7e11683c9e0fc6665abd22a90f4", "sha256": "771c18f7911fed3935e69ecc813595b444948fd2e143bea9e865952745749979" }, "downloads": -1, "filename": "aiosfstream-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6264c7e11683c9e0fc6665abd22a90f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12536, "upload_time": "2018-09-19T13:40:05", "url": "https://files.pythonhosted.org/packages/89/52/13f4907b604d01cbf85066e1b11cf269f04091e49e601456aade51486240/aiosfstream-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5982a50a1da754b3148713198e9ced7", "sha256": "06b58b07ca8f8eb2786a6740b6b6ddc6c8211ae2e0330391f215f598243e42bd" }, "downloads": -1, "filename": "aiosfstream-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f5982a50a1da754b3148713198e9ced7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 57913, "upload_time": "2018-09-19T13:40:07", "url": "https://files.pythonhosted.org/packages/ef/8e/d4229317c924939e335dadc5c7f9633f1e9435116ee2a88850e3d82e684c/aiosfstream-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "0d06b9b3665212f080469d57172f7854", "sha256": "c4edea3db7aaa9cac71764f03b49d07e3d71213af91e942ba18b8b1f417fde01" }, "downloads": -1, "filename": "aiosfstream-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "0d06b9b3665212f080469d57172f7854", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12670, "upload_time": "2018-11-06T13:32:17", "url": "https://files.pythonhosted.org/packages/71/3c/b959a0cba92333e18da03b2734a1f5eed57849ea49d3ae5fc20e5b4edfd7/aiosfstream-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c514571d83540ff4fef682f1477bfd3", "sha256": "1a597f09a4cfe41a7246df6736897bff1eb37b80eefe5989fa1ad8396bf79fda" }, "downloads": -1, "filename": "aiosfstream-0.2.4.tar.gz", "has_sig": false, "md5_digest": "6c514571d83540ff4fef682f1477bfd3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 58167, "upload_time": "2018-11-06T13:32:19", "url": "https://files.pythonhosted.org/packages/5a/f1/a7ce3c8a2470180cc8c141e0ade2d20e999adf106210d151dbafffef7620/aiosfstream-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "5ab9ebe6efcee44dece20b732fbead28", "sha256": "4439b3e2359e71ab04582aa86e11edcc5293bbf9321c4ebd636c84d7aba8d1f2" }, "downloads": -1, "filename": "aiosfstream-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "5ab9ebe6efcee44dece20b732fbead28", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12723, "upload_time": "2018-11-06T13:59:17", "url": "https://files.pythonhosted.org/packages/96/2f/fa7f3dd2dbae685f2e7054ba7844659b3a9f0bd31ae866d5929d64e45991/aiosfstream-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6444b4e14703b168d94b2c4bb7a8db1c", "sha256": "18346c7b9f21663a83f1de6a595668c06415016b72cbff40f78b512e89732392" }, "downloads": -1, "filename": "aiosfstream-0.2.5.tar.gz", "has_sig": false, "md5_digest": "6444b4e14703b168d94b2c4bb7a8db1c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 58342, "upload_time": "2018-11-06T13:59:20", "url": "https://files.pythonhosted.org/packages/ab/59/87e193b3d713d466eae04bcfd919e8c0b90379770dfe0311196755afdfaf/aiosfstream-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "1f65d6b724472c3440c82005a7db16ec", "sha256": "62ded065a5d8d98532f3a109920465cddd1b40ba383f38215944c682c3a6bd22" }, "downloads": -1, "filename": "aiosfstream-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1f65d6b724472c3440c82005a7db16ec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12985, "upload_time": "2018-11-07T19:21:39", "url": "https://files.pythonhosted.org/packages/0f/5c/91e20603070e05413314765bebbca3e397fc588e574fba2ba8f0c27fd201/aiosfstream-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de79db2ce2ec341fa5f4eef0ab615494", "sha256": "40eeb0a9f1560dcf828a3f49a4640e528121d5ac794345b6a0291b7b0b854c9f" }, "downloads": -1, "filename": "aiosfstream-0.3.0.tar.gz", "has_sig": false, "md5_digest": "de79db2ce2ec341fa5f4eef0ab615494", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 58961, "upload_time": "2018-11-07T19:21:44", "url": "https://files.pythonhosted.org/packages/46/c3/af00c45665e26e35fcfd9020005ec0f229cd5a119ce347631a2f865856da/aiosfstream-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "1fb9d6d820aa16f0c0492db20ed4a911", "sha256": "457772c428b6b80f11647630225530a74dc84bfd4092ebd6784575e99266567b" }, "downloads": -1, "filename": "aiosfstream-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1fb9d6d820aa16f0c0492db20ed4a911", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 15972, "upload_time": "2019-01-06T09:55:02", "url": "https://files.pythonhosted.org/packages/c4/e7/c55d6ac198cebbc8b56b73b620f996711a2dbef198126082ac23b4b7a8ff/aiosfstream-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e2991447882f87d176de7c1b7f5175f9", "sha256": "131599f6ceecc21a5eb3aeaabd627fa32906119180cfa0ee6e6375b63690fdb3" }, "downloads": -1, "filename": "aiosfstream-0.4.0.tar.gz", "has_sig": false, "md5_digest": "e2991447882f87d176de7c1b7f5175f9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 62006, "upload_time": "2019-01-06T09:55:05", "url": "https://files.pythonhosted.org/packages/10/a9/823aa62a6f2f7a6aab38f2293478a235de3dda98b5087b28b3f1fee1a7e6/aiosfstream-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "af6f759dc9dee634b8f93426935a6a78", "sha256": "e8a251ae3d33f6cd9d522d27be23c234b56cf7b6d2a151376f359f7e0b08e0b4" }, "downloads": -1, "filename": "aiosfstream-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "af6f759dc9dee634b8f93426935a6a78", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 16266, "upload_time": "2019-03-08T07:50:08", "url": "https://files.pythonhosted.org/packages/60/82/947528d182b7214a3f67100ad6c7e5c2dcfc5d4103d2c374bf6f83ee4d89/aiosfstream-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "371ed9c88fe5dda68bb0d7f314d68015", "sha256": "9f15e766d29e98e9bd817ad2cb9c1c8ca6384727b875a4f051293310162e7964" }, "downloads": -1, "filename": "aiosfstream-0.5.0.tar.gz", "has_sig": false, "md5_digest": "371ed9c88fe5dda68bb0d7f314d68015", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 62789, "upload_time": "2019-03-08T07:50:11", "url": "https://files.pythonhosted.org/packages/df/b2/969d2e5b4ba7ed2d190ffa019d74e775fecf40b9402e8974e6cb471fe58b/aiosfstream-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "af6f759dc9dee634b8f93426935a6a78", "sha256": "e8a251ae3d33f6cd9d522d27be23c234b56cf7b6d2a151376f359f7e0b08e0b4" }, "downloads": -1, "filename": "aiosfstream-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "af6f759dc9dee634b8f93426935a6a78", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 16266, "upload_time": "2019-03-08T07:50:08", "url": "https://files.pythonhosted.org/packages/60/82/947528d182b7214a3f67100ad6c7e5c2dcfc5d4103d2c374bf6f83ee4d89/aiosfstream-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "371ed9c88fe5dda68bb0d7f314d68015", "sha256": "9f15e766d29e98e9bd817ad2cb9c1c8ca6384727b875a4f051293310162e7964" }, "downloads": -1, "filename": "aiosfstream-0.5.0.tar.gz", "has_sig": false, "md5_digest": "371ed9c88fe5dda68bb0d7f314d68015", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 62789, "upload_time": "2019-03-08T07:50:11", "url": "https://files.pythonhosted.org/packages/df/b2/969d2e5b4ba7ed2d190ffa019d74e775fecf40b9402e8974e6cb471fe58b/aiosfstream-0.5.0.tar.gz" } ] }