Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/raven/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/raven/__pycache__/processors.cpython-35.pyc



��Y��@s�dZddlmZddlZddlmZmZddlmZGdd�de	�Z
Gdd	�d	e
�ZGd
d�de
�ZGdd
�d
e
�Z
dS)z�
raven.core.processors
~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
�)�absolute_importN)�string_types�	text_type)�varmapc@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�	ProcessorcCs
||_dS)N)�client)�selfr�r	�A/opt/alt/python35/lib/python3.5/site-packages/raven/processors.py�__init__szProcessor.__init__cKsdS)Nr	)r�data�kwargsr	r	r
�get_dataszProcessor.get_datacKs�|j||�}|r|}d|krxd|dkrxx;|djdg�D]#}d|krQ|j|d�qQWd|kr�|j|d�d|kr�|j|d�|d<|S)N�	exception�valuesZ
stacktrace�request�extra)r�get�filter_stacktrace�filter_http�filter_extra)rrr
Zresp�valuer	r	r
�processszProcessor.processcCsdS)Nr	)rrr	r	r
r*szProcessor.filter_stacktracecCsdS)Nr	)rrr	r	r
r-szProcessor.filter_httpcCs|S)Nr	)rrr	r	r
r0szProcessor.filter_extraN)	�__name__�
__module__�__qualname__rrrrrrr	r	r	r
rsrc@s"eZdZdZdd�ZdS)�RemovePostDataProcessorzRemoves HTTP post data.cKs|jdd�dS)Nr)�pop)rrr
r	r	r
r7sz#RemovePostDataProcessor.filter_httpN)rrr�__doc__rr	r	r	r
r4src@s"eZdZdZdd�ZdS)�RemoveStackLocalsProcessorz1Removes local context variables from stacktraces.cKs1x*|jdg�D]}|jdd�qWdS)N�frames�vars)rr)rrr
�framer	r	r
r>sz,RemoveStackLocalsProcessor.filter_stacktraceN)rrrrrr	r	r	r
r;src	@s�eZdZdZdZedddddd	d
dg�Zejd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�ZdS)�SanitizePasswordsProcessorz�
    Asterisk out things that look like passwords, credit card numbers,
    and API keys in frames, http, and basic extra data.
    �*��passwordZsecret�passwdZ
authorizationZapi_keyZapikeyZ
sentry_dsnZaccess_tokenz^(?:\d[ -]*?){13,16}$cCs�|dkrdSt|t�r8|jj|�r8|jS|sB|St|t�rf|jdd�}nt|�}|j�}x$|j	D]}||kr�|jSq�W|S)Nzutf-8�replace)
�
isinstancer�	VALUES_RE�match�MASK�bytes�decoder�lower�FIELDS)r�keyr�fieldr	r	r
�sanitizeVs!z#SanitizePasswordsProcessor.sanitizecCsJxC|jdg�D]/}d|kr(qt|j|d�|d<qWdS)Nr r!)rrr3)rrr"r	r	r
rnsz,SanitizePasswordsProcessor.filter_stacktracecCs�x�d
D]�}||krqt||t�rwd||krw|dkrTd}nd}|j|||�||<qt|j||�||<|dkrd	||kr|j||d	d�||d	<qWdS)Nr�cookies�headers�env�query_string�=�;�&ZCookie)rr4r5r6r7)r)r�_sanitize_keyvalsrr3)rr�n�	delimiterr	r	r
rts
#	z&SanitizePasswordsProcessor.filter_httpcCst|j|�S)N)rr3)rrr	r	r
r�sz'SanitizePasswordsProcessor.filter_extracCs�g}xh|j|�D]W}|jd�}t|�dkr`|j|d|j|�f�q|j|�qW|jdd�|D��S)Nr8�rcss|]}dj|�VqdS)r8N)�join)�.0�keyvalr	r	r
�	<genexpr>�sz?SanitizePasswordsProcessor._sanitize_keyvals.<locals>.<genexpr>)�split�len�appendr3r?)rZkeyvalsr=Zsanitized_keyvalsrAr	r	r
r;�s#z,SanitizePasswordsProcessor._sanitize_keyvalsNz********)rrrrr,�	frozensetr0�re�compiler*r3rrrr;r	r	r	r
r#Cs"r#)r�
__future__rrGZraven.utils.compatrrZraven.utilsr�objectrrrr#r	r	r	r
�<module>s$