{ "info": { "author": "Tom Christie", "author_email": "tom@tomchristie.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP" ], "description": "# sentry-asgi\n\n\n \"Build\n\n\n \"Coverage\"\n\n\n \"Package\n\n\nSentry integration for ASGI frameworks.\n\nInstallation:\n\n```shell\npip install sentry-asgi\n```\n\nUsage:\n\n```python\nfrom sentry_asgi import SentryMiddleware\nimport sentry_sdk\n\n\nsentry_sdk.init(dsn=...)\n\napp = ...\napp = SentryMiddleware(app)\n```\n\nHere's a more complete example, using Starlette:\n\n```python\nimport sentry_sdk\nfrom sentry_asgi import SentryMiddleware\n\nsentry_sdk.init(dsn=...)\n\napp = Starlette()\n\n@app.route(\"/\")\ndef homepage(request):\n raise ValueError(\"nope\")\n\napp.add_middleware(SentryMiddleware)\n```\n\n## Notes\n\n### Python version support\n\nThe Sentry SDK requires Python 3.7's `contextvars` support in order to properly\ntie messages and logging back to the request context that is added SentryMiddleware.\n\nOn 3.6 and below the SentryMiddleware will capture and log application exceptions just fine,\nbut will not properly tie in logging, messages, or breadcrumbs for any code that\nruns within a threadpool executor or subtask.\n\nASGI frameworks should ensure that any thread pool executors [preserve the `contextvar` context](https://github.com/django/asgiref/issues/71).\n\n### Endpoint information\n\nIt is recommended that frameworks populate an \"endpoint\" key in the ASGI scope,\nto indicate which view function or class should be logged by the middleware.", "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/encode/sentry-asgi", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "sentry-asgi", "package_url": "https://pypi.org/project/sentry-asgi/", "platform": "", "project_url": "https://pypi.org/project/sentry-asgi/", "project_urls": { "Homepage": "https://github.com/encode/sentry-asgi" }, "release_url": "https://pypi.org/project/sentry-asgi/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "Sentry integration for ASGI frameworks.", "version": "0.2.0" }, "last_serial": 5298293, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "001b3bd8d0f82dc40be2b1fdf256ec07", "sha256": "cb657a074e3275f2e31dbb44f1d91a5200c8c46cb000ebd70c9e5d528209e906" }, "downloads": -1, "filename": "sentry-asgi-0.1.0.tar.gz", "has_sig": false, "md5_digest": "001b3bd8d0f82dc40be2b1fdf256ec07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2642, "upload_time": "2018-11-06T13:32:32", "url": "https://files.pythonhosted.org/packages/a6/45/08270241f1f27b2facac340fcf13d94c8dfb8d3fd170e22e1ae2d8706b74/sentry-asgi-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "1720852c1439710dab44eb8a9aaa92c1", "sha256": "a279ae9e4e2d9ee126ece63a6f8f8d88a70d835fdcb6437e78c89013bb202971" }, "downloads": -1, "filename": "sentry-asgi-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1720852c1439710dab44eb8a9aaa92c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2850, "upload_time": "2018-11-06T14:08:05", "url": "https://files.pythonhosted.org/packages/6f/c7/eb06804f4f808b84e293adac55f4f3ca29820e3d809686676dfd3fac43c1/sentry-asgi-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ba416a368efe895f37b71d7fa47b6a16", "sha256": "e7c08eccd279bd2d5e5f38e872cc0669e0d6f9115975ebd61af2faa7270985d4" }, "downloads": -1, "filename": "sentry-asgi-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ba416a368efe895f37b71d7fa47b6a16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3064, "upload_time": "2018-11-07T10:00:14", "url": "https://files.pythonhosted.org/packages/66/7a/9e1cd9169c9323deda9137e6c8670053478266469f4a70d2fa415595b9de/sentry-asgi-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ddae79451d418418ffbe4d784160df12", "sha256": "705f80ebdab7305d085022ab19bc6c091d737cf1d32aefd28b084f2d8179a8fe" }, "downloads": -1, "filename": "sentry-asgi-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ddae79451d418418ffbe4d784160df12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3941, "upload_time": "2018-11-07T12:13:52", "url": "https://files.pythonhosted.org/packages/dc/60/7aff3789e541689c6fa49df3010d162279e2454952ad43ef133a8ce6c5e5/sentry-asgi-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b4937636a68e815cb1dffc745473e987", "sha256": "087489da6e3aa37ed926606d28cf68f20f11ad8b7aa0744f32816e39ce61d5b6" }, "downloads": -1, "filename": "sentry-asgi-0.1.4.tar.gz", "has_sig": false, "md5_digest": "b4937636a68e815cb1dffc745473e987", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3561, "upload_time": "2018-11-07T13:54:26", "url": "https://files.pythonhosted.org/packages/e4/91/faa2ec11931c8afd9f0cb9191c6cbb51c1c18b697a47ae740615a64445bc/sentry-asgi-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "50509f26436c29704bc647311e9b9a69", "sha256": "c72d45e980f3e499f06a02498d3ad91f3599f11bbe2fa45e53b0a47e2a50459a" }, "downloads": -1, "filename": "sentry-asgi-0.1.5.tar.gz", "has_sig": false, "md5_digest": "50509f26436c29704bc647311e9b9a69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3543, "upload_time": "2018-11-09T13:39:26", "url": "https://files.pythonhosted.org/packages/e8/8e/7be0be51aeb876d40952d175f21bbd293c3e6d4576866f2ff4c05ea3840e/sentry-asgi-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "39379ace72a98b4cd3d1c910a17d9546", "sha256": "0fc35fc6da9c16c0353f087c29fcfcd694b767bd1a77a2e768f519618eb3defd" }, "downloads": -1, "filename": "sentry-asgi-0.2.0.tar.gz", "has_sig": false, "md5_digest": "39379ace72a98b4cd3d1c910a17d9546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3410, "upload_time": "2019-05-21T14:58:04", "url": "https://files.pythonhosted.org/packages/2b/94/7ea097693d638359ed91bb981438e6a0b4a26668660101a62683779ced4b/sentry-asgi-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "39379ace72a98b4cd3d1c910a17d9546", "sha256": "0fc35fc6da9c16c0353f087c29fcfcd694b767bd1a77a2e768f519618eb3defd" }, "downloads": -1, "filename": "sentry-asgi-0.2.0.tar.gz", "has_sig": false, "md5_digest": "39379ace72a98b4cd3d1c910a17d9546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3410, "upload_time": "2019-05-21T14:58:04", "url": "https://files.pythonhosted.org/packages/2b/94/7ea097693d638359ed91bb981438e6a0b4a26668660101a62683779ced4b/sentry-asgi-0.2.0.tar.gz" } ] }