ó ¿öYc@@s¤dZddlmZddlZddlmZmZddlmZde fd„ƒYZ de fd „ƒYZ d e fd „ƒYZ d e fd „ƒYZ dS(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(tabsolute_importN(t string_typest text_type(tvarmapt ProcessorcB@s>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cC@s ||_dS(N(tclient(tselfR((sA/opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyt__init__scK@sdS(N((Rtdatatkwargs((sA/opt/alt/python27/lib/python2.7/site-packages/raven/processors.pytget_datascK@sÎ|j||}|r!|}nd|kr„d|dkr„xA|djdgƒD]&}d|krT|j|dƒqTqTWq„nd|kr¤|j|dƒnd|krÊ|j|dƒ|ds(RRRR(((sA/opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR;stSanitizePasswordsProcessorc B@steZdZdZeddddddd d gƒZejd ƒZd „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*itpasswordtsecrettpasswdt authorizationtapi_keytapikeyt sentry_dsnt access_tokens^(?:\d[ -]*?){13,16}$cC@s©|dkrdSt|tƒr8|jj|ƒr8|jS|sB|St|tƒrf|jddƒ}n t|ƒ}|j ƒ}x$|j D]}||krˆ|jSqˆW|S(Nsutf-8treplace( Rt isinstanceRt VALUES_REtmatchtMASKtbytestdecodeRtlowertFIELDS(RtkeyRtfield((sA/opt/alt/python27/lib/python2.7/site-packages/raven/processors.pytsanitizeVs !    cC@sMxF|jdgƒD]2}d|kr+qnt|j|dƒ|d•s(tsplittlentappendR6RB(RtkeyvalsRAtsanitized_keyvalsRD((sA/opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR?Œs#s********(RRRR/t frozensetR3tretcompileR-R6RRRR?(((sA/opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyR!Cs"     (Rt __future__RRKtraven.utils.compatRRt raven.utilsRtobjectRRRR!(((sA/opt/alt/python27/lib/python2.7/site-packages/raven/processors.pyts $