
    tni                         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dZ	 	 	 	 ddZ G d d          ZdS )    N)datetimetimezone)format_timestamp)TYPE_CHECKING)Optional)Union)Any)Dict)SessionStatustsr   returnc                 0    |                      dd          S )Nr   )secondmicrosecond)replace)r   s    O/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/session.py_minute_truncr      s    ::QA:...    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+     #ty!! 
9S>>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?l8<00G>F$((,,0+/+/+/!-#!! 	 	
 	
 	
 	
 	
r   r   c                 *    t          | j                  S r   )r   r'   )r;   s    r   truncated_startedzSession.truncated_startedL   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.updateP   s      	R!!XXl33
{hhtnnQ(9(9QTXXj=Q=Q?!#DH?3xxDH X\22I""DL$DM"DL"*D!(DO!(DO DK DKKK 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     >dkT11FKKvK&&&&& 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)'#'#3E-  	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    tx=='55)$.99k 
  
 ; 	';BxL8BuI=$!]BzN##%% 	 BwK	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   sentry_sdk.utilsr   typingr   r   r   r	   r
   sentry_sdk._typesr   r   r   r   rU   r   r   <module>rY      s     ' ' ' ' ' ' ' ' - - - - - -             0/////// / / /	    L L L L L L L L L Lr   