<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    Y$                 @   s  d Z ddlmZmZ ddlZddlZddlZddlZddlm	Z	 ddl
mZmZ ddlmZ ddlmZ ddlmZmZmZ dd	lmZ ed
Zdd ZdaG dd deZe ZdddZdddZG dd deZ dd Z!d ddZ"e Z#da$dd Z%ej&dk re%  dS )!z
raven.contrib.django.models
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Acts as an implicit hook for Django installs.

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
    )absolute_importunicode_literalsN)settings)got_request_exceptionrequest_started)Lock)convert_options)PY2binary_type	text_type)import_stringzsentry.errors.clientc               C   s
   t tjS )z6
    Modules in settings.INSTALLED_APPS as a set.
    )setr   ZINSTALLED_APPS r   r   L/opt/alt/python37/lib/python3.7/site-packages/raven/contrib/django/models.pyget_installed_apps   s    r   )NNc               @   s  e Zd ZdZedd Zedd Zedd Zdd Zdd Z	dd Z
d	d Zd
d Zdd Zdd Zdd Zdd Zdd Zerdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!dd Z"d d Z#d!d Z$d"d Z%d#d Z&d$d Z'd%d Z(d&d Z)d'd Z*d(d Z+d)d Z,d*d Z-d+d Z.errd,d Z/d-d Z0d.d Z1d/d Z2d0d Z3d1d Z4d2d Z5d3d Z6d4d Z7d5d Z8d6S )7ProxyClientzE
    A proxy which represents the currently client at all times.
    c             C   s   |   S )N)__dir__)xr   r   r   <lambda>-       zProxyClient.<lambda>c             C   s   t  jS )N)
get_client	__class__)r   r   r   r   r   1   r   c             C   s   t  jS )N)r   __dict__)or   r   r   r   3   r   c             C   s
   t t S )N)reprr   )r   r   r   r   r   5   r   c             C   s   t t |S )N)getattrr   )r   r   r   r   r   r   6   r   c             C   s   t t ||S )N)setattrr   )r   r   vr   r   r   r   7   r   c             C   s   t t |S )N)delattrr   )r   r   r   r   r   r   8   r   c             C   s
   t  |k S )N)r   )r   r   r   r   r   r   :   r   c             C   s
   t  |kS )N)r   )r   r   r   r   r   r   ;   r   c             C   s
   t  |kS )N)r   )r   r   r   r   r   r   <   r   c             C   s
   t  |kS )N)r   )r   r   r   r   r   r   =   r   c             C   s
   t  |kS )N)r   )r   r   r   r   r   r   >   r   c             C   s
   t  |kS )N)r   )r   r   r   r   r   r   ?   r   c             C   s   t t |S )N)Zcmpr   )r   r   r   r   r   r   A   r   c             C   s
   t t S )N)hashr   )r   r   r   r   r   B   r   c             C   s
   t t S )N)boolr   )r   r   r   r   r   E   r   c             C   s
   t t S )N)lenr   )r   r   r   r   r   F   r   c             C   s
   t  | S )N)r   )r   ir   r   r   r   G   r   c             C   s
   t t S )N)iterr   )r   r   r   r   r   H   r   c             C   s
   |t  kS )N)r   )r   r"   r   r   r   r   I   r   c             C   s   t  || S )N)r   )r   r"   jr   r   r   r   J   r   c             C   s
   t  | S )N)r   )r   r   r   r   r   r   K   r   c             C   s
   t  | S )N)r   )r   r   r   r   r   r   L   r   c             C   s
   t  | S )N)r   )r   r   r   r   r   r   M   r   c             C   s
   t  | S )N)r   )r   r   r   r   r   r   N   r   c             C   s
   t  | S )N)r   )r   r   r   r   r   r   O   r   c             C   s   t  |S )N)r   
__divmod__)r   r   r   r   r   r   P   r   c             C   s
   t  | S )N)r   )r   r   r   r   r   r   Q   r   c             C   s
   t  |> S )N)r   )r   r   r   r   r   r   R   r   c             C   s
   t  |? S )N)r   )r   r   r   r   r   r   S   r   c             C   s
   t  |@ S )N)r   )r   r   r   r   r   r   T   r   c             C   s
   t  |A S )N)r   )r   r   r   r   r   r   U   r   c             C   s
   t  |B S )N)r   )r   r   r   r   r   r   V   r   c             C   s   t  |S )N)r   __div__)r   r   r   r   r   r   W   r   c             C   s   t  |S )N)r   __truediv__)r   r   r   r   r   r   X   r   c             C   s   t   S )N)r   )r   r   r   r   r   Y   r   c             C   s   t  
 S )N)r   )r   r   r   r   r   Z   r   c             C   s
   t t S )N)absr   )r   r   r   r   r   [   r   c             C   s   t   S )N)r   )r   r   r   r   r   \   r   c             C   s
   t t S )N)complexr   )r   r   r   r   r   ]   r   c             C   s
   t t S )N)intr   )r   r   r   r   r   ^   r   c             C   s
   t t S )N)longr   )r   r   r   r   r   `   r   c             C   s
   t t S )N)floatr   )r   r   r   r   r   a   r   c             C   s
   t t S )N)r
   r   )r   r   r   r   r   b   r   c             C   s
   t t S )N)r   r   )r   r   r   r   r   c   r   c             C   s
   t t S )N)octr   )r   r   r   r   r   d   r   c             C   s
   t t S )N)hexr   )r   r   r   r   r   e   r   c             C   s
   t   S )N)r   	__index__)r   r   r   r   r   f   r   c             C   s   |  | |S )N)
__coerce__)r   r   r   r   r   r   g   r   c             C   s   |   S )N)	__enter__)r   r   r   r   r   h   r   c             O   s   | j ||S )N)__exit__)r   akwr   r   r   r   i   r   N)9__name__
__module____qualname____doc__property__members__r   r   __repr____getattr____setattr____delattr____lt____le____eq____ne____gt____ge__r	   Z__cmp____hash____nonzero____len____getitem____iter____contains__Z__getslice____add____sub____mul____floordiv____mod__r%   __pow__
__lshift__
__rshift____and____xor____or__r&   r'   __neg____pos____abs__
__invert____complex____int__Z__long__	__float____str__Z__unicode__Z__oct__Z__hex__r/   r0   r1   r2   r   r   r   r   r   (   sl   r   Fc             C   s   | d k	}|st tdd} td | ks(|rttdt id}yt| }W n8 tk
r~   td|  td szd} | t	| faY nX |f |}|s| |fa|S td S )NZSENTRY_CLIENTz!raven.contrib.django.DjangoClientr   Zinclude_paths)defaultszFailed to import client: %s   )
r   r   _clientr   r   r   ImportErrorlogger	exceptionr   )clientresetZ
tmp_clientoptionsZClientinstancer   r   r   r   n   s&    
r   c             K   s   yt jt | d W nj tk
r } zLytd|f  W n2 tk
rn } ztd|f  W d d }~X Y nX W d d }~X Y nX d S )N)exc_inforequestzUnable to process log entry: %s)	rd   captureExceptionsysrh   	Exceptionrb   rc   warningswarn)ri   kwargsexcr   r   r   sentry_exception_handler   s    rq   c               @   sB   e Zd ZefddZdd Zdd Zdd Zdd
dZdd Z	d	S )SentryDjangoHandlerc             C   sD   || _ ydd l}W n tk
r,   d| _Y nX |jdk| _d | _d S )Nr   F)      )rd   celeryra   
has_celeryVERSIONcelery_handler)selfrd   ru   r   r   r   __init__   s    zSentryDjangoHandler.__init__c             C   s2   ddl m}m} ttdd}|t|d | _d S )Nr   )SentryCeleryHandlerregister_logger_signalZSENTRY_CELERY_IGNORE_EXPECTEDF)ignore_expected)Zraven.contrib.celeryr{   r|   r   r   rd   installrx   )ry   r{   r|   r}   r   r   r   install_celery   s    z"SentryDjangoHandler.install_celeryc             C   sV   t j| jdd tj| jdd | jrRy|   W n tk
rP   t	d Y nX d S )NF)Zweakz&Failed to install Celery error handler)
r   connectbefore_requestr   exception_handlerrv   r   rl   rb   rc   )ry   r   r   r   r~      s    zSentryDjangoHandler.installc             C   s,   t | j t| j | jr(| j  d S )N)r   Z
disconnectr   r   r   rx   	uninstall)ry   r   r   r   r      s    zSentryDjangoHandler.uninstallNc             K   s   y| j jt |d W nj tk
r } zLytd|f  W n2 tk
rp } ztd|f  W d d }~X Y nX W d d }~X Y nX d S )N)rh   ri   zUnable to process log entry: %s)	rd   rj   rk   rh   rl   rb   rc   rm   rn   )ry   ri   ro   rp   r   r   r   r      s    z%SentryDjangoHandler.exception_handlerc             O   s   | j j  d S )N)rd   contextactivate)ry   argsro   r   r   r   r      s    z"SentryDjangoHandler.before_request)N)
r5   r6   r7   rd   rz   r   r~   r   r   r   r   r   r   r   rr      s   

	rr   c              C   s   dd l } d S )Nr   )Z raven.contrib.django.serializers)ravenr   r   r   register_serializers   s    r   c             C   sf   |dkr| f}t tdddk	r"dnd}t t|dp4d}t|t|rbtt|t|| f|  dS )z&
    Install specified middleware
    NZ
MIDDLEWAREZMIDDLEWARE_CLASSESr   )r   r   r   
isdisjointr   type)Zmiddleware_nameZlookup_namesZmiddleware_attrZ
middlewarer   r   r   install_middleware   s    r   c           	   C   sv   t h trd S day<t  tdd td ttddsFt } |   t  W n t	k
rf   daY nX W d Q R X d S )NTz0raven.contrib.django.middleware.SentryMiddleware)z0raven.contrib.django.middleware.SentryMiddlewarez3raven.contrib.django.middleware.SentryLogMiddlewarezCraven.contrib.django.middleware.DjangoRestFrameworkCompatMiddlewareZDISABLE_SENTRY_INSTRUMENTATIONF)
_setup_lock_initializedr   r   r   r   rr   r~   r   rl   )handlerr   r   r   
initialize   s"    
r   )r_      r   )NF)N)N)'r8   
__future__r   r   loggingrk   rm   ZdjangoZdjango.confr   Zdjango.core.signalsr   r   	threadingr   Zraven.utils.confr   Zraven.utils.compatr	   r
   r   Zraven.utils.importsr   	getLoggerrb   r   r`   objectr   rd   r   rq   rr   r   r   r   r   r   rw   r   r   r   r   <module>	   s4   
C


B
