{ "info": { "author": "Zach Goldstein", "author_email": "zach@airbrake.io", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development" ], "description": "Airbrake python notifier integrations\n=====================================\n\n\n\n* [Airbrake Python Integrations README](https://github.com/airbrake/airbrake-python-integrations)\n* [Airbrake Python README](https://github.com/airbrake/airbrake-python)\n\nIntegrations built on top of the airbrake python notifier for quick use with popular frameworks and libraries.\n\n### Introduction\n\n[Airbrake](https://airbrake.io/) is an online tool that provides robust exception\ntracking in any of your Python applications. In doing so, it allows you to easily\nreview errors, tie an error to an individual piece of code, and trace the cause\nback to recent changes. The Airbrake dashboard provides easy categorization,\nsearching, and prioritization of exceptions so that when errors occur, your team\ncan quickly determine the root cause.\n\n### Key features\n\nThis library is built on top of [Airbrake Python](https://github.com/airbrake/airbrake-python). The difference\nbetween _Airbrake Python_ and _Airbrake Python Integrations_ is that the\n`airbrake-integrations` package is just a collection of integrations\nwith frameworks or other libraries. The `airbrake` package is the core library\nthat performs exception sending and other heavy lifting.\n\nNormally, you just need to depend on this package, select the integration you are\ninterested in and follow the instructions for it. If the framework or\napplication you use does not have an integration available, you can depend on\nthe `airbrake` package and ignore this package entirely.\n\nThe list of integrations that are available in this package includes:\n\n* Django\n* Flask\n* Twisted\n\n### Installation\n\nTo install airbrake-integrations, run:\n```bash\npip install airbrake-integrations\n```\n\nIt's highly suggested that you add the package to your `requirements.txt` file:\n\n```bash\npip freeze > requirements.txt\n```\n\n### Configuration\n\n#### Django\n\nTo install the middleware and catch exceptions in your views:\n\n- Add the following to your `settings.py` file; replacing the value with your\nproject's id and key:\n\n```python\nAIRBAKE = {\n \"PROJECT_ID\": 123,\n \"API_KEY\": \"123abcde\",\n \"ENVIRONMENT\": \"test\"\n}\n```\n\n- Add the middleware to your `settings.py` file; making sure that the\nairbrake middleware is at the top of the list. Django processes middleware\nin order from the end of this list to start, so placing it at the end will\ncatch all exceptions before it.\n\n```python\nMIDDLEWARE = [\n 'airbrake_integrations.django.middleware.AirbrakeNotifierMiddleware',\n ...\n]\n```\n\nNote that any middleware that catches exceptions and does not allow them to\nflow through will not be sent to airbrake. It's important to make sure any\nmiddleware that also process exceptions will raise the original exception:\n\n```python\ndef process_exception(self, request, exception):\n raise exception\n```\n\nAn example django app can be found in /examples/django\n\n#### Flask\n\nTo catch exceptions, use the Airbrake extension:\n\nMake sure the airbrake configuration fields are set:\n```\nAIRBRAKE_PROJECT_ID = 123456\nAIRBRAKE_API_KEY = '1290180gsdf8snfaslfa0'\nAIRBRAKE_ENVIRONMENT = \"production\"\n```\n\nAnd then install the extension!\n```python\nfrom airbrake_integrations.flask.app import AirbrakeApp\n\napp = Flask(__name__)\napp.config.from_pyfile('config.cfg')\nab = AirbrakeApp(app)\n```\n\nAn example flask app can be found in /examples/flask\n\nTo run the example:\n```bash\nexport FLASK_APP=example.py\nflask run\n```\n\n#### Twisted\n\n```python\nfrom airbrake_integrations.twisted.observer import AirbrakeLogObserver\nfrom twisted.logger import globalLogBeginner, Logger\n\nsettings = {\n \"AIRBRAKE\": {\n \"PROJECT_ID\": 1234,\n \"API_KEY\": \"1234567890asdfghjkl\"\n }\n}\n\nobservers = [AirbrakeLogObserver(settings)]\n\nglobalLogBeginner.beginLoggingTo(observers, redirectStandardIO=False)\n\nlog = Logger()\ntry:\n raise Exception(\"A gremlin in the system is angry\")\nexcept:\n log.failure(\"Error\")\n```\n\nThis creates an observer that looks the `globalLogPublisher` twisted object, and checks all events for any possible exceptions.\n\nAn example flask app can be found in /examples/twisted\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/airbrake/airbrake-python-integrations", "keywords": "airbrake exceptions airbrake.io 176e0a6f", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "airbrake-integrations", "package_url": "https://pypi.org/project/airbrake-integrations/", "platform": "", "project_url": "https://pypi.org/project/airbrake-integrations/", "project_urls": { "Homepage": "https://github.com/airbrake/airbrake-python-integrations" }, "release_url": "https://pypi.org/project/airbrake-integrations/0.1.4/", "requires_dist": [ "requests (>=2.20.0)" ], "requires_python": "", "summary": "Python Integrations for airbrake.io", "version": "0.1.4" }, "last_serial": 5783040, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "870c364fc7fc6a5f0330f441cb98df93", "sha256": "80b4d846a18111999caa6be20555d5adcbd63d77cf490f3356609e76a6a07fe1" }, "downloads": -1, "filename": "airbrake-integrations-0.1.2.tar.gz", "has_sig": false, "md5_digest": "870c364fc7fc6a5f0330f441cb98df93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7385, "upload_time": "2017-08-25T19:17:30", "url": "https://files.pythonhosted.org/packages/ac/95/dd06cd355afbff5477b233c504cfd77270f93bda4c294d940a2842899499/airbrake-integrations-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ffd99393828fd8d56f18273a23bc2d4f", "sha256": "15d30ec4b05aa0dcf5f66c9ebe757a3e767d145557fb8fc1a7ac9ffbdeb02bbd" }, "downloads": -1, "filename": "airbrake_integrations-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ffd99393828fd8d56f18273a23bc2d4f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10346, "upload_time": "2019-03-07T21:17:51", "url": "https://files.pythonhosted.org/packages/c4/38/4816f2e4e1da38a8d6945655bc7c3b039d58d8a1fbdb00cc8a12ea66ef59/airbrake_integrations-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3edc45413ea05296ef2ede915033b28c", "sha256": "ec967235a93dd59ffe3b8430158091401228d1e6283330510881e31537c3a2ba" }, "downloads": -1, "filename": "airbrake-integrations-0.1.3.tar.gz", "has_sig": false, "md5_digest": "3edc45413ea05296ef2ede915033b28c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9318, "upload_time": "2019-03-07T21:17:52", "url": "https://files.pythonhosted.org/packages/a9/43/d1e8999c3c4df0118dfe49a77df019b33df9bbc25f76a2005a0f21f00fce/airbrake-integrations-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "a663e34a6c93dc0a00d0eac7cec8559b", "sha256": "1f406012459e44ef8928569bf463c10eef9f8a2ae5e968cd0cc66e54060f5cf7" }, "downloads": -1, "filename": "airbrake_integrations-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a663e34a6c93dc0a00d0eac7cec8559b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10372, "upload_time": "2019-09-04T19:31:44", "url": "https://files.pythonhosted.org/packages/05/47/49e3d2a21633bc274ebb7b511db285f66756c79494ddd5ce1a9b011d6cdc/airbrake_integrations-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa6b009b882cc298de9716bf75a49b9f", "sha256": "3be575ea40f7a8d7f2b33da240b9f129cdc3ee4ae7487a46b17852ab156c8655" }, "downloads": -1, "filename": "airbrake-integrations-0.1.4.tar.gz", "has_sig": false, "md5_digest": "aa6b009b882cc298de9716bf75a49b9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9351, "upload_time": "2019-09-04T19:31:45", "url": "https://files.pythonhosted.org/packages/14/a9/30241b9a68261752e1e99d311925203d1f1eaf059b96b5af266edab15a0a/airbrake-integrations-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a663e34a6c93dc0a00d0eac7cec8559b", "sha256": "1f406012459e44ef8928569bf463c10eef9f8a2ae5e968cd0cc66e54060f5cf7" }, "downloads": -1, "filename": "airbrake_integrations-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a663e34a6c93dc0a00d0eac7cec8559b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10372, "upload_time": "2019-09-04T19:31:44", "url": "https://files.pythonhosted.org/packages/05/47/49e3d2a21633bc274ebb7b511db285f66756c79494ddd5ce1a9b011d6cdc/airbrake_integrations-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa6b009b882cc298de9716bf75a49b9f", "sha256": "3be575ea40f7a8d7f2b33da240b9f129cdc3ee4ae7487a46b17852ab156c8655" }, "downloads": -1, "filename": "airbrake-integrations-0.1.4.tar.gz", "has_sig": false, "md5_digest": "aa6b009b882cc298de9716bf75a49b9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9351, "upload_time": "2019-09-04T19:31:45", "url": "https://files.pythonhosted.org/packages/14/a9/30241b9a68261752e1e99d311925203d1f1eaf059b96b5af266edab15a0a/airbrake-integrations-0.1.4.tar.gz" } ] }