
    lhs(                         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	 e	r,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 d d
lmZ d dlmZmZ d Z G d d      Z G d d      Z G d d      Zy)    N)Session)
json_dumpscapture_internal_exceptions)TYPE_CHECKING)Any)Optional)Union)Dict)List)Iterator)EventEventDataCategoryc                 p    t        | t              r| j                  dd      } t        j                  |       S )Nutf-8replace)
isinstancebytesdecodejsonloads)datas    e/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/envelope.py
parse_jsonr      s-     ${{7I.::d    c                       e Zd ZdZ	 	 ddZed        Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zed        Zed        Zd Zy)Envelopea.  
    Represents a Sentry Envelope. The calling code is responsible for adhering to the constraints
    documented in the Sentry docs: https://develop.sentry.dev/sdk/envelopes/#data-model. In particular,
    each envelope may have at most one Item with type "event" or "transaction" (but not both).
    Nc                 p    |t        |      }|xs i | _        |
g }|| _        y t        |      }|| _        y N)dictheaderslistitems)selfr    r"   s      r   __init__zEnvelope.__init__$   sC     7mG}"=E 
 KE
r   c                 z    dt        | j                        ddj                  d | j                  D              dS )Nzenvelope with z items (z, c              3   4   K   | ]  }|j                     y wr   )data_category).0xs     r   	<genexpr>z'Envelope.description.<locals>.<genexpr>8   s     :!aoo:s   ))lenr"   joinr#   s    r   descriptionzEnvelope.description3   s/     

OII:tzz::
 	
r   c                 P    | j                  t        t        |      d             y )Nr   eventpayloadtypeadd_itemItem
PayloadRef)r#   r2   s     r   	add_eventzEnvelope.add_event;   s     	d:5#9HIr   c                 P    | j                  t        t        |      d             y )Nr1   transactionr3   r6   )r#   r<   s     r   add_transactionzEnvelope.add_transactionA   s     	d:;#?mTUr   c                 P    | j                  t        t        |      d             y )Nr1   profiler3   r6   )r#   r?   s     r   add_profilezEnvelope.add_profileG   s     	d:7#;)LMr   c                 v    | j                  t        t        |      dd|j                  dd      i             y )Nr1   profile_chunkplatformpython)r4   r5   r    )r7   r8   r9   get)r#   rB   s     r   add_profile_chunkzEnvelope.add_profile_chunkM   s8     	"6$#]%6%6z8%LM	
r   c                 P    | j                  t        t        |      d             y )Nr1   check_inr3   r6   )r#   checkins     r   add_checkinzEnvelope.add_checkinY   s     	d:7#;*MNr   c                     t        |t              r|j                         }| j                  t	        t        |      d             y )Nr1   sessionr3   )r   r   to_jsonr7   r8   r9   )r#   rL   s     r   add_sessionzEnvelope.add_session_   s2     gw'oo'Gd:7#;)LMr   c                 P    | j                  t        t        |      d             y )Nr1   sessionsr3   r6   )r#   rP   s     r   add_sessionszEnvelope.add_sessionsg   s     	d:8#<:NOr   c                 :    | j                   j                  |       y r   )r"   append)r#   items     r   r7   zEnvelope.add_itemm   s     	

$r   c                 R    | j                   D ]  }|j                         }||c S  y r   )r"   	get_event)r#   r"   r2   s      r   rV   zEnvelope.get_events   s1    ZZ 	EOO%E 	 r   c                 R    | j                   D ]  }|j                         }||c S  y r   )r"   get_transaction_event)r#   rT   r2   s      r   rX   zEnvelope.get_transaction_event{   s3    JJ 	D..0E 	 r   c                 ,    t        | j                        S r   )iterr"   r.   s    r   __iter__zEnvelope.__iter__   s    DJJr   c                     |j                  t        | j                               |j                  d       | j                  D ]  }|j	                  |        y )N   
)writer   r    r"   serialize_into)r#   frT   s      r   r_   zEnvelope.serialize_into   sE     	

4<<()	JJ 	#D"	#r   c                 l    t        j                         }| j                  |       |j                         S r   ioBytesIOr_   getvaluer#   outs     r   	serializezEnvelope.serialize   '    jjlC ||~r   c                     t        |j                               }g }	 t        j                  |      }|n|j	                  |       * | ||      S )Nr    r"   )r   readliner8   deserialize_fromrS   )clsr`   r    r"   rT   s        r   rm   zEnvelope.deserialize_from   sT    
 QZZ\*((+D|LL	 
 7%00r   c                 J    | j                  t        j                  |            S r   rm   rc   rd   rn   r   s     r   deserializezEnvelope.deserialize       
 ##BJJu$566r   c                 <    d| j                   d| j                  dS )Nz<Envelope headers=z items=>rk   r.   s    r   __repr__zEnvelope.__repr__   s    37<<LLr   )NN)__name__
__module____qualname____doc__r$   propertyr/   r:   r=   r@   rF   rJ   rN   rQ   r7   rV   rX   r[   r_   rh   classmethodrm   rr   rv    r   r   r   r      s      
 
JVN

ONP  # 1 1 7 7Mr   r   c                   6    e Zd Z	 	 	 ddZd Zed        Zd Zy)r9   Nc                 .    || _         || _        || _        y r   )r   r   path)r#   r   r   r   s       r   r$   zPayloadRef.__init__   s     	
	r   c                 ^   | j                   z| j                  Ht               5  t        | j                  d      5 }|j	                         | _         d d d        d d d        n&| j
                  t        | j
                        | _         | j                   xs dS # 1 sw Y   HxY w# 1 sw Y   %xY w)Nrbr   )r   r   r   openreadr   r   )r#   r`   s     r   	get_byteszPayloadRef.get_bytes   s    ::yy$02 .dii. .!%&VVX
.. . &'		2
zz S 	. .. .s"   B#BB#B 	B##B,c                     | j                   y| j                  J| j                  }t        |t              r|j	                  dd      }t        j                  |      d   }|r|S y)Nzapplication/jsonr   r   r   zapplication/octet-stream)r   r   r   r   r   	mimetypes
guess_type)r#   r   tys      r   inferred_content_typez PayloadRef.inferred_content_type   s^     99 %YY"99D$&{{7I6%%d+A.B	)r   c                 "    d| j                   dS )Nz	<Payload ru   )r   r.   s    r   rv   zPayloadRef.__repr__   s    !%!;!;==r   )NNN)rw   rx   ry   r$   r   r{   r   rv   r}   r   r   r9   r9      s0     			! * *>r   r9   c                       e Zd Z	 	 	 	 ddZd Zed        Zed        Zd Zd Z	d Z
d	 Zd
 Zed        Zed        Zy)r8   Nc                 :   |t        |      }n|i }|| _        t        |t              rt	        |      }n.t        |t
              rt	        |j                  d            }n|}|||d<   |||d<   |||d<   || _        y d|vr|j                  |d<   || _        y )N)r   r   filenamer5   content_type)	r   r    r   r   r9   strencoder   r4   )r#   r4   r    r5   r   r   s         r   r$   zItem.__init__   s     7mG_Ggu% w/G% w~~g'>?GG"*GJ"GFO#&2GN#  7*&-&C&CGN#r   c                 V    d| j                   d| j                  d| j                  dS )Nz<Item headers=z	 payload=z data_category=ru   )r    r4   r'   r.   s    r   rv   zItem.__repr__   s%     LLLL
 	
r   c                 8    | j                   j                  d      S )Nr5   r    rE   r.   s    r   r5   z	Item.type  s     ||''r   c                     | j                   j                  d      }|dk(  s|dk(  ry|dk(  ry|dk(  ry|dk(  ry|dk(  ry|d	k(  ry
|dk(  ry|dk(  ry|dk(  ry|dk(  ryy)Nr5   rL   rP   
attachmentr<   r2   errorlogclient_reportinternalr?   rB   statsdmetric_bucketrH   monitordefaultr   )r#   r   s     r   r'   zItem.data_category  s     \\f%?bJ.<=  7]5[?"9_?""8^":r   c                 6    | j                   j                         S r   )r4   r   r.   s    r   r   zItem.get_bytes"  s    ||%%''r   c                 z    | j                   dk(  r,| j                  j                  | j                  j                  S y)z9
        Returns an error event if there is one.
        r2   Nr5   r4   r   r.   s    r   rV   zItem.get_event&  s2    
 99DLL$5$5$A<<$$$r   c                 z    | j                   dk(  r,| j                  j                  | j                  j                  S y )Nr<   r   r.   s    r   rX   zItem.get_transaction_event/  s0    99%$,,*;*;*G<<$$$r   c                    t        | j                        }| j                         }t        |      |d<   |j	                  t        |             |j	                  d       |j	                  |       |j	                  d       y )Nlengthr]   )r   r    r   r,   r^   r   )r#   r`   r    r   s       r   r_   zItem.serialize_into5  s^     t||$ J	
7#$			r   c                 l    t        j                         }| j                  |       |j                         S r   rb   rf   s     r   rh   zItem.serializeA  ri   r   c                 ~   |j                         j                         }|sy t        |      }|j                  d      }|"|j	                  |      }|j                          n|j                         j                  d      }|j                  d      dv r | |t        t        |                  }|S  | ||      }|S )Nr   r]   r5   )r2   r<   metric_bucketsr1   )r    r4   )rl   rstripr   rE   r   r9   )rn   r`   liner    r   r4   rvs          r   rm   zItem.deserialize_fromG  s    
 zz|""$T"X&ffVnGJJL jjl))%0G;;v"LLWjj>Q.RSB 	 Wg6B	r   c                 J    | j                  t        j                  |            S r   rp   rq   s     r   rr   zItem.deserialize^  rs   r   )NNNN)rw   rx   ry   r$   rv   r{   r5   r'   r   rV   rX   r_   rh   r|   rm   rr   r}   r   r   r8   r8      s     >
 ( (  4(
  , 7 7r   r8   )rc   r   r   sentry_sdk.sessionr   sentry_sdk.utilsr   r   typingr   r   r   r	   r
   r   r   sentry_sdk._typesr   r   r   r   r9   r8   r}   r   r   <module>r      sZ    	   & D  :PM PMf'> '>TI7 I7r   