+
    Oi
                        R t ^ RIHt ^ RIt^ RIHt ^ RIt^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ]! 0 Rm4      tR	 R
 ltR R ltR R ltR R ltR# )u   Sentry kurulumu — DSN yoksa no-op.

KVKK ve hukuki kurallar gereği:
- send_default_pii=False (varsayılan) — kullanıcı adı, email vs. gönderilmez
- before_send ile patent içeriğini (intake, draft, claim text) filtreliyoruz
)annotationsN)Any)AsyncioIntegration)FastApiIntegration)HttpxIntegration)StarletteIntegration)get_settingsc               $    V ^8  d   QhRRRRRR/# )   eventdict[str, Any]_hintreturn )formats   "S/Users/zincirx/Documents/projelerim/patentyazar/backend-python/app/observability.py__annotate__r   %   s!     
 
 
 
> 
    c                    R F7  pV P                  V4      p\        V\        4      '       g   K,  \        V4       K9  	  V # )u   Sentry event'inden patent taslak içeriğini kaldır.

Patent draft'ları gizli kabul edilir (mucit ile vekil arasında vekaletname
altında) — Sentry'ye sızdırmak hukuki risk.
)requestextracontexts)get
isinstancedict_scrub_dict)r   r   ctxdatas   &&  r   _scrub_patent_contentr   %   s7     0yy~dD!! 0 Lr   c                    V ^8  d   QhRRRR/# )r
   dr   r   Noner   )r   s   "r   r   r   2   s        >  d  r   c                    \        V P                  4       4       FQ  pVP                  4       \        9   d   R W&   K"  \	        W,          \
        4      '       g   K@  \        W,          4       KS  	  R# )z
[REDACTED]N)listkeyslower_PATENT_CONTENT_KEYSr   r   r   )r    keys   & r   r   r   2   sE    AFFH~99;..!AF%%	 r   c                   V ^8  d   QhRR/# )r
   r   r!   r   )r   s   "r   r   r   :   s      d r   c                 b   \        4       p V P                  '       g,   \        P                  ! \        4      P                  R4       R# \        P                  ! V P                  V P                  V P                  R\        4       \        4       \        4       \        4       .\        \        R7       R# )u6   Sentry'yi başlat. DSN yoksa no-op, dev/test'i bozmaz.u'   Sentry DSN yok — izleme devre dışıNF)dsnenvironmenttraces_sample_ratesend_default_piiintegrationsbefore_sendtraces_sampler)r   
sentry_dsnlogging	getLogger__name__info
sentry_sdkinitsentry_environmentsentry_traces_sample_rater   r   r   r   r   _traces_sampler)settingss    r   setup_sentryr<   :   s    ~H(#(()RSOO//#== "  	
 *&r   c                    V ^8  d   QhRRRR/# )r
   sampling_contextr   r   floatr   )r   s   "r   r   r   R   s     . .n . .r   c                    \        4       pV P                  R / 4      p\        V\        4      '       d   VP                  RR4      MRpVP	                  R4      '       d   R# VP
                  # )
asgi_scopepath z/api/v1/healthg        )r   r   r   r   
startswithr9   )r>   r;   r   rB   s   &   r   r:   r:   R   sX    ~H""<4G&0$&?&?7;;vr"RD'((---r   >
   claimsintakeabstractdescriptionclaims_draftabstract_draftapplicant_nameinventor_namesinvention_intakedescription_draft)__doc__
__future__r   r2   typingr   r6   sentry_sdk.integrations.asyncior   sentry_sdk.integrations.fastapir   sentry_sdk.integrations.httpxr   !sentry_sdk.integrations.starletter   
app.configr   	frozensetr&   r   r   r<   r:   r   r   r   <module>rX      sK    #    > > : B #   
 0.r   