Ë
    õ�DjÂ'  ã                   óâ   — 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    úWC:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\sentry_sdk/envelope.pyÚ
parse_jsonr      s-   € ô �$œÔØ�{‰{˜7 IÓ.ˆÜ�:‰:�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   € ð ÐÜ˜7“mˆGØ’} "ˆŒØˆ=ØˆEð ˆ�
ô ˜“KˆEØˆ�
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   è ø€ Ò:¨!�a—o•oÑ:ùs   ‚ú))Úlenr"   Újoin©r#   s    r   ÚdescriptionzEnvelope.description3   s/   � ô �—
‘
�OØ�I‰IÑ:¨t¯z©zÔ:Õ:ð
ð 	
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                 óP   — | j                  t        t        |¬«      d¬«      «       y )Nr1   Úprofile_chunkr3   r6   )r#   rB   s     r   Úadd_profile_chunkzEnvelope.add_profile_chunkM   s   € ð 	�‰Üœ¨Ô7¸oÔNõ	
r   c                 óP   — | j                  t        t        |¬«      d¬«      «       y )Nr1   Úcheck_inr3   r6   )r#   Úcheckins     r   Úadd_checkinzEnvelope.add_checkinU   s   € ð 	�‰”d¤:°7Ô#;À*ÔMÕNr   c                 ó�   — t        |t        «      r|j                  «       }| j                  t	        t        |¬«      d¬«      «       y )Nr1   Úsessionr3   )r   r   Úto_jsonr7   r8   r9   )r#   rI   s     r   Úadd_sessionzEnvelope.add_session[   s2   € ô �gœwÔ'Ø—o‘oÓ'ˆGØ�‰”d¤:°7Ô#;À)ÔLÕMr   c                 óP   — | j                  t        t        |¬«      d¬«      «       y )Nr1   Úsessionsr3   r6   )r#   rM   s     r   Úadd_sessionszEnvelope.add_sessionsc   s   € ð 	�‰”d¤:°8Ô#<À:ÔNÕOr   c                 ó:   — | j                   j                  |«       y r   )r"   Úappend)r#   Úitems     r   r7   zEnvelope.add_itemi   s   € ð 	�
‰
×Ñ˜$Õr   c                 óR   — | j                   D ]  }|j                  «       }|€Œ|c S  y r   )r"   Ú	get_event)r#   r"   r2   s      r   rS   zEnvelope.get_evento   s1   € à—Z‘Zò 	ˆEØ—O‘OÓ%ˆEØÑ Ø’ð	ð r   c                 óR   — | j                   D ]  }|j                  «       }|€Œ|c S  y r   )r"   Úget_transaction_event)r#   rQ   r2   s      r   rU   zEnvelope.get_transaction_eventw   s3   € à—J‘Jò 	ˆDØ×.Ñ.Ó0ˆEØÑ Ø’ð	ð r   c                 ó,   — t        | j                  «      S r   )Úiterr"   r.   s    r   Ú__iter__zEnvelope.__iter__   s   € ä�D—J‘JÓÐr   c                 ó²   — |j                  t        | j                  «      «       |j                  d«       | j                  D ]  }|j	                  |«       Œ y )Nó   
)Úwriter   r    r"   Úserialize_into)r#   ÚfrQ   s      r   r\   zEnvelope.serialize_intoƒ   sE   € ð 	
�‰”
˜4Ÿ<™<Ó(Ô)Ø	�‰�ŒØ—J‘Jò 	#ˆDØ×Ñ Õ"ñ	#r   c                 ól   — t        j                  «       }| j                  |«       |j                  «       S r   ©ÚioÚBytesIOr\   Úgetvalue©r#   Úouts     r   Ú	serializezEnvelope.serializeŒ   ó'   € ä�j‰j‹lˆØ×Ñ˜CÔ Ø�|‰|‹~Ðr   c                 ó¢   — t        |j                  «       «      }g }	 t        j                  |«      }|€n|j	                  |«       Œ* | ||¬«      S )N©r    r"   )r   Úreadliner8   Údeserialize_fromrP   )Úclsr]   r    r"   rQ   s        r   rj   zEnvelope.deserialize_from’   sT   € ô
 ˜QŸZ™Z›\Ó*ˆØˆØÜ×(Ñ(¨Ó+ˆDØˆ|ØØ�L‰L˜Ôð	 ñ
 ˜7¨%Ô0Ð0r   c                 óJ   — | j                  t        j                  |«      «      S r   ©rj   r`   ra   ©rk   r   s     r   ÚdeserializezEnvelope.deserialize    ó   € ð
 ×#Ñ#¤B§J¡J¨uÓ$5Ó6Ð6r   c                 ó<   — d| j                   ›d| j                  ›d�S )Nz<Envelope headers=z items=ú>rh   r.   s    r   Ú__repr__zEnvelope.__repr__§   s   � à37·<³<ÀÇÃÐLÐLr   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   Úpropertyr/   r:   r=   r@   rC   rG   rK   rN   r7   rS   rU   rX   r\   re   Úclassmethodrj   ro   rs   © 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“   € à�:‰:ÐØ�y‰yÐ$Ü0Ó2ñ .Ü˜dŸi™i¨Ó.ð .°!Ø%&§V¡V£X˜œ
÷.÷.ð .ð —‘Ð&Ü'¨¯	©	Ó2�”
Ø�z‰zÒ ˜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^   € ð �9‰9Ð Ø%Ø�Y‰YÐ"Ø—9‘9ˆDÜ˜$¤Ô&Ø—{‘{ 7¨IÓ6�Ü×%Ñ% dÓ+¨AÑ.ˆBÙØ�	Ø)r   c                 ó"   — d| j                   ›d�S )Nz	<Payload rr   )r‡   r.   s    r   rs   zPayloadRef.__repr__Ñ   s   � à!%×!;Ó!;Ð=Ð=r   )NNN)rt   ru   rv   r$   r‚   rx   r‡   rs   rz   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³   € ð ÐÜ˜7“m‰GØˆ_ØˆGØˆŒÜ�gœuÔ%Ü  wÔ/‰GÜ˜¤Ô%Ü  w§~¡~°gÓ'>Ô?‰GàˆGàÐØ"*ˆG�JÑØÐØ"ˆG�F‰OØÐ#Ø&2ˆG�NÑ#ð ˆ�ð  7Ñ*Ø&-×&CÑ&CˆG�NÑ#àˆ�r   c                 óV   — d| j                   ›d| j                  ›d| j                  ›d�S )Nz<Item headers=z	 payload=z data_category=rr   )r    r4   r'   r.   s    r   rs   zItem.__repr__ö   s%   � ð �L‹LØ�L‹LØ×Óð
ð 	
r   c                 ó8   — | j                   j                  d«      S )Nr5   ©r    Úgetr.   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y)Nr5   rI   rM   Ú
attachmentr<   r2   ÚerrorÚclient_reportÚinternalr?   rB   ÚstatsdÚmetric_bucketrE   ÚmonitorÚdefaultr‘   )r#   r†   s     r   r'   zItem.data_category  s�   € ð �\‰\×Ñ˜fÓ%ˆØ�Š?˜b JÒ.ØØ�<ÒØØ�=Ò Ø Ø�7Š]ØØ�?Ò"ØØ�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   rS   zItem.get_event   s2   € ð
 �9‰9˜Ò D§L¡L×$5Ñ$5Ð$AØ—<‘<×$Ñ$Ð$Ør   c                 óz   — | j                   dk(  r,| j                  j                  �| j                  j                  S y )Nr<   rž   r.   s    r   rU   zItem.get_transaction_event)  s0   € à�9‰9˜Ò%¨$¯,©,×*;Ñ*;Ð*GØ—<‘<×$Ñ$Ð$Ør   c                 ó  — t        | j                  «      }| j                  «       }t        |«      |d<   |j	                  t        |«      «       |j	                  d«       |j	                  |«       |j	                  d«       y )NÚlengthrZ   )r   r    r‚   r,   r[   r   )r#   r]   r    r   s       r   r\   zItem.serialize_into/  s^   € ô �t—|‘|Ó$ˆØ—‘Ó ˆÜ ›Jˆ�ÑØ	�‰”
˜7Ó#Ô$Ø	�‰�ŒØ	�‰�ŒØ	�‰��r   c                 ól   — t        j                  «       }| j                  |«       |j                  «       S r   r_   rc   s     r   re   zItem.serialize;  rf   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¡   rZ   r5   )r2   r<   Úmetric_bucketsr1   )r    r4   )ri   Úrstripr   r’   r�   r9   )rk   r]   Úliner    r¡   r4   Úrvs          r   rj   zItem.deserialize_fromA  s¬   € ð
 �z‰z‹|×"Ñ"Ó$ˆÙØÜ˜TÓ"ˆØ—‘˜XÓ&ˆØÐØ—f‘f˜V“nˆGØ�J‰J�Lð —j‘j“l×)Ñ)¨%Ó0ˆGØ�;‰;�vÓÐ"LÑLÙ˜W¬j¼jÈÓ>QÔ.RÔSˆBð ˆ	ñ ˜W¨gÔ6ˆBØˆ	r   c                 óJ   — | j                  t        j                  |«      «      S r   rm   rn   s     r   ro   zItem.deserializeX  rp   r   )NNNN)rt   ru   rv   r$   rs   rx   r5   r'   r‚   rS   rU   r\   re   ry   rj   ro   rz   r   r   r8   r8   Ö   sƒ   „ ð ØØØóò>
ð ñ(ó ð(ð ñó ðò0(òòò
òð ñó ðð, ñ7ó ñ7r   r8   )r`   r   r„   Úsentry_sdk.sessionr   Úsentry_sdk.utilsr   r   Útypingr   r   r   r	   r
   r   r   Úsentry_sdk._typesr   r   r   r   r9   r8   rz   r   r   ú<module>r­      sZ   ðÛ 	Û Û å &ß Då  áÝÝÝÝÝÝç:ò÷LMñ LM÷^'>ñ '>÷TG7ò G7r   