{ "info": { "author": "Hidekuma", "author_email": "d.hidekuma@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# asyncurl [![Build Status](https://travis-ci.org/hidden-function/asyncurl.svg?branch=master)](https://travis-ci.org/hidden-function/asyncurl)\nfor Asynchronous cURL Requests using python, which is inspired by this benchmark([KR](https://hidekuma.github.io/python/uvloop/), [EN](https://magic.io/blog/uvloop-blazing-fast-python-networking/))\n\n\"asyncurl-logo\" \n\n---\n## Support python versions\npython >= 3.6\n\n## Dependencies\nAsyncURL project consists of the following packages:\n\n| Package | Version | Description |\n| :-: | :-: | :-: |\n| asyncio | >=3.4.3 | for Asynchronous |\n| requests | >=2.22.0 | pycurl substitutes |\n| uvloop | >=0.12.2 | for event loop policy |\n\n## Installation\nYou can [download asyncurl executable](https://github.com/hidden-function/asyncurl/releases) and [binary distributions from PyPI](https://pypi.org/project/asyncurl/).\n\n### Using pip\n```bash\npip install asyncurl\n```\n\n## Usage\nHow to import AsnycURL:\n```python\nfrom asyncurl.fetch import AsyncURLFetch\n\nac_fetch = AsyncURLFetch()\n```\n\nDefault worker's count is 2. you can change it if you want.\n```python\nac_fetch.worker = 3\n```\n\nand you can put urls to ``.\n```python\nfor x in range(2):\n ac_fetch.queue.put_nowait('http://localhost')\n\nac_fetch.parallel()\n```\nthen call `parallel()`. The fucntion fetch urls using ``(the only Non-GMO HTTP library for Python).\n\nand AsyncURL can change ``'s method and else properties.\n```python\nfrom asyncurl.session import AsyncURLSession\nfrom asyncurl.fetch import AsyncURLFetch\n\nac_fetch = AsyncURLFetch()\n\nfor x in range(2):\n headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}\n session = AsyncURLSession('GET', 'http://localhost', headers=headers)\n ac_fetch.queue.put_nowait(session)\n ac_fetch.queue.put_nowait(session)\n\nac_fetch.parallel()\n```\n`AsyncURLSession` is inheritance of ``.\n\n`parallel()` will return ``, and it can show results to you.\n\nShow results:\n```python\nac_fetch.parallel().results\n```\nThe order of result is nonsequential. and it will return list of ``.\n\n### AsyncURLSession's properties\nequals to ``\n- params=None\n- data=None\n- headers=None\n- cookies=None\n- files=None\n- auth=None\n- timeout=None\n- allow_redirects=True\n- proxies=None\n- hooks=None\n- stream=None\n- verify=None\n- cert=None\n- json=None\n\n## Examples\n```python\n# case.1) with callback\nprint('[with callback]')\nac_fetch.parallel(callback=lambda x: print('with callback : {0}'.format(x)))\n\n# case.2) return results\nprint('[return results]')\nprint(ac_fetch.parallel().results)\n\n>>>\n[with callback]\nwith callback : >\nwith callback : >\nwith callback : >\n\n[return results]\n[, , ]\n```\n\n[License](LICENSE)\n------------------\n\nThe MIT License (MIT)\n\nCopyright (c) 2019 Hidden function by hidekuma\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/hidden-function/asyncurl", "keywords": "async,asynchronous,requests,cURL,curl,crawling", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "asyncurl", "package_url": "https://pypi.org/project/asyncurl/", "platform": "", "project_url": "https://pypi.org/project/asyncurl/", "project_urls": { "Homepage": "https://github.com/hidden-function/asyncurl" }, "release_url": "https://pypi.org/project/asyncurl/0.2.0/", "requires_dist": [ "asyncio (>=3.4.3)", "requests (>=2.22.0)", "uvloop (>=0.12.2)" ], "requires_python": ">=3.6", "summary": "Asynchronous cURL Requests", "version": "0.2.0" }, "last_serial": 5409226, "releases": { "0.1.4": [ { "comment_text": "", "digests": { "md5": "8651780528ce7b4206f81e68554bf661", "sha256": "33a26822ab2cb1e1397e47f8b4c633aebbae4d9385abcc6add210efa80021a96" }, "downloads": -1, "filename": "asyncurl-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8651780528ce7b4206f81e68554bf661", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3550, "upload_time": "2019-06-11T08:36:19", "url": "https://files.pythonhosted.org/packages/bb/e8/2c46d7ceed11b5a411324baa06af019e78b57424eb24d78c3bfc86984715/asyncurl-0.1.4-py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "b514398cce021ea6a0eba52427d1c0cf", "sha256": "8567598a063c52cb007a1078259732cf653993fc9468e9f19173256777b23af3" }, "downloads": -1, "filename": "asyncurl-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "b514398cce021ea6a0eba52427d1c0cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3956, "upload_time": "2019-06-12T07:20:27", "url": "https://files.pythonhosted.org/packages/67/d8/62c90ac79f0ee974b2b98648590a75d64d23a86f4168e9574fed793f1384/asyncurl-0.1.5-py3-none-any.whl" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "3f76547d0b83e8443ffc96916e39754d", "sha256": "4858f1f75249e1606dfa6009af949dc1b2b8ea9f9f198c67fcbeed9dc59271c2" }, "downloads": -1, "filename": "asyncurl-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3f76547d0b83e8443ffc96916e39754d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3939, "upload_time": "2019-06-12T08:04:42", "url": "https://files.pythonhosted.org/packages/c7/11/0c09ad0b7a59ae7bce1fe9bda7b60c614e79378ae581ea52706c1c96646d/asyncurl-0.1.6-py3-none-any.whl" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "2b572ace3947ea4e861806e5b7e98c3a", "sha256": "3ab78bbb625c8842793384f64d79b04d0b793c7eff0477bd14939a45a6ba51ee" }, "downloads": -1, "filename": "asyncurl-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2b572ace3947ea4e861806e5b7e98c3a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4897, "upload_time": "2019-06-13T08:17:24", "url": "https://files.pythonhosted.org/packages/59/f3/972175a5021467b26ee9cd964ef9af9672996876fc59074475bdd5d0d29f/asyncurl-0.1.8-py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b6b3ab12b7711b18c35b526cea6f6d98", "sha256": "23f985f3d50e5b6188ddd5e8d0a6c032987d980701061dfb436a1e204bb16aca" }, "downloads": -1, "filename": "asyncurl-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b6b3ab12b7711b18c35b526cea6f6d98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5880, "upload_time": "2019-06-17T09:05:41", "url": "https://files.pythonhosted.org/packages/15/a2/2773c8e2ad0da04a21b4801c238053a0b840e4ffd6af4400bf4e15a681da/asyncurl-0.2.0-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b6b3ab12b7711b18c35b526cea6f6d98", "sha256": "23f985f3d50e5b6188ddd5e8d0a6c032987d980701061dfb436a1e204bb16aca" }, "downloads": -1, "filename": "asyncurl-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b6b3ab12b7711b18c35b526cea6f6d98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5880, "upload_time": "2019-06-17T09:05:41", "url": "https://files.pythonhosted.org/packages/15/a2/2773c8e2ad0da04a21b4801c238053a0b840e4ffd6af4400bf4e15a681da/asyncurl-0.2.0-py3-none-any.whl" } ] }