{ "info": { "author": "ryankung", "author_email": "ryankung@ieee.org", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# TL;DR\n\n`pWSGI` is a WSGI wrapper with `pulsar`. It can easily map a wsgi app (such as\n`Flask app` or `djang app`) to a `pulsar wsgi app` with full features supporting by `pulsar`.\n\n# How To Use\n\n* Basic\n\n```\nusage: pwsgi [-h]\n\npWsgi - a pulsar based async wsgi implentation 0.1\n\noptional arguments:\n -a APP, --app APP path of wsgi app, required\n -w WORK_PATH, --work_path WORK_PATH\n work path of wsgi app [default: ./wsgiapp.py]\n\n```\n* Run as pulsar wsgi\n\n```\n\n(shadowfax) \u279c thunder-dev pwsgi -a wsgiapp -w ./shadowfax -h\nusage: pwsgi [-h]\n\npWsgi - a pulsar based async wsgi implentation 0.1\n\noptional arguments:\n -a APP, --app APP path of wsgi app, required\n -w WORK_PATH, --work_path WORK_PATH\n work path of wsgi app [default: ./wsgiapp.py]\n\nusage: pwsgi [-h] [--version] [-c FILE] [--http-proxy HTTP_PROXY]\n [--http-keep-alive HTTP_KEEP_ALIVE] [--debug] [-D] [--reload]\n [-p FILE] [--password PASSWORD] [-u USER] [-g GROUP]\n [--log-level LOG_LEVEL [LOG_LEVEL ...]]\n [--log-handlers LOG_HANDLERS [LOG_HANDLERS ...]] [-n STRING]\n [--coverage] [--data-store CONNECTION STRING] [--exc-id EXC_ID]\n [--io {kqueue,poll,select,uv}] [--redis-py-parser]\n [--redis-server CONNECTION_STRING] [-b ADDRESS]\n [--keep-alive KEEP_ALIVE] [--backlog BACKLOG] [--key-file FILE]\n [--cert-file FILE] [-w WORKERS]\n [--concurrency {process,thread,coroutine,multi}]\n [--max-requests MAX_REQUESTS] [-t TIMEOUT]\n [--thread-workers THREAD_WORKERS]\n\nPulsar server\n\noptional arguments:\n -h, --help show this help message and exit\n --version show program's version number and exit\n -c FILE, --config FILE\n The path to a Pulsar config file, where default\n Settings parameters can be specified. [config.py]\n --http-proxy HTTP_PROXY\n The HTTP proxy server to use with HttpClient. []\n --http-keep-alive HTTP_KEEP_ALIVE\n Keep HTTP connections alive for this number of seconds\n [15]\n --debug Turn on debugging. [False]\n -D, --daemon Daemonize the pulsar process (posix only). [False]\n --reload Auto reload modules when changes occurs. [False]\n -p FILE, --pid-file FILE\n A filename to use for the PID file. [None]\n --password PASSWORD Set a password for the server [None]\n -u USER, --user USER Switch worker processes to run as this user. [None]\n -g GROUP, --group GROUP\n Switch worker process to run as this group. [None]\n --log-level LOG_LEVEL [LOG_LEVEL ...]\n The granularity of log outputs. [['info']]\n --log-handlers LOG_HANDLERS [LOG_HANDLERS ...]\n Log handlers for pulsar server [['console']]\n -n STRING, --process-name STRING\n A base to use with setproctitle for process naming.\n [None]\n --coverage Collect code coverage from all spawn actors. [False]\n --data-store CONNECTION STRING\n Default data store. []\n --exc-id EXC_ID Execution ID. []\n --io {kqueue,poll,select,uv}\n Specify the event loop used for I/O event polling.\n [kqueue]\n --redis-py-parser Use the python redis parser rather the C\n implementation. [False]\n --redis-server CONNECTION_STRING\n Default connection string for the redis server\n [127.0.0.1:6379/7]\n -b ADDRESS, --bind ADDRESS\n The socket to bind. [127.0.0.1:8060]\n --keep-alive KEEP_ALIVE\n The number of seconds to keep an idle client\n connection open. [15]\n --backlog BACKLOG The maximum number of queued connections in a socket.\n [2048]\n --key-file FILE SSL key file [None]\n --cert-file FILE SSL certificate file [None]\n -w WORKERS, --workers WORKERS\n The number of workers for handling requests. [1]\n --concurrency {process,thread,coroutine,multi}\n The type of concurrency to use. [process]\n --max-requests MAX_REQUESTS\n The maximum number of requests a worker will process\n before restarting. [0]\n -t TIMEOUT, --timeout TIMEOUT\n Workers silent for more than this many seconds are\n killed and restarted. [30]\n --thread-workers THREAD_WORKERS\n Maximum number of threads used by the actor event loop\n executor. [5]\n\nHave fun!\n\n```\n\n# Router\n\n`pwsgi` provide `flask like router`.\n\n```\n from pwsgi import BluePrint\n\n app = BluePrint('/')\n\n @app.router('/hello', methods=['post'])\n def world(request):\n return wsgi.WsgiResponse(200, 'world')\n```\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pwsgi", "package_url": "https://pypi.org/project/pwsgi/", "platform": "any", "project_url": "https://pypi.org/project/pwsgi/", "project_urls": null, "release_url": "https://pypi.org/project/pwsgi/0.1.11/", "requires_dist": null, "requires_python": "", "summary": "pWSGI is a async wsgi implentation based on pulsar wsgi", "version": "0.1.11" }, "last_serial": 3167697, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "cfa765c17bb67157f3fb765035b70cb7", "sha256": "cc7427d9d762b75c6230fc93732466bd6d4bed92ea3c264d30cae97191927650" }, "downloads": -1, "filename": "pwsgi-0.1.tar.gz", "has_sig": false, "md5_digest": "cfa765c17bb67157f3fb765035b70cb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3892, "upload_time": "2016-10-31T08:55:59", "url": "https://files.pythonhosted.org/packages/a7/68/e00e67db2368d7f4dd10ccaf9505d6b4776d35f22938aecbda3a8eb95947/pwsgi-0.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "3f90faf95d0280bdd8e5dc0e682b98d8", "sha256": "f25252671e6c5676c61f60187123bc2d7206337fce5ff48eb1005fd7b0419371" }, "downloads": -1, "filename": "pwsgi-0.1.10.tar.gz", "has_sig": false, "md5_digest": "3f90faf95d0280bdd8e5dc0e682b98d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5055, "upload_time": "2017-07-08T12:55:13", "url": "https://files.pythonhosted.org/packages/c1/ec/632cfaa4ea87cc002989e990855fd4b24e5f6b794fac6504f382605b7ccf/pwsgi-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "d442c9e81da21a5993072ac66bb3f09d", "sha256": "18679d0b1e318e5616376cb5d14b171b5a4aed7ec2f99d390d5e283410885462" }, "downloads": -1, "filename": "pwsgi-0.1.11.tar.gz", "has_sig": false, "md5_digest": "d442c9e81da21a5993072ac66bb3f09d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5083, "upload_time": "2017-09-12T10:51:48", "url": "https://files.pythonhosted.org/packages/b2/56/98de8a6c28b2d130c00ed31fb2d0f6637b1fab948208c8945d686db7218a/pwsgi-0.1.11.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "189ca7d16b7e83a36419f74aa600e039", "sha256": "dfdda35aeba3b7af311f04fac61d1f477535aa2dcc7a7e6dbacb2ddc172e2410" }, "downloads": -1, "filename": "pwsgi-0.1.5.tar.gz", "has_sig": false, "md5_digest": "189ca7d16b7e83a36419f74aa600e039", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3982, "upload_time": "2016-11-01T12:05:26", "url": "https://files.pythonhosted.org/packages/1b/40/e7a3457cc9e3baa785e2421d1960fc35c3c94c22bc3e7f5421f602c8e1db/pwsgi-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "cbcc4b0a13ab6c19a04f75aefb83d2c9", "sha256": "48de477d88a902eb94f98dbcfadf7248b5335aee8adab1f77d8e76e6655ac260" }, "downloads": -1, "filename": "pwsgi-0.1.6.tar.gz", "has_sig": false, "md5_digest": "cbcc4b0a13ab6c19a04f75aefb83d2c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4449, "upload_time": "2016-11-02T10:10:58", "url": "https://files.pythonhosted.org/packages/a2/fb/a4a2865be8bbfa7f95177f5f5733ed9f209b0e9fb7b595cc2a0b0931ea09/pwsgi-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "f25d47074820907deb19999348af0c12", "sha256": "60742c1a2574b2a0dd81ce4d40880e0da00b802b900c2a244fa576f8ed1f6cc8" }, "downloads": -1, "filename": "pwsgi-0.1.7.tar.gz", "has_sig": false, "md5_digest": "f25d47074820907deb19999348af0c12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4456, "upload_time": "2016-11-16T16:17:11", "url": "https://files.pythonhosted.org/packages/2b/37/ace44734e2c7700d2425e5a97c7662d0341f70c0859a3ee4c70737f412ff/pwsgi-0.1.7.tar.gz" } ], "0.1.8.1": [ { "comment_text": "", "digests": { "md5": "42a03c7b57906e4d984173cca1eb43d0", "sha256": "5dcd2d86646459ff8d7c0f2fecb94a3f9fce545feb2c9deb3d9fa7ffee8c84a7" }, "downloads": -1, "filename": "pwsgi-0.1.8.1.tar.gz", "has_sig": false, "md5_digest": "42a03c7b57906e4d984173cca1eb43d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4560, "upload_time": "2016-11-17T13:03:45", "url": "https://files.pythonhosted.org/packages/d8/09/e6315f380f7035403b00bce9d7487f27596ea0f0abcebbf4b1eb633a0e75/pwsgi-0.1.8.1.tar.gz" } ], "0.1.8.2": [ { "comment_text": "", "digests": { "md5": "d167d0f3d4a72752114ebdd29a80a563", "sha256": "6f23c786f5b0a3fdbdb990a4c864dedefc4080399a2ed6af7bcd73ef342081e6" }, "downloads": -1, "filename": "pwsgi-0.1.8.2.tar.gz", "has_sig": false, "md5_digest": "d167d0f3d4a72752114ebdd29a80a563", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4560, "upload_time": "2016-12-08T05:45:22", "url": "https://files.pythonhosted.org/packages/78/b2/b55ba558c050ce1928f519fa86c78db66bec41b32dfe80219b0e2570af53/pwsgi-0.1.8.2.tar.gz" } ], "0.1.8.3": [ { "comment_text": "", "digests": { "md5": "830b8c317c6aaa6c976723101a8b6c7a", "sha256": "762b9cca072e910b4f45cf5b268063540c42b2199c941b57848358c4befc8d4d" }, "downloads": -1, "filename": "pwsgi-0.1.8.3.tar.gz", "has_sig": false, "md5_digest": "830b8c317c6aaa6c976723101a8b6c7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4563, "upload_time": "2017-02-17T09:10:47", "url": "https://files.pythonhosted.org/packages/83/90/791050a056767e4666bfe25f30cf53151a95c0bb3e705535158167445795/pwsgi-0.1.8.3.tar.gz" } ], "0.1.8.4": [ { "comment_text": "", "digests": { "md5": "4544fa041fd65bc21199d6bce480c9ab", "sha256": "6743b438ed1c02e586a8564b3c8ec7eb6aaa9970a1790b1c5b75b5c00804ac6c" }, "downloads": -1, "filename": "pwsgi-0.1.8.4.tar.gz", "has_sig": false, "md5_digest": "4544fa041fd65bc21199d6bce480c9ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4780, "upload_time": "2017-07-06T08:04:22", "url": "https://files.pythonhosted.org/packages/8e/3a/186e257abe5e37079d4f09b3b80721414dc494303099921253f1ff7f2549/pwsgi-0.1.8.4.tar.gz" } ], "0.1.8.5": [ { "comment_text": "", "digests": { "md5": "3c67ac507bee59d87f7217e17d8e0f16", "sha256": "44f4440a66e58f466b5ee369f274437b987814a690f1fa3cc36a7115556ff9b5" }, "downloads": -1, "filename": "pwsgi-0.1.8.5.tar.gz", "has_sig": false, "md5_digest": "3c67ac507bee59d87f7217e17d8e0f16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4900, "upload_time": "2017-07-06T11:22:54", "url": "https://files.pythonhosted.org/packages/78/f1/f583bf16f755ba43d986da9fcba03f0c13dc29e01bf17a30eced4ced225f/pwsgi-0.1.8.5.tar.gz" } ], "0.1.8.6": [ { "comment_text": "", "digests": { "md5": "ce44b6d335b9ec632307a3a4f9da7d91", "sha256": "fc71e2b996f2998c002bc66f22b4f77d2d4248e1fcbe442d30f7a00c081ec696" }, "downloads": -1, "filename": "pwsgi-0.1.8.6.tar.gz", "has_sig": false, "md5_digest": "ce44b6d335b9ec632307a3a4f9da7d91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4909, "upload_time": "2017-07-06T12:48:49", "url": "https://files.pythonhosted.org/packages/80/eb/88fb7a9a4344641ccb4cd98d3e9ea45262d205582abbaf97deadfe6a6d29/pwsgi-0.1.8.6.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "b3511b81d2de03f4a9b0a9b3520e14f3", "sha256": "6bb4dc9150918c7ec6888c1067f5734c34a120c2871d0343a94ebd31a0ffa36c" }, "downloads": -1, "filename": "pwsgi-0.1.9.tar.gz", "has_sig": false, "md5_digest": "b3511b81d2de03f4a9b0a9b3520e14f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4895, "upload_time": "2017-07-06T12:49:12", "url": "https://files.pythonhosted.org/packages/47/0c/eda13ff82249e5773f3baea4daade077a390c496aca4daaf3eba69c6188d/pwsgi-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d442c9e81da21a5993072ac66bb3f09d", "sha256": "18679d0b1e318e5616376cb5d14b171b5a4aed7ec2f99d390d5e283410885462" }, "downloads": -1, "filename": "pwsgi-0.1.11.tar.gz", "has_sig": false, "md5_digest": "d442c9e81da21a5993072ac66bb3f09d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5083, "upload_time": "2017-09-12T10:51:48", "url": "https://files.pythonhosted.org/packages/b2/56/98de8a6c28b2d130c00ed31fb2d0f6637b1fab948208c8945d686db7218a/pwsgi-0.1.11.tar.gz" } ] }