{ "info": { "author": "Dave Shawley", "author_email": "daveshawley@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Software Development :: Libraries" ], "description": "RFC-7807 implementation for Tornado\n===================================\n|build| |coverage| |docs| |download| |license| |source|\n\nThis library provides a version of ``tornado.web.RequestHandler.send_error``\nthat speaks ``application/problem+json`` instead of HTML. The easiest\nway to use this library is to inherit from ``problemdetails.ErrorWriter``\nand raise ``problemdetails.Problem`` exceptions instead of ``HTTPError``.\n\n.. code-block:: python\n\n class MyHandler(problemdetails.ErrorWriter, web.RequestHandler):\n def get(self):\n if not self.do_something_hard():\n raise problemdetails.Problem(status_code=500,\n title='Failed to do_something_hard')\n\n.. code-block:: http\n\n HTTP/1.1 500 Internal Server Error\n Content-Type: application/problem+json\n\n {\n \"status\": 500,\n \"title\": \"Failed to do_something_hard\",\n \"type\": \"https://tools.ietf.org/html/rfc7231#section-6.6.1\"\n }\n\nYou can easily construct more substantial response documents by passing\nadditional keyword parameters to the ``problemdetails.Problem``\ninitializer. They become top-level properties in the response document.\n\nYou can also call ``send_error`` directly and produce a response docuemnt.\nThe following snippet produces the same output as the previous snippet.\n\n.. code-block:: python\n\n class MyHandler(problemdetails.ErrorWriter, web.RequestHandler):\n def get(self):\n try:\n self.do_something_hard()\n except SomeException as error:\n self.send_error(500, title=\"Failed to do_something_hard\")\n\nThe interface of ``tornado.web.RequestHandler.send_error`` is less expressive\nsince keyword parameters may be swallowed by intervening code. The only\nparameters that are recognized are: ``instance``, ``title``, and ``type``.\nUse the exception-based interface for more substantial documents.\n\n.. |build| image:: https://img.shields.io/circleci/project/github/dave-shawley/tornado-problem-details/master.svg?style=social\n :target: https://circleci.com/gh/dave-shawley/tornado-problem-details/tree/master\n.. |coverage| image:: https://img.shields.io/coveralls/github/dave-shawley/tornado-problem-details.svg?style=social\n :target: https://coveralls.io/github/dave-shawley/tornado-problem-details?branch=master\n.. |docs| image:: https://img.shields.io/readthedocs/tornado-problem-details.svg?style=social\n :target: https://tornado-problem-details.readthedocs.io/en/latest/?badge=latest\n.. |download| image:: https://img.shields.io/pypi/pyversions/tornado-problem-details.svg?style=social\n :target: https://pypi.org/project/tornado-problem-details/\n.. |license| image:: https://img.shields.io/pypi/l/tornado-problem-details.svg?style=social\n :target: https://github.com/dave-shawley/tornado-problem-details/blob/master/LICENSE.txt\n.. |source| image:: https://img.shields.io/badge/source-github.com-green.svg?style=social\n :target: https://github.com/dave-shawley/tornado-problem-details\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/dave-shawley/tornado-problem-details", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "tornado-problem-details", "package_url": "https://pypi.org/project/tornado-problem-details/", "platform": "", "project_url": "https://pypi.org/project/tornado-problem-details/", "project_urls": { "Homepage": "https://github.com/dave-shawley/tornado-problem-details" }, "release_url": "https://pypi.org/project/tornado-problem-details/0.0.6/", "requires_dist": [ "tornado (>=4.4)", "coverage (==4.5.3) ; extra == 'dev'", "flake8 (==3.7.7) ; extra == 'dev'", "flake8-fixme (==1.1.0) ; extra == 'dev'", "flake8-print (==3.1.0) ; extra == 'dev'", "nose (==1.3.7) ; extra == 'dev'", "python-docs-theme (==2018.7) ; extra == 'dev'", "readme-renderer (==24.0) ; extra == 'dev'", "sphinx (==2.0.0) ; extra == 'dev'", "tox (==3.8.4) ; extra == 'dev'", "twine (==1.13.0) ; extra == 'dev'", "wheel (==0.33.1) ; extra == 'dev'", "yapf (==0.26.0) ; extra == 'dev'", "python-docs-theme (==2018.7) ; extra == 'docs'", "sphinx (==2.0.0) ; extra == 'docs'", "jsonschema (==3.0.1) ; extra == 'examples'", "pyyaml (==5.1) ; extra == 'examples'" ], "requires_python": "", "summary": "RFC-7807 Error documents for Tornado", "version": "0.0.6" }, "last_serial": 5113977, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "1cbb7074168f83205471e584248b2f0a", "sha256": "db96768b9fc7108897326072dd6390fbdec0488cbee376ed20abc47a3a0b7010" }, "downloads": -1, "filename": "tornado_problem_details-0.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1cbb7074168f83205471e584248b2f0a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3120, "upload_time": "2019-03-31T14:20:39", "url": "https://files.pythonhosted.org/packages/78/eb/fc77b2b7b8894eedbd4b3cce7c0ad57e9d17710c8ba3265227f145ac2167/tornado_problem_details-0.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a41119c6d70b6b3b1f6f5daa6c532eb", "sha256": "db6e495a4ac1c3d6375613843327e94f719a43791650cc40d96bb28857167e8f" }, "downloads": -1, "filename": "tornado-problem-details-0.0.0.tar.gz", "has_sig": false, "md5_digest": "0a41119c6d70b6b3b1f6f5daa6c532eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3117, "upload_time": "2019-03-31T14:20:41", "url": "https://files.pythonhosted.org/packages/92/f8/02d2e4592ae97c6f08f20c6b0916fe42d85184a6561239f6f05f13299e43/tornado-problem-details-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "488ad29294369c5e87e978673465ec2a", "sha256": "e941a4be6ded8f349d5787e34fdd1a7709a38b843cd33a94a5817c0c1e3f0046" }, "downloads": -1, "filename": "tornado_problem_details-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "488ad29294369c5e87e978673465ec2a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5040, "upload_time": "2019-03-31T15:03:31", "url": "https://files.pythonhosted.org/packages/20/15/71804c0429c1be3fe0190a667d20da1a841526dac75c0e96938fc488a631/tornado_problem_details-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1f95cb100b361a09449d3499d315c15", "sha256": "1aba800157f1b79d84391015697889b9b67ea21a23633d8374ea90915625d50a" }, "downloads": -1, "filename": "tornado-problem-details-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a1f95cb100b361a09449d3499d315c15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5573, "upload_time": "2019-03-31T15:03:32", "url": "https://files.pythonhosted.org/packages/24/49/37b0d4986cf9ed750929fd53d78ad3f430ca4bd4e2c1a352ca8297a52bb5/tornado-problem-details-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "40f667fa2555b26ff8afa4d771e9994d", "sha256": "51dccf78d51ac81c4adc4d5d1de77fee14db17cd18f826c0add9ef4af86b9a4a" }, "downloads": -1, "filename": "tornado_problem_details-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "40f667fa2555b26ff8afa4d771e9994d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6102, "upload_time": "2019-04-01T12:12:28", "url": "https://files.pythonhosted.org/packages/8f/46/29df8b860d0ce38e29c7d19bc900b3d5e2f1adf79a6cc1744dd6dbc94f1a/tornado_problem_details-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a98e44459f0df3bf7cde54e26f8351f", "sha256": "ba7ee67badfadc308c54edba2e216bdec606100a95f1630efa3ce585baf8e86d" }, "downloads": -1, "filename": "tornado-problem-details-0.0.2.tar.gz", "has_sig": false, "md5_digest": "6a98e44459f0df3bf7cde54e26f8351f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7065, "upload_time": "2019-04-01T12:12:29", "url": "https://files.pythonhosted.org/packages/29/9d/8cc0d348e7c71e1213660e1b7be52e64f7168817fa793f54e1f2ab3132c1/tornado-problem-details-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1f7c4a2db4331410915de53459638b6f", "sha256": "10ff88038d146d27267180a8a7a9ae87d52279907e88a96078b1640f79f1fb7a" }, "downloads": -1, "filename": "tornado_problem_details-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f7c4a2db4331410915de53459638b6f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6189, "upload_time": "2019-04-02T12:12:31", "url": "https://files.pythonhosted.org/packages/c8/ca/5eecc4db1f8f875e0a67088554459ba9bd2629e2f7a2bae60ed56466a999/tornado_problem_details-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24f0df3e5875a83724b0e8cc7be411b1", "sha256": "b8de1fb854a7902abf50a2cb7263d24b7a4bf0d5cf3a00f9bce77d93f9ff82f6" }, "downloads": -1, "filename": "tornado-problem-details-0.0.3.tar.gz", "has_sig": false, "md5_digest": "24f0df3e5875a83724b0e8cc7be411b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7611, "upload_time": "2019-04-02T12:12:32", "url": "https://files.pythonhosted.org/packages/72/82/8450e0bfaf0baea69ae7c2673a31b15c2a156300eb3ebfb99f59adc76ae2/tornado-problem-details-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "1e0286828f77210609b4d3c8063e678c", "sha256": "5b904be6fde44b1312fba7ff8a8d343c4bff8b2f538e9de81f0f5f887a283ea2" }, "downloads": -1, "filename": "tornado_problem_details-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e0286828f77210609b4d3c8063e678c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6190, "upload_time": "2019-04-02T12:14:38", "url": "https://files.pythonhosted.org/packages/b3/10/7ad8911ae36ba72849a8c3cbb2219571930c34b1cf2bcc7fbdad49fd3107/tornado_problem_details-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4971883725082df797cf6a30c98af85", "sha256": "08eb53f110fd36695ef10a5e4634e8005a6348f9026a209bea27b1139acaccde" }, "downloads": -1, "filename": "tornado-problem-details-0.0.4.tar.gz", "has_sig": false, "md5_digest": "f4971883725082df797cf6a30c98af85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7619, "upload_time": "2019-04-02T12:14:39", "url": "https://files.pythonhosted.org/packages/93/65/ffd2ad7c23e8f469a788a9a9e749041279849d15a1cec05b3b2fe4d838bb/tornado-problem-details-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "ea7fd0a32d60bb1da1b6d69b95ee50dd", "sha256": "e1c03ce10bf348bcb2263228a9cbbb63c1304c46a562acbefdfc77b5dd65209d" }, "downloads": -1, "filename": "tornado_problem_details-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ea7fd0a32d60bb1da1b6d69b95ee50dd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6624, "upload_time": "2019-04-04T12:06:00", "url": "https://files.pythonhosted.org/packages/42/8c/a7a17150ec5b4d2f09df5b6c86c277d97bfcfe5d6089448b93b7ac2f3326/tornado_problem_details-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "958e43e2fe3bc16fe518327e1c20d0be", "sha256": "469681ec542d6a4200bf8d9e27400f517b5bcd41a2d11b9fa3c0dd585486022a" }, "downloads": -1, "filename": "tornado-problem-details-0.0.5.tar.gz", "has_sig": false, "md5_digest": "958e43e2fe3bc16fe518327e1c20d0be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10497, "upload_time": "2019-04-04T12:06:01", "url": "https://files.pythonhosted.org/packages/99/e1/fd1e25b06dc76470de45690219a220d5a590a58aaed44e617f2bfd5c7dd6/tornado-problem-details-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "f35f83c7d100533e4046bd0f9ae5a9d6", "sha256": "71ab2b55c35dc7227579d408c51a1ed4ea53866b75a606c274ea93d98d2e2aa3" }, "downloads": -1, "filename": "tornado_problem_details-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f35f83c7d100533e4046bd0f9ae5a9d6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6745, "upload_time": "2019-04-08T14:28:55", "url": "https://files.pythonhosted.org/packages/6c/38/9b500bdf41f154de4e220876708f6a31ed470dae30027e323d57d10f57ec/tornado_problem_details-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "179f49348ecdc2570063f8e46a2932f8", "sha256": "ba3846a15fead7f342b1bec0a2236825f2db9ca4fd793f14e8838b85c62d61c0" }, "downloads": -1, "filename": "tornado-problem-details-0.0.6.tar.gz", "has_sig": false, "md5_digest": "179f49348ecdc2570063f8e46a2932f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17316, "upload_time": "2019-04-08T14:28:56", "url": "https://files.pythonhosted.org/packages/99/e9/f323b4caa1d7f9d5d034e34119916599befd9f50918b2c735a692a6a5b75/tornado-problem-details-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f35f83c7d100533e4046bd0f9ae5a9d6", "sha256": "71ab2b55c35dc7227579d408c51a1ed4ea53866b75a606c274ea93d98d2e2aa3" }, "downloads": -1, "filename": "tornado_problem_details-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f35f83c7d100533e4046bd0f9ae5a9d6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6745, "upload_time": "2019-04-08T14:28:55", "url": "https://files.pythonhosted.org/packages/6c/38/9b500bdf41f154de4e220876708f6a31ed470dae30027e323d57d10f57ec/tornado_problem_details-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "179f49348ecdc2570063f8e46a2932f8", "sha256": "ba3846a15fead7f342b1bec0a2236825f2db9ca4fd793f14e8838b85c62d61c0" }, "downloads": -1, "filename": "tornado-problem-details-0.0.6.tar.gz", "has_sig": false, "md5_digest": "179f49348ecdc2570063f8e46a2932f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17316, "upload_time": "2019-04-08T14:28:56", "url": "https://files.pythonhosted.org/packages/99/e9/f323b4caa1d7f9d5d034e34119916599befd9f50918b2c735a692a6a5b75/tornado-problem-details-0.0.6.tar.gz" } ] }