£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

Yc           @@  s|   d  Z  d d l m Z d d l Z d d l m Z d d l m Z d d l m	 Z	 d d l
 m Z d e f d	     YZ d S(
   s   
raven.contrib.bottle
~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2013 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
i    (   t   absolute_importN(   t   request(   t   setup_logging(   t   get_data_from_request(   t   SentryHandlert   Sentryc           B@  s>   e  Z d  Z e d  Z d   Z d   Z d   Z d   Z RS(   sv  
    Bottle application for Sentry.

    >>> sentry = Sentry(app, client)

    Automatically configure logging::

    >>> sentry = Sentry(app, client, logging=True)

    Capture an exception::

    >>> try:
    >>>     1 / 0
    >>> except ZeroDivisionError:
    >>>     sentry.captureException()

    Capture a message::

    >>> sentry.captureMessage('hello, world!')
    c         C@  sJ   | |  _  | |  _ | |  _ |  j r: t t |  j   n  |  |  j  _ d  S(   N(   t   appt   clientt   loggingR   R   t   sentry(   t   selfR   R   R   (    (    sN   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/bottle/__init__.pyt   __init__)   s    				c      	   O@  s<   |  j  j d | j d  d t t  d i |  j d 6 d  S(   Nt   exc_infot   datat   extraR   (   R   t   captureExceptiont   getR   R   R   (   R
   t   argst   kwargs(    (    sN   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/bottle/__init__.pyt   handle_exception1   s
    c         @  sZ   d     f d  } y   j | |  SWn* t k
 rU   j d t j      n Xd  S(   Nc         @  s/   | d  k	 r   j d |  n   |  | |  S(   NR   (   t   NoneR   (   t   statust   headersR   (   R
   t   start_response(    sN   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/bottle/__init__.pyt   session_start_response;   s    R   (   R   R   t	   ExceptionR   t   sysR   (   R
   t   environR   R   (    (   R
   R   sN   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/bottle/__init__.pyt   __call__:   s    c         O@  sn   |  j  s t d   | j d  } | d  k r[ y t t  | d <Wq[ t k
 rW q[ Xn  |  j  j | |   S(   Ns5   captureException called before application configuredR   (   R   t   AssertionErrorR   R   R   R   t   RuntimeErrorR   (   R
   R   R   R   (    (    sN   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/bottle/__init__.pyR   H   s    c         O@  sn   |  j  s t d   | j d  } | d  k r[ y t t  | d <Wq[ t k
 rW q[ Xn  |  j  j | |   S(   Ns3   captureMessage called before application configuredR   (   R   R   R   R   R   R   R   t   captureMessage(   R
   R   R   R   (    (    sN   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/bottle/__init__.pyR   S   s    (	   t   __name__t
   __module__t   __doc__t   FalseR   R   R   R   R   (    (    (    sN   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/bottle/__init__.pyR      s   				(   R"   t
   __future__R    R   t   bottleR   t
   raven.confR   t   raven.contrib.bottle.utilsR   t   raven.handlers.loggingR   t   objectR   (    (    (    sN   /opt/alt/python27/lib/python2.7/site-packages/raven/contrib/bottle/__init__.pyt   <module>   s   