{ "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-twisted: Error report integration with twisted\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_twisted package provides integration glue between logged twisted\nerrors (via the twisted.log api) and the oops error reporting system\n(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\n* Twisted\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 Configuration\n++++++++++++++++++\n\n* Setup your configuration::\n\n >>> from oops_twisted import Config\n >>> config = Config()\n\nNote that you will probably want at least one publisher, or your reports will\nbe silently discarded.\n\n* When adding publishers, either wrap 'normal' OOPS publishers in deferToThread\n or similar, or use native Twisted publishers. For instance::\n\n >>> from functools import partial\n >>> config.publishers.append(partial(deferToThread, blocking_publisher))\n\n A helper 'defer_publisher' is supplied to do this for your convenience.\n\nCatching log.err calls\n++++++++++++++++++++++\n\n* create an OOPS log observer::\n\n >>> from oops_twisted import OOPSObserver\n >>> observer = OOPSObserver(config)\n\n* And enable it::\n\n >>> from twisted.log import addObserver\n >>> addObserver(observer)\n\n* This is typically used to supplement regular logging, e.g. you might\n initialize normal logging to a file first::\n\n >>> twisted.log.startLogging(logfile)\n\nThe OOPSObserver will discard all non-error log messages, and convert error log\nmessages into OOPSes using the oops config.\n\nOptionally, you can provide OOPSObserver with a second observer to delegate\ntoo. Any event that is not converted into an OOPS is passed through unaltered.\nEvents that are converted to OOPSes have a new event second to the second\nobserver which provides the OOPS id and the failure name and value::\n\n >>> observer = OOPSObserver(config, twisted.log.PythonLoggingObserver().emit)\n\nExtending WSGI\n++++++++++++++\n\noops_twisted supports an extended WSGI contract where if the returned iterator\nfor the body implements t.w.i.IBodyProducer, then the iterator that\noops_twisted's WSGI wrapper returns will also implement IBodyProducer. This is\nuseful with a customised Twisted WSGI resource that runs IBodyProducer\niterators in the IO loop, rather than using up a threadpool thread. To use this\npass tracker=oops_twisted.wsgi.body_producer_tracker when calling\noops_wsgi.make_app. Note that a non-twisted OOPS Config is assumed because \nthe WSGI protocol is synchronous: be sure to provide the oops_wsgi make_app\nwith a non-twisted OOPS Config.\n\nFor more information see pydoc oops_twisted.\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\nDevelopment\n===========\n\nUpstream development takes place at https://launchpad.net/python-oops-twisted.\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_twisted.tests.test_suite.\n\nFor instance::\n\n $ bin/py -m testtools.run oops_twisted.tests.test_suite", "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-twisted", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "oops_twisted", "package_url": "https://pypi.org/project/oops_twisted/", "platform": "", "project_url": "https://pypi.org/project/oops_twisted/", "project_urls": { "Homepage": "https://launchpad.net/python-oops-twisted" }, "release_url": "https://pypi.org/project/oops_twisted/0.0.8/", "requires_dist": null, "requires_python": "", "summary": "Translate twisted error logs into OOPS error reports.", "version": "0.0.8" }, "last_serial": 3843702, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ed3ea5dd815509846a4484bf801da5ca", "sha256": "8a043c1fce94e32bc41d9c7903a48d18e2c641d925fda98ac8cdbcb345ab0acb" }, "downloads": -1, "filename": "oops_twisted-0.0.1.tar.gz", "has_sig": true, "md5_digest": "ed3ea5dd815509846a4484bf801da5ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4639, "upload_time": "2011-09-23T10:11:54", "url": "https://files.pythonhosted.org/packages/aa/77/6061886a13c400a278085314a6f4487303db64c5c84d9a0e5ffc06c3750b/oops_twisted-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "c62e5e91949952f09d9baac890dc9177", "sha256": "2f030bdb1d4a5938b4747fd7251fc2f13edf58baf7a65ba6180a0f4b5a18e983" }, "downloads": -1, "filename": "oops_twisted-0.0.2.tar.gz", "has_sig": true, "md5_digest": "c62e5e91949952f09d9baac890dc9177", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4815, "upload_time": "2011-09-27T12:34:34", "url": "https://files.pythonhosted.org/packages/a4/85/0a6bd8a9173d8abb791db6a806c15843eb7da16d31f8d9b1872ce1c7d406/oops_twisted-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "fc1546f3ce984371d15b6c1429441fe1", "sha256": "95926af98439f2862e7ccfcb03c3c58f18f2cf2a7c69e0dec01e27d96ba01664" }, "downloads": -1, "filename": "oops_twisted-0.0.3.tar.gz", "has_sig": true, "md5_digest": "fc1546f3ce984371d15b6c1429441fe1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4826, "upload_time": "2011-09-28T11:13:39", "url": "https://files.pythonhosted.org/packages/30/50/10994e7122908ced190f58dec11db81ac17ce406f3fadf15b9165e7eacbb/oops_twisted-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "1001a034f4bcffd724965646f38d085a", "sha256": "98dfc8cb74853dfaff2ccd6604bfe735d5c8fccfb18089fce67b3903c3b700df" }, "downloads": -1, "filename": "oops_twisted-0.0.4.tar.gz", "has_sig": true, "md5_digest": "1001a034f4bcffd724965646f38d085a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5112, "upload_time": "2011-10-14T01:56:19", "url": "https://files.pythonhosted.org/packages/e2/8b/0f4dbbcc7c6dca86e6e4f72b6fe88b252dcbada2374867fbe5757c39cac2/oops_twisted-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "984671340a9d258d871a35fec72fb214", "sha256": "cb4c7b0ec26c1e9972bca46d7665f8e8093334269933c46ad676ab4d3b3a2b8e" }, "downloads": -1, "filename": "oops_twisted-0.0.5.tar.gz", "has_sig": true, "md5_digest": "984671340a9d258d871a35fec72fb214", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7269, "upload_time": "2011-11-07T08:06:13", "url": "https://files.pythonhosted.org/packages/a3/61/2a30fcf41b9b90113b1986825c0acfc86ecd168309a96b0167b8dc9845c2/oops_twisted-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "aef373fd05c903bed644e34ea09664b8", "sha256": "311cff35b6d78d50421c4cd7e1ccdbfa425cf83f950bc9b18c682428be2f65d2" }, "downloads": -1, "filename": "oops_twisted-0.0.6.tar.gz", "has_sig": true, "md5_digest": "aef373fd05c903bed644e34ea09664b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7348, "upload_time": "2011-12-09T07:16:10", "url": "https://files.pythonhosted.org/packages/9a/3a/e94cf2c0400b0fe2b51230f63fc30996d4167fff979545f5c996d8d0f2ff/oops_twisted-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "e0ca556e1633118f3deb55412e933838", "sha256": "de57dc0c265b33937e6ef66a6fe370c70f32a95f0d7cd72f110f8c365f0985af" }, "downloads": -1, "filename": "oops_twisted-0.0.7.tar.gz", "has_sig": true, "md5_digest": "e0ca556e1633118f3deb55412e933838", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8109, "upload_time": "2017-09-04T10:09:47", "url": "https://files.pythonhosted.org/packages/3c/1a/39baef1c6bc7e5e1652d2e1e7169222b09b6e5d3abb6a409eddb4e3ddc08/oops_twisted-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "29723e21485937f0ff260e62d36a7350", "sha256": "45c2daf95b5d7c84f9ccbd86e620f7f7e67d237ad60ed5b9538115f69c8fb04e" }, "downloads": -1, "filename": "oops_twisted-0.0.8.tar.gz", "has_sig": true, "md5_digest": "29723e21485937f0ff260e62d36a7350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8447, "upload_time": "2018-05-08T10:40:34", "url": "https://files.pythonhosted.org/packages/b9/a8/119d8ba0f64bb351e69ef6ebbf888a0a6634f806818d291bd1c8ae6ef078/oops_twisted-0.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "29723e21485937f0ff260e62d36a7350", "sha256": "45c2daf95b5d7c84f9ccbd86e620f7f7e67d237ad60ed5b9538115f69c8fb04e" }, "downloads": -1, "filename": "oops_twisted-0.0.8.tar.gz", "has_sig": true, "md5_digest": "29723e21485937f0ff260e62d36a7350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8447, "upload_time": "2018-05-08T10:40:34", "url": "https://files.pythonhosted.org/packages/b9/a8/119d8ba0f64bb351e69ef6ebbf888a0a6634f806818d291bd1c8ae6ef078/oops_twisted-0.0.8.tar.gz" } ] }