o
    :li                     @   s  d dl Z d dlZd dlmZ d dlmZ d dlmZ erDd dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d d	lmZ d d
lmZ edZe jd  dkZe jd  dkoXe jd dkZe jd  dkofe jd dkZe jd  dkote jd dkZe jd  dkoe jd dkZerd dlZeZeefZeeefZeefZdd Ze e!fZ"dd Z#dd Z$dd Z%e&d dd Z'n5d dlm(Z( d dl)m*Z eZefZeefZefZdd Ze+e e!fZ"dd Z#d d Z$d!d Z%d(d"d#Z,ej'Z'd$d% Z-d&d' Z.dS ))    N)datetimewraps)TYPE_CHECKING)Optional)Tuple)Any)Type)TypeVar)CallableT            
      c                 C      |   S N)	iteritemsx r   b/var/www/html/tatsat2dev/dashboard-backend/venv/lib/python3.10/site-packages/sentry_sdk/_compat.py<lambda>!       r   c                   C   s   t  S r   )r   utcnowr   r   r   r   datetime_utcnow$   s   r   c                 C   s
   t | S r   )r   utcfromtimestamp	timestampr   r   r   utc_from_timestamp'   s   
r!   c                 C   s   | j | _dd | _ | S )Nc                 S   s   t | dS )Nzutf-8)unicodeencoder   r   r   r   r   -   s    z implements_str.<locals>.<lambda>)__str____unicode__)clsr   r   r   implements_str*   s   
r'   z5def reraise(tp, value, tb=None):
 raise tp, value, tbc                    s(   t |  t| G  fddd}|S )z
        Decorator which creates a contextmanager that can also be used as a
        decorator, similar to how the built-in contextlib.contextmanager
        function works in Python 3.2+.
        c                       s0   e Zd Z fddZdd Zdd Zdd Zd	S )
z/contextmanager.<locals>.DecoratorContextManagerc                    s    |i || _ d S r   the_contextmanagerselfargskwargscontextmanager_funcr   r   __init__>   s   z8contextmanager.<locals>.DecoratorContextManager.__init__c                 S   s   | j   d S r   )r)   	__enter__)r+   r   r   r   r1   B      z9contextmanager.<locals>.DecoratorContextManager.__enter__c                 _   s   | j j|i | d S r   )r)   __exit__r*   r   r   r   r3   F   s   z8contextmanager.<locals>.DecoratorContextManager.__exit__c                    s   t   fdd}|S )Nc                     s:   j   | i |}W d    |S 1 sw   Y  |S r   r(   )r,   r-   
return_valdecorated_funcr+   r   r   when_calledL   s   
zMcontextmanager.<locals>.DecoratorContextManager.__call__.<locals>.when_calledr   )r+   r6   r7   r   r5   r   __call__J   s   z8contextmanager.<locals>.DecoratorContextManager.__call__N)__name__
__module____qualname__r0   r1   r3   r8   r   r.   r   r   DecoratorContextManager<   s
    r<   )
contextlibcontextmanagerr   )funcr<   r   r.   r   r>   3   s   
r>   )timezonec                 C   r   r   )itemsr   r   r   r   r   _   r   c                   C   s   t tjS r   )r   nowr@   utcr   r   r   r   r   b      c                 C   s   t | tjS r   )r   fromtimestampr@   rC   r   r   r   r   r!   f   r2   c                 C   s   | S r   r   r   r   r   r   r'   j   s   c                 C   s$   |d usJ |j |ur|||r   )__traceback__with_traceback)tpvaluetbr   r   r   reraisen   s   

rK   c                    s&   G  fdddt }t |ddi S )Nc                       s   e Zd Z fddZdS )z!with_metaclass.<locals>.MetaClassc                    s   | |S r   r   )metaclsname
this_basesdbasesmetar   r   __new__|   rD   z)with_metaclass.<locals>.MetaClass.__new__N)r9   r:   r;   rS   r   rP   r   r   	MetaClass{   s    rT   temporary_classr   )typerS   )rR   rQ   rT   r   rP   r   with_metaclassy   s   rW   c                  C   sv   zddl m}  W n
 ty   Y d S w d| v rd S ddlm} t| dd |v r9ddlm	} |t
d d S d S )	Nr   )optthreads)FALSE_VALUESzenable-threads0)warnzWe detected the use of uwsgi with disabled threads.  This will cause issues with the transport you are trying to use.  Please enable threading for uwsgi.  (Add the "enable-threads" flag).)uwsgirX   ImportErrorsentry_sdk.constsrZ   strgetlowerwarningsr\   Warning)rX   rZ   r\   r   r   r   check_thread_support   s    re   r   )/sysr=   r   	functoolsr   sentry_sdk._typesr   typingr   r   r   r	   r
   r   r   version_infoPY2PY33PY37PY310PY311urlparser"   	text_typer`   string_typesintlongfloatnumber_types	int_typesr   	bytearray
memoryviewbinary_sequence_typesr   r!   r'   execr>   r@   urllib.parseparsebytesrK   rW   re   r   r   r   r   <module>   s\    

%


