{ "info": { "author": "Launchpad Developers", "author_email": "launchpad-dev@lists.launchpad.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "************************************************************\npython-oops-wsgi: Error report integration into wsgi servers\n************************************************************\n\n Copyright (c) 2011, Canonical Ltd\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, version 3 only.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with this program. If not, see .\n GNU Lesser General Public License version 3 (see the file LICENSE).\n\nThe oops_wsgi package provides integration glue between wsgi web servers and\nthe oops error reporting system (http://pypi.python.org/pypi/oops).\n\nDependencies\n============\n\n* Python 2.6+ or 3.3+\n\n* oops (http://pypi.python.org/pypi/oops)\n\nTesting Dependencies\n====================\n\n* subunit (http://pypi.python.org/pypi/python-subunit) (optional)\n\n* testtools (http://pypi.python.org/pypi/testtools)\n\nUsage\n=====\n\noops_wsgi provides integration with an oops.Config, permitting errors in your\nweb application to be gathered centrally, with tracebacks and other diagnostic\ninformation.\n\nTypically, something like this:\n\n* Setup your configuration::\n\n >>> from oops import Config\n >>> config = Config()\n\nNote that you will probably want at least one publisher, or your reports will\nbe discarded.\n\n* Add in wsgi specific hooks to the config::\n\n >>> oops_wsgi.install_hooks(config)\n\nThis is a convenience function - you are welcome to pick and choose the creation\nor filter hooks you want from oops_wsgi.hooks.\n\n* Create your wsgi app as normal, and then wrap it::\n\n >>> app = oops_wsgi.make_app(app, config)\n\nIf any exception bubbles up through this middleware, an oops will be logged. If\nthe body of the request had not started, then a custom page is shown that\nshows the OOPS id, and the exception is swallowed. Exceptions that indicate\nnormal situations like end-of-file on a socket do not trigger OOPSes. If the\nOOPS is filtered, or no publishers are configured, then the exception will\npropogate up the stack - the oops middleware cannot do anything useful in these\ncases. (For instance, if you have a custom 404 middleware above the oops\nmiddleware in the wsgi stack, and filter 404 exceptions so they do not create\nreports, then if the oops middleware did anything other than propogate the\nexception, your custom 404 middleware would not work.\n\nIf the body had started, then there is no way to communicate the OOPS id to the\nclient and the exception will propogate up the wsgi app stack.\n\nYou can customise the error page if you supply a helper that accepts (environ,\nreport) and returns HTML to be sent to the client.\n\n >>> def myerror_html(environ, report):\n ... return '

OOPS! %s

' % report['id']\n >>> app = oops_wsgi.make_app(app, config, error_render=myerror_html)\n\nOr you can supply a string template to be formatted with the report.\n\n >>> json_template='{\"oopsid\" : \"%(id)s\"}'\n >>> app = oops_wsgi.make_app(app, config, error_template=json_template)\n\nFor more information see pydoc oops_wsgi.\n\nInstallation\n============\n\nEither run setup.py in an environment with all the dependencies available, or\nadd the working directory to your PYTHONPATH.\n\n\nDevelopment\n===========\n\nUpstream development takes place at https://launchpad.net/python-oops-wsgi.\nTo setup a working area for development, if the dependencies are not\nimmediately available, you can use ./bootstrap.py to create bin/buildout, then\nbin/py to get a python interpreter with the dependencies available.\n\nTo run the tests use the runner of your choice, the test suite is\noops_wsgi.tests.test_suite.\n\nFor instance::\n\n $ bin/py -m testtools.run oops_wsgi.tests.test_suite\n\nIf you have testrepository you can run the tests with that::\n\n $ testr run", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://launchpad.net/python-oops-wsgi", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "oops_wsgi", "package_url": "https://pypi.org/project/oops_wsgi/", "platform": "", "project_url": "https://pypi.org/project/oops_wsgi/", "project_urls": { "Homepage": "https://launchpad.net/python-oops-wsgi" }, "release_url": "https://pypi.org/project/oops_wsgi/0.0.14/", "requires_dist": null, "requires_python": "", "summary": "OOPS wsgi middleware.", "version": "0.0.14" }, "last_serial": 3843694, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "509ad03aa5fd4b4f77582e92f44dcd9f", "sha256": "983662bf355d46ad6dcce9b6462d8aba48beaca26995e1d474dc012ec4963455" }, "downloads": -1, "filename": "oops_wsgi-0.0.10.tar.gz", "has_sig": false, "md5_digest": "509ad03aa5fd4b4f77582e92f44dcd9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8288, "upload_time": "2014-05-06T19:21:23", "url": "https://files.pythonhosted.org/packages/ed/f2/b0ea8b37d49865b938335498fb636be8948d3e085307c84a76d270951cb2/oops_wsgi-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "19a38751fb67502622cd289361950ec5", "sha256": "2d73eef09db99f00eb4ddd9c1c3102b370d1d415872a3ce2e762dcae1cb41e95" }, "downloads": -1, "filename": "oops_wsgi-0.0.11.tar.gz", "has_sig": false, "md5_digest": "19a38751fb67502622cd289361950ec5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8238, "upload_time": "2014-05-06T19:22:29", "url": "https://files.pythonhosted.org/packages/a5/bd/a4b9b17b72ba62ccc3248dc5726bdd66ca5fb504557e16c9a5a61ce592da/oops_wsgi-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "a0fb1ba3631f9b81e4c0f30d85cd6173", "sha256": "40c0dc1067155da446448b32e003e532425c75cf5d0233270977c494e86d2022" }, "downloads": -1, "filename": "oops_wsgi-0.0.12.tar.gz", "has_sig": true, "md5_digest": "a0fb1ba3631f9b81e4c0f30d85cd6173", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9113, "upload_time": "2016-10-31T11:14:50", "url": "https://files.pythonhosted.org/packages/00/59/205ea4100ea1c7fa0772c8b650f1c04314cd88734592810e65322af911b3/oops_wsgi-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "abc9dbaa4bb6f7a2e80d5f77831fb5d3", "sha256": "05d01c470fb4ffe2af2394384eea733bfe9acc9077e26c77c499c84d572def7b" }, "downloads": -1, "filename": "oops_wsgi-0.0.13.tar.gz", "has_sig": true, "md5_digest": "abc9dbaa4bb6f7a2e80d5f77831fb5d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9546, "upload_time": "2018-05-03T11:19:15", "url": "https://files.pythonhosted.org/packages/dc/71/eec2f4474fcd01c2b372e28b2b6f696eaf376e4a5d3bb3187f2f2cada20f/oops_wsgi-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "08f517837107e86d11d2286dd0a3d8de", "sha256": "24715b98617812f7b1ac1471690e15925d1bf609dba214a6ae3dc96d1494ce29" }, "downloads": -1, "filename": "oops_wsgi-0.0.14.tar.gz", "has_sig": true, "md5_digest": "08f517837107e86d11d2286dd0a3d8de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9577, "upload_time": "2018-05-08T10:36:16", "url": "https://files.pythonhosted.org/packages/87/29/f4d23cd2ea403e9b9d0a27d7f0bab5dc5e3d8dd89275b742cc1030158049/oops_wsgi-0.0.14.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "5475630f0cab7c6089157d9bb66915f0", "sha256": "16d4f4b6890d8d433adb7d06f88ff3d6ade3e235534d81e6d4bcef4c19fc3d25" }, "downloads": -1, "filename": "oops_wsgi-0.0.3.tar.gz", "has_sig": true, "md5_digest": "5475630f0cab7c6089157d9bb66915f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5561, "upload_time": "2011-08-24T04:16:11", "url": "https://files.pythonhosted.org/packages/29/0d/e3406a268347660d4fe941e75776e2a3f26cdee07d5d36414c421c966dab/oops_wsgi-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "071454774343268a5b4e6fc4273f0084", "sha256": "f78afdf672edf15175f8d031293bb795be4d3e76d541bff3cfb9da99b239288a" }, "downloads": -1, "filename": "oops_wsgi-0.0.4.tar.gz", "has_sig": true, "md5_digest": "071454774343268a5b4e6fc4273f0084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6149, "upload_time": "2011-09-20T05:05:19", "url": "https://files.pythonhosted.org/packages/cd/ee/a603671b5f7a2c3db1036ddf29c279124f6fca2d20b6cf75d987d270163a/oops_wsgi-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "ac212f3ea97e437a9d9c0517597dcd9e", "sha256": "53d03855119b78ef585c584a3869fea85bfe6eea2e43d4ce76b85f8cf1497e42" }, "downloads": -1, "filename": "oops_wsgi-0.0.5.tar.gz", "has_sig": true, "md5_digest": "ac212f3ea97e437a9d9c0517597dcd9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6859, "upload_time": "2011-09-23T14:03:24", "url": "https://files.pythonhosted.org/packages/98/0f/0f9ab7b6627b3855dec7b9041d227e05634b9d2bbc3c5a85183fbb1917c9/oops_wsgi-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "da9e5732966e54dbce10d52a975eb48c", "sha256": "862bdfdf78c634140783e05fe9e9acecb0373587017901efd60e48301910a5e1" }, "downloads": -1, "filename": "oops_wsgi-0.0.6.tar.gz", "has_sig": true, "md5_digest": "da9e5732966e54dbce10d52a975eb48c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7676, "upload_time": "2011-11-04T06:02:52", "url": "https://files.pythonhosted.org/packages/0b/67/767a642a5c081841a2212b09f83064df8093f223c86a3fae058f4625fdd9/oops_wsgi-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "5f7236921d7c879a9b0ee3d9e6181f45", "sha256": "467bb0f8058c4d83f1472cc63f2300d35dcb82c74af22b1a1036cbcf827f8c24" }, "downloads": -1, "filename": "oops_wsgi-0.0.7.tar.gz", "has_sig": true, "md5_digest": "5f7236921d7c879a9b0ee3d9e6181f45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7613, "upload_time": "2011-11-16T01:56:54", "url": "https://files.pythonhosted.org/packages/88/2e/ba9d1d16647b1d337fefdba93962900b329d0607a6af50de4dd6b4b99af5/oops_wsgi-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "2bec721c9f1748199de56677a4dd54f6", "sha256": "4e4d3a88c6264fc6b7c26797e09d0bf0a208056fbe4fedd8308b682039a6bdd7" }, "downloads": -1, "filename": "oops_wsgi-0.0.8.tar.gz", "has_sig": true, "md5_digest": "2bec721c9f1748199de56677a4dd54f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8346, "upload_time": "2011-12-09T05:23:35", "url": "https://files.pythonhosted.org/packages/5c/76/020af8dc73e8306a2d14d4e80089afd2c93f6bf5dd08d3712b775d6c4b3b/oops_wsgi-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "bfe4a39b503a531d1cef8d309318a378", "sha256": "e3256d826468311e3b69005cf12bb58381f0a1e0557a71517eb4899416beb4a2" }, "downloads": -1, "filename": "oops_wsgi-0.0.9.tar.gz", "has_sig": true, "md5_digest": "bfe4a39b503a531d1cef8d309318a378", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8374, "upload_time": "2011-12-12T06:40:01", "url": "https://files.pythonhosted.org/packages/fa/65/6ab3f0670f7c294fceb588ff5a8663696c22910c42fcf4ab2afd1fd75ad6/oops_wsgi-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "08f517837107e86d11d2286dd0a3d8de", "sha256": "24715b98617812f7b1ac1471690e15925d1bf609dba214a6ae3dc96d1494ce29" }, "downloads": -1, "filename": "oops_wsgi-0.0.14.tar.gz", "has_sig": true, "md5_digest": "08f517837107e86d11d2286dd0a3d8de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9577, "upload_time": "2018-05-08T10:36:16", "url": "https://files.pythonhosted.org/packages/87/29/f4d23cd2ea403e9b9d0a27d7f0bab5dc5e3d8dd89275b742cc1030158049/oops_wsgi-0.0.14.tar.gz" } ] }