{ "info": { "author": "Josiah Carlson", "author_email": "josiah.carlson@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Programming Language :: Python" ], "description": "Origin\n======\n\nThis package was originally written as a sort of proof-of-concept github gist\non December 25, 2011 by Josiah Carlson. This updated package is copyright\n2012, and is released under the GNU LGPL v2.1 license.\n\nDescription\n===========\n\nThis package offers the ability to connect to http servers via the asyncore\nand asynchat modules, in an attempt to download files, or otherwise integrate\nconnecting to other services from within asyncore-derived services.\n\n\nDownload Files\n==============\n\nThe included async_http.get module, which can be used on the command line:\n $ python -m async_http.get \n\n... will fetch the provided urls in parallel. If you check the source for the\nget.py module, you can see how you can override the http_body(), http_done(),\nand http_close() method to (for example) fetch content remotely and possibly\nredirect it somewhere else.\n\nBy properly subclassing from DownloadFile you can serve remote files, similar\nto the requested feature here:\nhttp://code.google.com/p/pyftpdlib/issues/detail?id=197\n\n\nMake OAuth Requests\n===================\n\nThe included async_http.oauth module, which can be used on the command line:\n $ python -m async_http.oauth ckey,csecret [tkey,tsecret] \n\n... will perform an Oauth 1.0a request against the provided url with the given\nclient key and secret, with optional token key and secret (your url will\ndetermine whether you need a some sort of access or request token).\n\n\nFeatures\n========\n\n* HTTP/HTTPS\n* redirect support\n* chunked transfer encoding\n* timeouts\n* transparent gzip handling\n (derived from http://effbot.org/zone/consumer-gzip.htm)\n* OAuth 1.0a client support (no other 3rd party libraries required)\n\n\nAPI\n===\n\nIf you want to write your own handlers for events, subclass from\n_http.AsyncHTTPRequest, and override one or more of the following methods::\n\n def http_setup(self):\n '''\n Called just before the connection is set up. You can manipulate\n headers, request body, etc.\n '''\n\n def http_response(self):\n '''\n Called after the response is read. You can handle redirects, perform\n additional logging, start a reply in a proxy, etc.\n '''\n\n def http_body(self):\n '''\n Called at the end of every chunk with chunked transfer encoding, and\n any time data is read for the body otherwise.\n '''\n\n def http_chunk(self):\n '''\n Called after every chunk with the chunked transfer encoding,\n immediately after the body callback.\n '''\n\n def http_done(self):\n '''\n Called when the body has finshed being transferred. This will not be\n called when there is an error.\n '''\n\n def http_close(self):\n '''\n Called when the connection has been closed.\n '''", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/josiahcarlson/async_http", "keywords": null, "license": "GNU LGPL v2.1", "maintainer": null, "maintainer_email": null, "name": "async_http", "package_url": "https://pypi.org/project/async_http/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/async_http/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/josiahcarlson/async_http" }, "release_url": "https://pypi.org/project/async_http/.11/", "requires_dist": null, "requires_python": null, "summary": "An http/https client library that works with asyncore/asynchat", "version": ".11" }, "last_serial": 1213580, "releases": { ".10": [ { "comment_text": "", "digests": { "md5": "94d4ea178f16e7d3a016e6cbf9a49a83", "sha256": "cf739f7d5f87fe608247b07ae800c74ef407b82f4d5a6daa008887636bc5a353" }, "downloads": -1, "filename": "async_http-.10.tar.gz", "has_sig": false, "md5_digest": "94d4ea178f16e7d3a016e6cbf9a49a83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5934, "upload_time": "2012-03-23T16:24:53", "url": "https://files.pythonhosted.org/packages/f7/6e/7a750ed183174e4b3dd40668e6389e4d0334e11974fe2f41e3468fa3436d/async_http-.10.tar.gz" } ], ".11": [ { "comment_text": "", "digests": { "md5": "a1a83a083391b1561006ca74fa6477fd", "sha256": "bfe27587fb51446658f4f94a995673c36061389159224871e0290eddb5c5c7b2" }, "downloads": -1, "filename": "async_http-.11.tar.gz", "has_sig": false, "md5_digest": "a1a83a083391b1561006ca74fa6477fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6039, "upload_time": "2012-08-03T20:37:29", "url": "https://files.pythonhosted.org/packages/a6/df/54143e698eb5b3e34e3fadae86c5cc87ce0e7276ac5096890fa0565570a3/async_http-.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "69c4d9ce3f10e80b715d0698e00b4938", "sha256": "edd5ebdaf237dec56a2bcc617ebc4b83a304aa9e6b638f0b0f12443fa15d6825" }, "downloads": -1, "filename": "async_http-0.12.tar.gz", "has_sig": false, "md5_digest": "69c4d9ce3f10e80b715d0698e00b4938", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5930, "upload_time": "2014-09-05T00:00:45", "url": "https://files.pythonhosted.org/packages/68/38/6f6101b2d5d3bc0356f2debc52d827f43cd9d736d1212f8fe99b810a33b9/async_http-0.12.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a1a83a083391b1561006ca74fa6477fd", "sha256": "bfe27587fb51446658f4f94a995673c36061389159224871e0290eddb5c5c7b2" }, "downloads": -1, "filename": "async_http-.11.tar.gz", "has_sig": false, "md5_digest": "a1a83a083391b1561006ca74fa6477fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6039, "upload_time": "2012-08-03T20:37:29", "url": "https://files.pythonhosted.org/packages/a6/df/54143e698eb5b3e34e3fadae86c5cc87ce0e7276ac5096890fa0565570a3/async_http-.11.tar.gz" } ] }