???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................ó
¿öYc           @@  s¤   d  Z  d d l m Z d d l Z d d l m Z m Z d d l m Z d e	 f d „  ƒ  YZ
 d e
 f d	 „  ƒ  YZ d
 e
 f d „  ƒ  YZ d e
 f d „  ƒ  YZ d S(   s§   
raven.core.processors
~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
i    (   t   absolute_importN(   t   string_typest	   text_type(   t   varmapt	   Processorc           B@  s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C@  s   | |  _  d  S(   N(   t   client(   t   selfR   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   __init__   s    c         K@  s   d  S(   N(    (   R   t   datat   kwargs(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   get_data   s    c         K@  sÎ   |  j  | |  } | r! | } n  d | k r„ d | d k r„ xA | d j d g  ƒ D]& } d | k rT |  j | d ƒ qT qT Wq„ n  d | k r¤ |  j | d ƒ n  d | k rÊ |  j | d ƒ | d <n  | S(   Nt	   exceptiont   valuest
   stacktracet   requestt   extra(   R
   t   gett   filter_stacktracet   filter_httpt   filter_extra(   R   R   R	   t   respt   value(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   process   s    	c         C@  s   d  S(   N(    (   R   R   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   *   s    c         C@  s   d  S(   N(    (   R   R   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   -   s    c         C@  s   | S(   N(    (   R   R   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   0   s    (   t   __name__t
   __module__R   R
   R   R   R   R   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR      s   					t   RemovePostDataProcessorc           B@  s   e  Z d  Z d „  Z RS(   s   Removes HTTP post data.c         K@  s   | j  d d  ƒ d  S(   NR   (   t   popt   None(   R   R   R	   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   7   s    (   R   R   t   __doc__R   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   4   s   t   RemoveStackLocalsProcessorc           B@  s   e  Z d  Z d „  Z RS(   s1   Removes local context variables from stacktraces.c         K@  s1   x* | j  d g  ƒ D] } | j d d  ƒ q Wd  S(   Nt   framest   vars(   R   R   R   (   R   R   R	   t   frame(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   >   s    (   R   R   R   R   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   ;   s   t   SanitizePasswordsProcessorc        	   B@  st   e  Z d  Z d Z e d d d d d d d	 d
 g ƒ Z e j d ƒ Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z RS(   s„   
    Asterisk out things that look like passwords, credit card numbers,
    and API keys in frames, http, and basic extra data.
    t   *i   t   passwordt   secrett   passwdt   authorizationt   api_keyt   apikeyt
   sentry_dsnt   access_tokens   ^(?:\d[ -]*?){13,16}$c         C@  s©   | d  k r d  St | t ƒ r8 |  j j | ƒ r8 |  j S| sB | St | t ƒ rf | j d d ƒ } n t | ƒ } | j	 ƒ  } x$ |  j
 D] } | | k rˆ |  j Sqˆ W| S(   Ns   utf-8t   replace(   R   t
   isinstanceR   t	   VALUES_REt   matcht   MASKt   bytest   decodeR   t   lowert   FIELDS(   R   t   keyR   t   field(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   sanitizeV   s    !c         C@  sM   xF | j  d g  ƒ D]2 } d | k r+ q n  t |  j | d ƒ | d <q Wd  S(   NR   R   (   R   R   R6   (   R   R   R    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   n   s    c         C@  sÝ   xÖ d
 D]Î } | | k r q n  t  | | t ƒ rz d | | k rz | d k rW d } n d } |  j | | | ƒ | | <q t |  j | | ƒ | | <| d k r d	 | | k r |  j | | d	 d ƒ | | d	 <q q Wd  S(   NR   t   cookiest   headerst   envt   query_stringt   =t   ;t   &t   Cookie(   R   R7   R8   R9   R:   (   R,   R   t   _sanitize_keyvalsR   R6   (   R   R   t   nt	   delimiter(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   t   s    #	c         C@  s   t  |  j | ƒ S(   N(   R   R6   (   R   R   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR   ‰   s    c         C@  sˆ   g  } xh | j  | ƒ D]W } | j  d ƒ } t | ƒ d k r` | j | d |  j | Œ  f ƒ q | j | ƒ q W| j d „  | Dƒ ƒ S(   NR;   i   i    c         s@  s   |  ] } d  j  | ƒ Vq d S(   R;   N(   t   join(   t   .0t   keyval(    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pys	   <genexpr>•   s    (   t   splitt   lent   appendR6   RB   (   R   t   keyvalsRA   t   sanitized_keyvalsRD   (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR?   Œ   s    #s   ********(   R   R   R   R/   t	   frozensetR3   t   ret   compileR-   R6   R   R   R   R?   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR!   C   s"   				(   R   t
   __future__R    RK   t   raven.utils.compatR   R   t   raven.utilsR   t   objectR   R   R   R!   (    (    (    sA   /opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt   <module>   s   $