§
    xÅjW  ã                   ó�   — d dl Z d dlmZmZ d dlmZ d dlmZ erd dlmZmZm	Z	m
Z
 d dlmZ dd
„Z	 	 	 	 dd„Z G d„ d¦  «        ZdS )é    N)ÚdatetimeÚtimezone)ÚTYPE_CHECKING)Úformat_timestamp)ÚAnyÚDictÚOptionalÚUnion)ÚSessionStatusÚtsr   Úreturnc                 ó0   — |                       dd¬¦  «        S )Nr   )ÚsecondÚmicrosecond)Úreplace)r   s    úCC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/session.pyÚ_minute_truncr      s   € Ø�:Š:˜Q¨Aˆ:Ñ.Ô.Ð.ó    ÚvalúUnion[str, uuid.UUID]ú	uuid.UUIDc                 ób   — t          | t          j        ¦  «        r| S t          j        | ¦  «        S ©N)Ú
isinstanceÚuuidÚUUID)r   s    r   Ú
_make_uuidr      s+   € õ �#•t”yÑ!Ô!ð Øˆ
ÝŒ9�S‰>Œ>Ðr   c                   ó  — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 d#ddddddd	dd
ddddddddddddddddeddfd„Zed$d„¦   «         Z	 	 	 	 	 	 	 	 	 	 	 	 d%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d&d„Z	 d'	 	 	 d(d„Z	 d)	 	 	 d*d!„Z	d+d"„Z
dS ),ÚSessionNÚapplicationÚsidúOptional[Union[str, uuid.UUID]]ÚdidúOptional[str]Ú	timestampúOptional[datetime]ÚstartedÚdurationúOptional[float]ÚstatusúOptional[SessionStatus]ÚreleaseÚenvironmentÚ
user_agentÚ
ip_addressÚerrorsúOptional[int]ÚuserúOptional[Any]Úsession_moder   c                 óB  — |€t          j        ¦   «         }|€t          j        t          j        ¦  «        }|€d}|| _        d | _        || _        d | _	        d | _
        d | _        d | _        d | _        || _        d| _        |                      |||||||	|
||¬¦
  «
         d S )NÚokr   )
r!   r#   r%   r(   r,   r-   r.   r/   r0   r2   )r   Úuuid4r   Únowr   Úutcr*   r#   r'   r,   r-   r(   r.   r/   r4   r0   Úupdate)Úselfr!   r#   r%   r'   r(   r*   r,   r-   r.   r/   r0   r2   r4   s                 r   Ú__init__zSession.__init__   s¿   € ð  ˆ;Ý”*‘,”,ˆCØˆ?Ý”l¥8¤<Ñ0Ô0ˆGØˆ>ØˆFØˆŒØ$(ˆŒØˆŒØ(,ˆŒØ,0ˆÔØ+/ˆŒØ+/ˆŒØ+/ˆŒØ!-ˆÔØˆŒà�ŠØØØØØØ#Ø!Ø!ØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   r   c                 ó*   — t          | j        ¦  «        S r   )r   r'   )r;   s    r   Útruncated_startedzSession.truncated_startedH   s   € å˜Tœ\Ñ*Ô*Ð*r   c                 óô  — |rX|
€|                      d¦  «        }
|€?|                      d¦  «        p)|                      d¦  «        p|                      d¦  «        }|�t          |¦  «        | _        |�t          |¦  «        | _        |€t          j        t          j        ¦  «        }|| _	        |�|| _
        |�|| _        |�|| _        |�|| _        |
�|
| _        |	�|	| _        |�|| _        |�	|| _        d S d S )Nr/   ÚidÚemailÚusername)Úgetr   r!   Ústrr#   r   r8   r   r9   r%   r'   r(   r,   r-   r/   r.   r0   r*   )r;   r!   r#   r%   r'   r(   r*   r,   r-   r.   r/   r0   r2   s                r   r:   zSession.updateL   s  € ð  ð 	RØÐ!Ø!ŸXšX lÑ3Ô3�
Øˆ{Ø—h’h˜t‘n”nÐQ¨¯ª°Ñ(9Ô(9ÐQ¸T¿XºXÀjÑ=QÔ=Q�àˆ?Ý! #‘”ˆDŒHØˆ?Ý˜3‘x”xˆDŒHØÐÝ œ¥X¤\Ñ2Ô2ˆIØ"ˆŒØÐØ"ˆDŒLØÐØ$ˆDŒMØÐØ"ˆDŒLØÐ"Ø*ˆDÔØÐ!Ø(ˆDŒOØÐ!Ø(ˆDŒOØÐØ ˆDŒKàÐØ ˆDŒKˆKˆKð Ðr   r   c                 óX   — |€| j         dk    rd}|�|                      |¬¦  «         d S d S )Nr6   Úexited)r*   )r*   r:   )r;   r*   s     r   ÚclosezSession.close{   sB   € ð ˆ>˜dœk¨TÒ1Ð1ØˆFØÐØ�KŠK˜vˆKÑ&Ô&Ð&Ð&Ð&ð Ðr   TÚwith_user_infoúOptional[bool]c                 ó–   — i }| j         �
| j         |d<   | j        �
| j        |d<   |r"| j        �
| j        |d<   | j        �
| j        |d<   |S )Nr,   r-   r/   r.   )r,   r-   r/   r.   )r;   rH   Úattrss      r   Úget_json_attrszSession.get_json_attrs„   sh   € ð ˆØŒ<Ð#Ø#œ|ˆE�)ÑØÔÐ'Ø#'Ô#3ˆE�-Ñ Øð 	6ØŒÐ*Ø&*¤o��lÑ#ØŒÐ*Ø&*¤o��lÑ#Øˆr   c                 ó(  — t          | j        ¦  «        dt          | j        ¦  «        t          | j        ¦  «        | j        dœ}| j        r
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   |  	                    ¦   «         }|r||d<   |S )NT)r!   Úinitr'   r%   r*   r0   r#   r(   rK   )
rD   r!   r   r'   r%   r*   r0   r#   r(   rL   )r;   ÚrvrK   s      r   Úto_jsonzSession.to_json”   sŸ   € å�t”x‘=”=ØÝ'¨¬Ñ5Ô5Ý)¨$¬.Ñ9Ô9Ø”kð 
ð  
ˆð Œ;ð 	'Øœ;ˆBˆx‰LØŒ8ÐØœˆBˆu‰IØŒ=Ð$Ø!œ]ˆBˆz‰NØ×#Ò#Ñ%Ô%ˆØð 	 ØˆBˆw‰KØˆ	r   )NNNNNNNNNNNNr    )r   r   )NNNNNNNNNNNN)r!   r"   r#   r$   r%   r&   r'   r&   r(   r)   r*   r+   r,   r$   r-   r$   r.   r$   r/   r$   r0   r1   r2   r3   r   Nr   )r*   r+   r   r   )T)rH   rI   r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__rD   r<   Úpropertyr>   r:   rG   rL   rP   © r   r   r   r      s&  € € € € € ð 26Ø#Ø*.Ø(,Ø&*Ø,0Ø#'Ø'+Ø&*Ø&*Ø"&Ø $Ø)ð,
ð ,
à.ð,
ð ð,
ð (ð	,
ð
 &ð,
ð $ð,
ð *ð,
ð !ð,
ð %ð,
ð $ð,
ð $ð,
ð  ð,
ð ð,
ð ð,
ð 
ð,
ð ,
ð ,
ð ,
ð\ ð+ð +ð +ñ „Xð+ð
 26Ø#Ø*.Ø(,Ø&*Ø,0Ø#'Ø'+Ø&*Ø&*Ø"&Ø $ð-!à.ð-!ð ð-!ð (ð	-!ð
 &ð-!ð $ð-!ð *ð-!ð !ð-!ð %ð-!ð $ð-!ð $ð-!ð  ð-!ð ð-!ð 
ð-!ð -!ð -!ð -!ðb -1ð'à)ð'ð 
ð'ð 'ð 'ð 'ð ,0ðà(ðð 
ðð ð ð ð ð ð ð ð ð r   r   )r   r   r   r   )r   r   r   r   )r   r   r   Útypingr   Úsentry_sdk.utilsr   r   r   r	   r
   Úsentry_sdk._typesr   r   r   r   rU   r   r   ú<module>rY      sü   ðØ €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø  Ð  Ð  Ð  Ð  Ð  à -Ð -Ð -Ð -Ð -Ð -àð 0Ø1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1à/Ð/Ð/Ð/Ð/Ð/ð/ð /ð /ð /ðØ	 ðàðð ð ð ðLð Lð Lð Lð Lñ Lô Lð Lð Lð Lr   