
    i                     T    d dl Z d dlZd dlZd dlmZ erd dlmZ  G d d          ZdS )    N)TYPE_CHECKING)Clientc                   V    e Zd Z ej        d          ZddZd Zd Zd Z	d Z
dd
Zd	S )ExceptionCaptureposthogclientr   c                 z    || _         t          j        | _        | j        t          _        | j        t          _        d S N)r   sys
excepthookoriginal_excepthookexception_handlerthread_exception_handler	threading)selfr   s     L/var/www/icac/venv/lib/python3.11/site-packages/posthog/exception_capture.py__init__zExceptionCapture.__init__   s.    #&> /#<	    c                 (    | j         t          _        d S r
   )r   r   r   )r   s    r   closezExceptionCapture.close   s    1r   c                 d    |                      |||f           |                     |||           d S r
   )capture_exceptionr   )r   exc_type	exc_valueexc_tracebacks       r   r   z"ExceptionCapture.exception_handler   s;    )]CDDD  9mDDDDDr   c                 T    |                      |j        |j        |j        f           d S r
   )r   r   r   r   )r   argss     r   r   z)ExceptionCapture.thread_exception_handler"   s*    t~t?QRSSSSSr   c                 ~    d|v rd|d         i}nd }|                      |d         |d         |d         f|           d S )Ndistinct_idr         )r   )r   exc_infoextra_propertiesmetadatas       r   exception_receiverz#ExceptionCapture.exception_receiver%   sT    ,,,%'7'FGHHHXa[(1+FQQQQQr   Nc                     	 |r|                     d          nd }| j                            ||           d S # t          $ r(}| j                            d|            Y d }~d S d }~ww xY w)Nr   )r   zFailed to capture exception: )getr   r   	Exceptionlog	exception)r   r*   r$   r   es        r   r   z"ExceptionCapture.capture_exception,   s    	D9AK(,,}555tKK))))MMMMM 	D 	D 	DHBqBBCCCCCCCCC	Ds   59 
A+A&&A+)r   r   r
   )__name__
__module____qualname__logging	getLoggerr)   r   r   r   r   r%   r    r   r   r   r      s         '
I
&
&C= = = =2 2 2E E E
T T TR R RD D D D D Dr   r   )r/   r   r   typingr   posthog.clientr   r   r1   r   r   <module>r4      s     



                 &%%%%%%"D "D "D "D "D "D "D "D "D "Dr   