
    Yf                         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 d dlm	Z	 d dlm
Z
 d dlmZ d d	lmZ d
 Zd Z G d d      Zy)    N)datetimetimezone)TYPE_CHECKING)format_timestamp)Optional)Union)Any)Dict)SessionStatusc                 (    | j                  dd      S )Nr   )secondmicrosecond)replace)tss    R/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/sentry_sdk/session.py_minute_truncr      s    ::QA:..    c                 d    t        | t        j                        r| S t        j                  |       S N)
isinstanceuuidUUID)vals    r   
_make_uuidr      s%     #tyy!
99S>r   c                   x    e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 ddZed        Z	 	 	 	 	 	 	 	 	 	 	 	 d	dZ	 d
dZ	 ddZd Z	y)SessionNc                 D   |t        j                         }|#t        j                  t        j
                        }|d}|| _        d | _        || _        d | _	        d | _
        d | _        d | _        d | _        || _        d| _        | j!                  |||||||	|
||
       y )Nokr   )
siddid	timestampdurationreleaseenvironment
user_agent
ip_addresserrorsuser)r   uuid4r   nowr   utcstatusr    startedr#   r$   r"   r%   r&   session_moder'   update)selfr   r    r!   r-   r"   r,   r#   r$   r%   r&   r'   r(   r.   s                 r   __init__zSession.__init__   s    " ;**,C?ll8<<0G>F(#!! 	 	
r   c                 ,    t        | j                        S r   )r   r-   )r0   s    r   truncated_startedzSession.truncated_startedN   s     T\\**r   c                    |rL|
|j                  d      }
|7|j                  d      xs$ |j                  d      xs |j                  d      }|t        |      | _        |t        |      | _        |#t        j                  t        j                        }|| _	        ||| _
        ||| _        ||| _        ||| _        |
|
| _        |	|	| _        ||| _        ||| _        y y )Nr&   idemailusername)getr   r   strr    r   r*   r   r+   r!   r-   r"   r#   r$   r&   r%   r'   r,   )r0   r   r    r!   r-   r"   r,   r#   r$   r%   r&   r'   r(   s                r   r/   zSession.updateS   s    " !!XXl3
{hhtnQ(9QTXXj=Q?!#DH?3xDH X\\2I""DL$DM"DL"*D!(DO!(DO DK DK r   c                 T    || j                   dk(  rd}|| j                  |       y y )Nr   exited)r,   )r,   r/   )r0   r,   s     r   closezSession.close   s2     >dkkT1FKKvK& r   c                     i }| j                   | j                   |d<   | j                  | j                  |d<   |r6| j                  | j                  |d<   | j                  | j                  |d<   |S )Nr#   r$   r&   r%   )r#   r$   r&   r%   )r0   with_user_infoattrss      r   get_json_attrszSession.get_json_attrs   su     <<##||E)'#'#3#3E- *&*ool#*&*ool#r   c                 l   t        | j                        dt        | j                        t        | j                        | j
                  d}| j                  r| j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                         }|r||d<   |S )NT)r   initr-   r!   r,   r'   r    r"   r?   )
r9   r   r   r-   r!   r,   r'   r    r"   r@   )r0   rvr?   s      r   to_jsonzSession.to_json   s     txx='5)$..9kk
 ;;;;BxL88BuI==$!]]BzN##%BwK	r   )NNNNNNNNNNNNapplication)NNNNNNNNNNNNr   )T)
__name__
__module____qualname__r1   propertyr3   r/   r<   r@   rD    r   r   r   r      s     "-
^ + + .!b ' " r   r   )r   r   r   sentry_sdk._typesr   sentry_sdk.utilsr   typingr   r   r	   r
   r   r   r   r   rJ   r   r   <module>rN      s9     ' + -//
P Pr   