Viewing File: /opt/hc_python/lib/python3.12/site-packages/sentry_sdk/__pycache__/envelope.cpython-312.pyc

�

_�*jz%���ddlZddlZddlZddlmZddlmZddlmZm	Z	erddlm
Z
mZmZm
Z
mZmZddlmZmZdd�ZGd�d	�ZGd
�d�ZGd�d
�Zy)�N)�
TYPE_CHECKING)�Session)�capture_internal_exceptions�
json_dumps)�Any�Dict�Iterator�List�Optional�Union)�Event�EventDataCategoryc�p�t|t�r|jdd�}tj|�S)N�utf-8�replace)�
isinstance�bytes�decode�json�loads)�datas �B/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/envelope.py�
parse_jsonrs+���$����{�{�7�I�.���:�:�d���c�2�eZdZdZ		d					dd�Zedefd��Z				dd�Z				dd�Z					dd�Z
				dd	�Z				dd
�Z				dd�Z
				dd�Z				d d
�Zd!d�Zd!d�Zd"d�Z				d#d�Zdefd�Ze				d$d��Zededdfd��Zdefd�Zy)%�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�returnc�p�|�t|�}|xsi|_|�
g}||_yt|�}||_y�N)�dict�headers�list�items)�selfr!r#s   r�__init__zEnvelope.__init__sC��
���7�m�G��}�"����=��E���
���K�E���
rc�z�dt|j��ddjd�|jD���d�S)Nzenvelope with z items (z, c3�4K�|]}|j���y�wr)�
data_category)�.0�xs  r�	<genexpr>z'Envelope.description.<locals>.<genexpr>/s����:�z�!�a�o�o�z�s��))�lenr#�join�r$s r�descriptionzEnvelope.description+s/��
��
�
�O��I�I�:�t�z�z�:�:�
�	
rc�P�|jtt|��d���y)N�r�event��payload�type��add_item�Item�
PayloadRef)r$r3s  r�	add_eventzEnvelope.add_event2s��	
�
�
�d�:�5�#9��H�Irc�P�|jtt|��d���y)Nr2�transactionr4r7)r$r=s  r�add_transactionzEnvelope.add_transaction8s��	
�
�
�d�:�;�#?�m�T�Urc�P�|jtt|��d���y)Nr2�profiler4r7)r$r@s  r�add_profilezEnvelope.add_profile>s��	
�
�
�d�:�7�#;�)�L�Mrc�v�|jtt|��dd|jdd�i���y)Nr2�
profile_chunk�platform�python)r5r6r!)r8r9r:�get)r$rCs  r�add_profile_chunkzEnvelope.add_profile_chunkDs8��	
�
�
��"�
�6�$�#�]�%6�%6�z�8�%L�M�
�	
rc�P�|jtt|��d���y)Nr2�check_inr4r7)r$�checkins  r�add_checkinzEnvelope.add_checkinPs��	
�
�
�d�:�7�#;�*�M�Nrc��t|t�r|j�}|jt	t|��d���y)Nr2�sessionr4)rr�to_jsonr8r9r:)r$rMs  r�add_sessionzEnvelope.add_sessionVs2���g�w�'��o�o�'�G��
�
�d�:�7�#;�)�L�Mrc�P�|jtt|��d���y)Nr2�sessionsr4r7)r$rQs  r�add_sessionszEnvelope.add_sessions^s��	
�
�
�d�:�8�#<�:�N�Orc�:�|jj|�yr)r#�append)r$�items  rr8zEnvelope.add_itemds��	
�
�
���$�rc�R�|jD]}|j�}|��|cSyr)r#�	get_event)r$r#r3s   rrWzEnvelope.get_eventjs,���Z�Z�E��O�O�%�E�� ��� �rc�R�|jD]}|j�}|��|cSyr)r#�get_transaction_event)r$rUr3s   rrYzEnvelope.get_transaction_eventqs.���J�J�D��.�.�0�E�� ����rc�,�t|j�Sr)�iterr#r/s r�__iter__zEnvelope.__iter__xs���D�J�J��rc��|jt|j��|jd�|jD]}|j	|��y)N�
)�writerr!r#�serialize_into)r$�frUs   rr`zEnvelope.serialize_into{s@��	
���
�4�<�<�(�)�	������J�J�D�����"�rc�l�tj�}|j|�|j�Sr��io�BytesIOr`�getvalue�r$�outs  r�	serializezEnvelope.serialize��'���j�j�l�����C� ��|�|�~�rc��t|j��}g}	tj|�}|�n|j	|��*|||��S)N�r!r#)r�readliner9�deserialize_fromrT)�clsrar!r#rUs     rrnzEnvelope.deserialize_from�sT��
�Q�Z�Z�\�*������(�(��+�D��|���L�L���	�
�7�%�0�0rrc�J�|jtj|��Sr�rnrdre�rors  r�deserializezEnvelope.deserialize����
�#�#�B�J�J�u�$5�6�6rc�<�d|j�d|j�d�S)Nz<Envelope headers=z items=�>rlr/s r�__repr__zEnvelope.__repr__�s��37�<�<����L�Lr)NN)r!�Optional[Dict[str, Any]]r#zOptional[List[Item]]rN)r3r
rN)r=r
rN)r@rrN)rCrrN)rJrrN)rMzUnion[Session, Any]rN)rQrrN)rUr9rN�rzOptional[Event])rzIterator[Item]�rarrN)rarrr)�__name__�
__module__�__qualname__�__doc__r%�property�strr0r;r>rArGrKrOrRr8rWrYr\r`rri�classmethodrnrsrw�rrrrs����/3�(,��+��&��
�	��
�S�
��
�J��J�
�J�V��V�
�V�N��N�
�N�

��

�
�

�O��O�
�O�N�&�N�
�N�P��P�
�P� �� �
� ��� �#��#�
�#��5��
�1��1�
�1��1��7��7�
�7��7�M�#�Mrrc�X�eZdZ			d							dd�Zdefd�Zedefd��Zdefd�Z	y)	r:Nrc�.�||_||_||_yr)rr�path)r$rr�rs    rr%zPayloadRef.__init__�s����	���
���	rc�^�|j�z|j�Ht�5t|jd�5}|j	�|_ddd�ddd�n&|j
�t
|j
�|_|jxsdS#1swY�HxYw#1swY�%xYw)N�rbr)rr�r�open�readrr)r$ras  r�	get_byteszPayloadRef.get_bytes�s����:�:���y�y�$�0�2��d�i�i��.�!�%&�V�V�X��
�/�3�2����&�'��	�	�2��
��z�z� �S� �	/�.��3�2�s"�B#�B�B#�B 	�B#�#B,c���|j�y|j�J|j}t|t�r|j	dd�}tj|�d}|r|Sy)Nzapplication/jsonrrrzapplication/octet-stream)rr�rrr�	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���	�)rc�"�d|j�d�S)Nz	<Payload rv)r�r/s rrwzPayloadRef.__repr__�s��!%�!;�!;�=�=r)NNN)rzOptional[bytes]r�zOptional[Union[bytes, str]]rz
Optional[Any]rN)
r{r|r}r%rr�rr�r�rwr�rrr:r:�sk��$(�.2� $�	� ��,���	�

��!�5�!��
*�s�
*��
*�>�#�>rr:c���eZdZ				d									dd�Zdefd�Zedd��Zedd��Zde	fd�Z
dd�Zdd	�Z				dd
�Z
de	fd�Ze				dd
��Zede	ddfd��Zy)r9Nc�:�|�t|�}n|�i}||_t|t�r
t	|��}n.t|t
�rt	|j
d���}n|}|�||d<|�||d<|�
||d<||_yd|vr|j|d<||_y)N)rr�filenamer6�content_type)	r r!rrr:r��encoder�r5)r$r5r!r6r�r�s      rr%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�#���rrc�V�d|j�d|j�d|j�d�S)Nz<Item headers=z	 payload=z data_category=rv)r!r5r(r/s rrwz
Item.__repr__�s#���L�L��L�L����
�	
rc�8�|jjd�S)Nr6�r!rFr/s rr6z	Item.type�s���|�|����'�'rc���|jjd�}|dk(s|dk(ry|dk(ry|dk(ry|dk(ry|dk(ry|d	k(ry
|dk(ry|dk(ry
|dk(ry|dk(ry|dk(ryy)Nr6rMrQ�
attachmentr=�spanr3�error�log�log_item�trace_metric�
client_report�internalr@rCrI�monitor�defaultr�)r$r�s  rr(zItem.data_category�s���
�\�\�
�
�f�
%��
��?�b�J�.��
�<�
��
�=�
 � �
�6�\��
�7�]��
�5�[��
�>�
!�!�
�?�
"��
�9�_��
�?�
"�"�
�:�
��rc�6�|jj�Sr)r5r�r/s rr�zItem.get_bytess���|�|�%�%�'�'rc�z�|jdk(r,|jj�|jjSy)z9
        Returns an error event if there is one.
        r3N�r6r5rr/s rrWzItem.get_events2���9�9���D�L�L�$5�$5�$A��<�<�$�$�$�rc�z�|jdk(r,|jj�|jjSy)Nr=r�r/s rrYzItem.get_transaction_events0���9�9�
�%�$�,�,�*;�*;�*G��<�<�$�$�$�rc��t|j�}|j�}t|�|d<|j	t|��|j	d�|j	|�|j	d�y)N�lengthr^)r r!r�r-r_r)r$rar!rs    rr`zItem.serialize_intos^���t�|�|�$����� ����J����	���
�7�#�$�	�����	�����	����rc�l�tj�}|j|�|j�Srrcrgs  rrizItem.serialize+rjr�Optional[Item]c�~�|j�j�}|syt|�}|jd�}|�"|j	|�}|j�n|j�jd�}|jd�dvr||tt|�����}|S|||��}|S)Nr�r^r6)r3r=r2)r!r5)rm�rstriprrFr�r:)rora�liner!r�r5�rvs       rrnzItem.deserialize_from0s���
�z�z�|�"�"�$�����T�"�����X�&�����f�f�V�n�G�
�J�J�L��j�j�l�)�)�%�0�G��;�;�v��":�:��W�j�j��>Q�.R�S�B��	��W�g�6�B��	rrc�J�|jtj|��Srrqrrs  rrszItem.deserializeGrtr)NNNN)
r5zUnion[bytes, str, PayloadRef]r!rxr6�
Optional[str]r�r�r�r�)rr�)rrryrz)rarrr�)r{r|r}r%r�rwrr6r(rr�rWrYr`rir�rnrsr�rrr9r9�s���/3� $�(,�$(�
�0��,���	�
&��"�
�>
�#�
��(��(�����6(�5�(���

��
�
�
��5��
����
����,�7��7�
�7��7rr9)rzUnion[bytes, str]rr)rdrr��typingr�sentry_sdk.sessionr�sentry_sdk.utilsrrrrr	r
rr�sentry_sdk._typesr
rrrr:r9r�rr�<module>r�sN��	��� �&�D��A�A�:��IM�IM�X#>�#>�LD7�D7r
Back to Directory File Manager