Metadata-Version: 2.1
Name: muffin-sentry
Version: 0.5.6
Summary: Sentry Integration for Muffin framework
Home-page: https://github.com/klen/muffin-sentry
Author: Kirill Klenov
Author-email: horneds@gmail.com
License: MIT
Project-URL: Documentation, https://github.com/klen/muffin-sentry
Project-URL: Source code, https://github.com/klen/muffin-sentry
Project-URL: Issue tracker, https://github.com/klen/muffin-sentry/issues
Description: Muffin-Sentry
        #############
        
        .. _description:
        
        **Muffin-Sentry** -- Sentry_ Integration for Muffin_ framework
        
        .. _badges:
        
        .. image:: https://github.com/klen/muffin-sentry/workflows/tests/badge.svg
            :target: https://github.com/klen/muffin-sentry/actions
            :alt: Tests Status
        
        .. image:: https://img.shields.io/pypi/v/muffin-sentry
            :target: https://pypi.org/project/muffin-sentry/
            :alt: PYPI Version
        
        .. image:: https://img.shields.io/pypi/pyversions/muffin-sentry
            :target: https://pypi.org/project/muffin-sentry/
            :alt: Python Versions
        
        .. _contents:
        
        .. contents::
        
        .. _requirements:
        
        Requirements
        =============
        
        - python >= 3.8
        
        .. _installation:
        
        Installation
        =============
        
        **Muffin-Sentry** should be installed using pip: ::
        
            pip install muffin-sentry
        
        .. _usage:
        
        Usage
        =====
        
        .. code-block:: python
        
            from muffin import Application
            import muffin_sentry
        
            # Create Muffin Application
            app = Application('example')
        
            # Initialize the plugin
            # As alternative: jinja2 = Jinja2(app, **options)
            sentry = muffin_sentry.Plugin()
            sentry.setup(app, dsn="DSN_URL")
        
            # Use it inside your handlers
        
            # The exception will be send to Sentry
            @app.route('/unhandled')
            async def catch_exception(request):
                raise Exception('unhandled')
        
            # Capture a message by manual
            @app.route('/capture_message')
            async def message(request):
                sentry.capture_message('a message from app')
                return 'OK'
        
            # Capture an exception by manual
            @app.route('/capture_exception')
            async def exception(request):
                sentry.capture_exception(Exception())
                return 'OK'
        
            # Update Sentry Scope
            @app.route('/update_user')
            async def user(request):
                scope = sentry.current_scope.get()
                scope.set_user({'id': 1, 'email': 'example@example.com'})
                sentry.capture_exception(Exception())
                return 'OK'
        
        
        Options
        -------
        
        =========================== ======================================= =========================== 
        Name                        Default value                           Desctiption
        --------------------------- --------------------------------------- ---------------------------
        **dsn**                     ``""``                                  Sentry DSN for your application
        **sdk_options**             ``{}``                                  Additional options for Sentry SDK Client. See https://docs.sentry.io/platforms/python/configuration/options/
        **ignore_errors**           ``[ResponseError, ResponseRedirect]``   Exception Types to Ignore
        =========================== ======================================= =========================== 
        
        You are able to provide the options when you are initiliazing the plugin:
        
        .. code-block:: python
        
            sentry.setup(app, dsn='DSN_URL')
        
        
        Or setup it inside ``Muffin.Application`` config using the ``SENTRY_`` prefix:
        
        .. code-block:: python
        
           SENTRY_DSN = 'DSN_URL'
        
        ``Muffin.Application`` configuration options are case insensitive
        
        .. _bugtracker:
        
        Bug tracker
        ===========
        
        If you have any suggestions, bug reports or
        annoyances please report them to the issue tracker
        at https://github.com/klen/muffin-sentry/issues
        
        .. _contributing:
        
        Contributing
        ============
        
        Development of Muffin-Sentry happens at: https://github.com/klen/muffin-sentry
        
        
        Contributors
        =============
        
        * klen_ (Kirill Klenov)
        
        .. _license:
        
        License
        ========
        
        Licensed under a `MIT license`_.
        
        .. _links:
        
        
        .. _klen: https://github.com/klen
        .. _Muffin: https://github.com/klen/muffin
        .. _Sentry: https://sentry.io/
        
        .. _MIT license: http://opensource.org/licenses/MIT
        
Keywords: sentry,asyncio,trio,asgi,muffin
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Framework :: AsyncIO
Classifier: Framework :: Trio
Requires-Python: >=3.7
Provides-Extra: tests
