§
    xÅjz%  ã                   óÐ   — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	 erd dlm
Z
mZmZmZmZmZ d dlmZmZ dd„Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        ZdS )é    N)ÚTYPE_CHECKING)ÚSession)Úcapture_internal_exceptionsÚ
json_dumps)ÚAnyÚDictÚIteratorÚListÚOptionalÚUnion)ÚEventÚEventDataCategoryÚdataúUnion[bytes, str]Úreturnr   c                 ó€   — t          | t          ¦  «        r|                      dd¦  «        } t          j        | ¦  «        S )Núutf-8Úreplace)Ú
isinstanceÚbytesÚdecodeÚjsonÚloads)r   s    úDC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/envelope.pyÚ
parse_jsonr      s7   € å�$�ÑÔð /Ø�{Š{˜7 IÑ.Ô.ˆÝŒ:�dÑÔÐó    c                   óF  — e Zd ZdZ	 	 d*	 	 	 	 	 d+d„Zedefd	„¦   «         Z	 	 	 	 d,d„Z	 	 	 	 d-d„Z		 	 	 	 d.d„Z
	 	 	 	 d/d„Z	 	 	 	 d0d„Z	 	 	 	 d1d„Z	 	 	 	 d2d„Z	 	 	 	 d3d„Zd4d„Zd4d „Zd5d"„Z	 	 	 	 d6d$„Zdefd%„Ze	 	 	 	 d7d&„¦   «         Zed'edd fd(„¦   «         Zdefd)„ZdS )8Ú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).
    NÚheadersúOptional[Dict[str, Any]]ÚitemsúOptional[List[Item]]r   c                 óp   — |�t          |¦  «        }|pi | _        |€g }nt          |¦  «        }|| _        d S ©N)Údictr   Úlistr!   )Úselfr   r!   s      r   Ú__init__zEnvelope.__init__   sB   € ð
 ÐÝ˜7‘m”mˆGØ�} "ˆŒØˆ=ØˆEˆEå˜‘K”KˆEØˆŒ
ˆ
ˆ
r   c                 ó|   — dt          | j        ¦  «        ›dd                     d„ | j        D ¦   «         ¦  «        ›d�S )Nzenvelope with z items (z, c              3   ó$   K  — | ]}|j         V — Œd S r$   )Údata_category)Ú.0Úxs     r   ú	<genexpr>z'Envelope.description.<locals>.<genexpr>/   s$   è è € Ð:Ð:¨!�a”oÐ:Ð:Ð:Ð:Ð:Ð:r   ú))Úlenr!   Újoin©r'   s    r   ÚdescriptionzEnvelope.description+   sE   € € õ �”
‰OŒOˆOˆOØ�IŠIÐ:Ð:¨t¬zÐ:Ñ:Ô:Ñ:Ô:Ð:Ð:ð
ð 	
r   Úeventr   c                 ój   — |                       t          t          |¬¦  «        d¬¦  «        ¦  «         d S )N©r   r4   ©ÚpayloadÚtype©Úadd_itemÚItemÚ
PayloadRef)r'   r4   s     r   Ú	add_eventzEnvelope.add_event2   s4   € ð 	�Š•d¥:°5Ð#9Ñ#9Ô#9ÀÐHÑHÔHÑIÔIÐIÐIÐIr   Útransactionc                 ój   — |                       t          t          |¬¦  «        d¬¦  «        ¦  «         d S )Nr6   r?   r7   r:   )r'   r?   s     r   Úadd_transactionzEnvelope.add_transaction8   s4   € ð 	�Š•d¥:°;Ð#?Ñ#?Ô#?ÀmÐTÑTÔTÑUÔUÐUÐUÐUr   Úprofiler   c                 ój   — |                       t          t          |¬¦  «        d¬¦  «        ¦  «         d S )Nr6   rB   r7   r:   )r'   rB   s     r   Úadd_profilezEnvelope.add_profile>   s4   € ð 	�Š•d¥:°7Ð#;Ñ#;Ô#;À)ÐLÑLÔLÑMÔMÐMÐMÐMr   Úprofile_chunkc                 ó˜   — |                       t          t          |¬¦  «        dd|                     dd¦  «        i¬¦  «        ¦  «         d S )Nr6   rE   ÚplatformÚpython)r8   r9   r   )r;   r<   r=   Úget)r'   rE   s     r   Úadd_profile_chunkzEnvelope.add_profile_chunkD   s_   € ð 	�ŠÝÝ"¨Ð6Ñ6Ô6Ø$Ø# ]×%6Ò%6°zÀ8Ñ%LÔ%LÐMðñ ô ñ	
ô 	
ð 	
ð 	
ð 	
r   Úcheckinc                 ój   — |                       t          t          |¬¦  «        d¬¦  «        ¦  «         d S )Nr6   Úcheck_inr7   r:   )r'   rK   s     r   Úadd_checkinzEnvelope.add_checkinP   s4   € ð 	�Š•d¥:°7Ð#;Ñ#;Ô#;À*ÐMÑMÔMÑNÔNÐNÐNÐNr   ÚsessionúUnion[Session, Any]c                 ó¼   — t          |t          ¦  «        r|                     ¦   «         }|                      t	          t          |¬¦  «        d¬¦  «        ¦  «         d S )Nr6   rO   r7   )r   r   Úto_jsonr;   r<   r=   )r'   rO   s     r   Úadd_sessionzEnvelope.add_sessionV   sU   € õ �g�wÑ'Ô'ð 	(Ø—o’oÑ'Ô'ˆGØ�Š•d¥:°7Ð#;Ñ#;Ô#;À)ÐLÑLÔLÑMÔMÐMÐMÐMr   Úsessionsc                 ój   — |                       t          t          |¬¦  «        d¬¦  «        ¦  «         d S )Nr6   rT   r7   r:   )r'   rT   s     r   Úadd_sessionszEnvelope.add_sessions^   s4   € ð 	�Š•d¥:°8Ð#<Ñ#<Ô#<À:ÐNÑNÔNÑOÔOÐOÐOÐOr   Úitemr<   c                 ó:   — | j                              |¦  «         d S r$   )r!   Úappend)r'   rW   s     r   r;   zEnvelope.add_itemd   s    € ð 	Œ
×Ò˜$ÑÔÐÐÐr   úOptional[Event]c                 óN   — | j         D ]}|                     ¦   «         }|�|c S Œd S r$   )r!   Ú	get_event)r'   r!   r4   s      r   r\   zEnvelope.get_eventj   s;   € Ø”Zð 	ð 	ˆEØ—O’OÑ%Ô%ˆEØÐ Ø���ð !àˆtr   c                 óN   — | j         D ]}|                     ¦   «         }|�|c S Œd S r$   )r!   Úget_transaction_event)r'   rW   r4   s      r   r^   zEnvelope.get_transaction_eventq   s=   € Ø”Jð 	ð 	ˆDØ×.Ò.Ñ0Ô0ˆEØÐ Ø���ð !àˆtr   úIterator[Item]c                 ó*   — t          | j        ¦  «        S r$   )Úiterr!   r2   s    r   Ú__iter__zEnvelope.__iter__x   s   € Ý�D”JÑÔÐr   Úfc                 ó¼   — |                      t          | j        ¦  «        ¦  «         |                      d¦  «         | j        D ]}|                     |¦  «         Œd S )Nó   
)Úwriter   r   r!   Úserialize_into)r'   rc   rW   s      r   rg   zEnvelope.serialize_into{   sa   € ð 	
�Š•
˜4œ<Ñ(Ô(Ñ)Ô)Ð)Ø	�Š�‰ŒˆØ”Jð 	#ð 	#ˆDØ×Ò Ñ"Ô"Ð"Ð"ð	#ð 	#r   c                 óz   — t          j        ¦   «         }|                      |¦  «         |                     ¦   «         S r$   ©ÚioÚBytesIOrg   Úgetvalue©r'   Úouts     r   Ú	serializezEnvelope.serialize„   ó/   € ÝŒj‰lŒlˆØ×Ò˜CÑ Ô Ð Ø�|Š|‰~Œ~Ðr   c                 óÊ   — t          |                     ¦   «         ¦  «        }g }	 t                               |¦  «        }|€n|                     |¦  «         Œ3 | ||¬¦  «        S )Né   ©r   r!   )r   Úreadliner<   Údeserialize_fromrY   )Úclsrc   r   r!   rW   s        r   ru   zEnvelope.deserialize_from‰   sl   € õ
 ˜QŸZšZ™\œ\Ñ*Ô*ˆØˆð	Ý×(Ò(¨Ñ+Ô+ˆDØˆ|ØØ�LŠL˜ÑÔÐð		ð
 ˆs˜7¨%Ð0Ñ0Ô0Ð0r   r   c                 óP   — |                       t          j        |¦  «        ¦  «        S r$   ©ru   rj   rk   ©rv   r   s     r   ÚdeserializezEnvelope.deserialize—   ó"   € ð
 ×#Ò#¥B¤J¨uÑ$5Ô$5Ñ6Ô6Ð6r   c                 ó(   — d| j         ›d| j        ›d�S )Nz<Envelope headers=z items=ú>rs   r2   s    r   Ú__repr__zEnvelope.__repr__ž   s   € € Ø37´<°<°<ÀÄÀÀÐLÐLr   )NN)r   r    r!   r"   r   N)r4   r   r   N)r?   r   r   N)rB   r   r   N)rE   r   r   N)rK   r   r   N)rO   rP   r   N)rT   r   r   N)rW   r<   r   N©r   rZ   )r   r_   ©rc   r   r   N)rc   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r(   ÚpropertyÚstrr3   r>   rA   rD   rJ   rN   rS   rV   r;   r\   r^   rb   rg   r   ro   Úclassmethodru   rz   r~   © r   r   r   r      sÔ  € € € € € ðð ð /3Ø(,ðà+ðð &ðð 
ð	ð ð ð ð ð
˜Sð 
ð 
ð 
ñ „Xð
ðJàðJð 
ðJð Jð Jð JðVàðVð 
ðVð Vð Vð VðNàðNð 
ðNð Nð Nð Nð

àð

ð 
ð

ð 

ð 

ð 

ðOàðOð 
ðOð Oð Oð OðNà&ðNð 
ðNð Nð Nð NðPàðPð 
ðPð Pð Pð Pð àð ð 
ð ð  ð  ð  ðð ð ð ðð ð ð ð ð  ð  ð  ð#àð#ð 
ð#ð #ð #ð #ð˜5ð ð ð ð ð
 ð1àð1ð 
ð1ð 1ð 1ñ „[ð1ð ð7àð7ð 
ð7ð 7ð 7ñ „[ð7ðM˜#ð Mð Mð Mð Mð Mð Mr   r   c                   ó`   — e Zd Z	 	 	 d	 	 	 	 	 	 	 dd	„Zdefd
„Zedefd„¦   «         Zdefd„Z	dS )r=   Nr   úOptional[bytes]ÚpathúOptional[Union[bytes, str]]r   úOptional[Any]r   c                 ó0   — || _         || _        || _        d S r$   )r   r   r‹   )r'   r   r‹   r   s       r   r(   zPayloadRef.__init__£   s   € ð ˆŒ	ØˆŒ
ØˆŒ	ˆ	ˆ	r   c                 óJ  — | j         €”| j        �mt          ¦   «         5  t          | j        d¦  «        5 }|                     ¦   «         | _         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   n | j        �t          | j        ¦  «        | _         | j         pdS )NÚrbr   )r   r‹   r   ÚopenÚreadr   r   )r'   rc   s     r   Ú	get_byteszPayloadRef.get_bytes­   s  € ØŒ:ÐØŒyÐ$Ý0Ñ2Ô2ð .ð .Ý˜dœi¨Ñ.Ô.ð .°!Ø%&§V¢V¡X¤X˜œ
ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .øð ”Ð&Ý'¨¬	Ñ2Ô2�”
ØŒzÐ ˜SÐ s4   �A0³AÁA0ÁA	ÁA0Á A	Á!A0Á0A4Á7A4c                 óÆ   — | j         �dS | j        �P| j        }t          |t          ¦  «        r|                     dd¦  «        }t          j        |¦  «        d         }|r|S dS )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·   sl   € àŒ9Ð Ø%Ð%ØŒYÐ"Ø”9ˆDÝ˜$¥Ñ&Ô&ð 7Ø—{’{ 7¨IÑ6Ô6�ÝÔ% dÑ+Ô+¨AÔ.ˆBØð Ø�	Ø)Ð)r   c                 ó   — d| j         ›d�S )Nz	<Payload r}   )r˜   r2   s    r   r~   zPayloadRef.__repr__Ä   s   € € Ø!%Ô!;Ð!;Ð!;Ð=Ð=r   )NNN)r   rŠ   r‹   rŒ   r   r�   r   N)
r�   r‚   rƒ   r(   r   r“   r…   r†   r˜   r~   rˆ   r   r   r=   r=   ¢   s¶   € € € € € ð $(Ø.2Ø $ð	à ðð ,ðð ð	ð
 
ðð ð ð ð!˜5ð !ð !ð !ð !ð ð
* sð 
*ð 
*ð 
*ñ „Xð
*ð>˜#ð >ð >ð >ð >ð >ð >r   r=   c                   óæ   — e Zd Z	 	 	 	 d	 	 	 	 	 	 	 	 	 dd
„Zdefd„Zedd„¦   «         Zedd„¦   «         Zde	fd„Z
d d„Zd d„Z	 	 	 	 d!d„Zde	fd„Ze	 	 	 	 d"d„¦   «         Zede	ddfd„¦   «         ZdS )#r<   Nr8   úUnion[bytes, str, PayloadRef]r   r    r9   úOptional[str]Úcontent_typeÚfilenamec                 óX  — |�t          |¦  «        }n|€i }|| _        t          |t          ¦  «        rt	          |¬¦  «        }n;t          |t
          ¦  «        r$t	          |                     d¦  «        ¬¦  «        }n|}|�||d<   |�||d<   |�||d<   nd|vr
|j        |d<   || _        d S )N)r   r   rž   r9   r�   )	r%   r   r   r   r=   r†   Úencoder˜   r8   )r'   r8   r   r9   r�   rž   s         r   r(   zItem.__init__É   sÖ   € ð ÐÝ˜7‘m”mˆGˆGØˆ_ØˆGØˆŒÝ�g�uÑ%Ô%ð 	Ý  wÐ/Ñ/Ô/ˆGˆGÝ˜¥Ñ%Ô%ð 	Ý  w§~¢~°gÑ'>Ô'>Ð?Ñ?Ô?ˆGˆGàˆGàÐØ"*ˆG�JÑØÐØ"ˆG�F‰OØÐ#Ø&2ˆG�NÑ#Ð#Ø 7Ð*Ð*Ø&-Ô&CˆG�NÑ#àˆŒˆˆr   r   c                 ó8   — d| j         ›d| j        ›d| j        ›d�S )Nz<Item headers=z	 payload=z data_category=r}   )r   r8   r+   r2   s    r   r~   zItem.__repr__è   s,   € € àŒLˆLˆLØŒLˆLˆLØÔÐÐð
ð 	
r   c                 ó6   — | j                              d¦  «        S )Nr9   ©r   rI   r2   s    r   r9   z	Item.typeï   s   € àŒ|×Ò Ñ'Ô'Ð'r   r   c                 óö   — | j                              d¦  «        }|dk    s|dk    rdS |dk    rdS |dk    rdS |dk    rdS |dk    rdS |d	k    rd
S |dk    rdS |dk    rdS |dk    rdS |dk    rdS |dk    rdS dS )Nr9   rO   rT   Ú
attachmentr?   Úspanr4   ÚerrorÚlogÚlog_itemÚtrace_metricÚclient_reportÚinternalrB   rE   rM   ÚmonitorÚdefaultr£   )r'   r—   s     r   r+   zItem.data_categoryó   sÌ   € àŒ\×Ò˜fÑ%Ô%ˆØ�Š?ˆ?˜b JÒ.Ð.Ø�9Ø�<ÒÐØ�<Ø�=Ò Ð Ø �=Ø�6Š\ˆ\Ø�6Ø�7Š]ˆ]Ø�7Ø�5Š[ˆ[Ø�:Ø�>Ò!Ð!Ø!�>Ø�?Ò"Ð"Ø�:Ø�9Š_ˆ_Ø�9Ø�?Ò"Ð"Ø"�?Ø�:ÒÐØ�9à�9r   c                 ó4   — | j                              ¦   «         S r$   )r8   r“   r2   s    r   r“   zItem.get_bytes  s   € ØŒ|×%Ò%Ñ'Ô'Ð'r   rZ   c                 óL   — | j         dk    r| j        j        �| j        j        S dS )z9
        Returns an error event if there is one.
        r4   N©r9   r8   r   r2   s    r   r\   zItem.get_event  s+   € ð Œ9˜ÒÐ D¤LÔ$5Ð$AØ”<Ô$Ð$Øˆtr   c                 óL   — | j         dk    r| j        j        �| j        j        S d S )Nr?   r±   r2   s    r   r^   zItem.get_transaction_event  s)   € ØŒ9˜Ò%Ð%¨$¬,Ô*;Ð*GØ”<Ô$Ð$Øˆtr   rc   r   c                 ó<  — t          | j        ¦  «        }|                      ¦   «         }t          |¦  «        |d<   |                     t          |¦  «        ¦  «         |                     d¦  «         |                     |¦  «         |                     d¦  «         d S )NÚlengthre   )r%   r   r“   r0   rf   r   )r'   rc   r   r   s       r   rg   zItem.serialize_into  s}   € õ �t”|Ñ$Ô$ˆØ—’Ñ Ô ˆÝ ™JœJˆ�ÑØ	�Š•
˜7Ñ#Ô#Ñ$Ô$Ð$Ø	�Š�‰ŒˆØ	�Š�‰ŒˆØ	�Š�‰Œˆˆˆr   c                 óz   — t          j        ¦   «         }|                      |¦  «         |                     ¦   «         S r$   ri   rm   s     r   ro   zItem.serialize+  rp   r   úOptional[Item]c                 óâ  — |                      ¦   «                              ¦   «         }|sd S t          |¦  «        }|                     d¦  «        }|�*|                     |¦  «        }|                      ¦   «          n'|                      ¦   «                              d¦  «        }|                     d¦  «        dv r) | |t          t          |¦  «        ¬¦  «        ¬¦  «        }n | ||¬¦  «        }|S )Nr´   re   r9   )r4   r?   r6   )r   r8   )rt   Úrstripr   rI   r’   r=   )rv   rc   Úliner   r´   r8   Úrvs          r   ru   zItem.deserialize_from0  sã   € ð
 �zŠz‰|Œ|×"Ò"Ñ$Ô$ˆØð 	Ø�4Ý˜TÑ"Ô"ˆØ—’˜XÑ&Ô&ˆØÐØ—f’f˜V‘n”nˆGØ�JŠJ‰LŒLˆLˆLð —j’j‘l”l×)Ò)¨%Ñ0Ô0ˆGØ�;Š;�vÑÔÐ":Ð:Ð:Ø�˜W­j½jÈÑ>QÔ>QÐ.RÑ.RÔ.RÐSÑSÔSˆBˆBà�˜W¨gÐ6Ñ6Ô6ˆBØˆ	r   r   c                 óP   — |                       t          j        |¦  «        ¦  «        S r$   rx   ry   s     r   rz   zItem.deserializeG  r{   r   )NNNN)
r8   r›   r   r    r9   rœ   r�   rœ   rž   rœ   )r   rœ   )r   r   r   r€   )rc   r   r   r¶   )r�   r‚   rƒ   r(   r†   r~   r…   r9   r+   r   r“   r\   r^   rg   ro   r‡   ru   rz   rˆ   r   r   r<   r<   È   s©  € € € € € ð /3Ø $Ø(,Ø$(ðà0ðð ,ðð ð	ð
 &ðð "ðð ð ð ð>
˜#ð 
ð 
ð 
ð 
ð ð(ð (ð (ñ „Xð(ð ðð ð ñ „Xðð6(˜5ð (ð (ð (ð (ðð ð ð ðð ð ð ð

àð
ð 
ð
ð 
ð 
ð 
ð˜5ð ð ð ð ð
 ðàðð 
ðð ð ñ „[ðð, ð7àð7ð 
ð7ð 7ð 7ñ „[ð7ð 7ð 7r   r<   )r   r   r   r   )rj   r   r•   Útypingr   Úsentry_sdk.sessionr   Úsentry_sdk.utilsr   r   r   r   r	   r
   r   r   Úsentry_sdk._typesr   r   r   r   r=   r<   rˆ   r   r   ú<module>rÀ      sa  ðØ 	€	€	€	Ø €€€Ø Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à &Ð &Ð &Ð &Ð &Ð &Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dàð ;ØAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAà:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ðð ð ð ðIMð IMð IMð IMð IMñ IMô IMð IMðX#>ð #>ð #>ð #>ð #>ñ #>ô #>ð #>ðLD7ð D7ð D7ð D7ð D7ñ D7ô D7ð D7ð D7ð D7r   