a
    xd                     @   s   d dl Z d dlmZ d dlmZ d dlmZ erld 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 deZdS )    N)datetime)MYPY)format_timestamp)Optional)Union)Any)Dict)SessionStatusc                 C   s   | j dddS )Nr   )secondmicrosecond)replace)ts r   J/var/www/html/Ranjet/env/lib/python3.9/site-packages/sentry_sdk/session.py_minute_trunc   s    r   c                 C   s   t | tjr| S t| S N)
isinstanceuuidUUID)valr   r   r   
_make_uuid   s    r   c                   @   sH   e Zd ZdddZedd ZdddZdd	d
ZdddZdd Z	dS )SessionNapplicationc                 C   s   |d u rt  }|d u r t }|d u r,d}|| _d | _|| _d | _d | _d | _	d | _
d | _|| _d| _| j|||||||	|
||d
 d S )Nokr   )
siddid	timestampdurationreleaseenvironment
user_agent
ip_addresserrorsuser)r   uuid4r   utcnowstatusr   startedr   r   r   r    r!   session_moder"   update)selfr   r   r   r'   r   r&   r   r   r    r!   r"   r#   r(   r   r   r   __init__   s8    zSession.__init__c                 C   s
   t | jS r   )r   r'   )r*   r   r   r   truncated_startedN   s    zSession.truncated_startedc                 C   s   |r<|
d u r| d}
|d u r<| dp:| dp:| d}|d urNt|| _|d ur`t|| _|d u rpt }|| _|d ur|| _|d ur|| _	|d ur|| _
|d ur|| _|
d ur|
| _|	d ur|	| _|d ur|| _|d ur|| _d S )Nr!   idemailusername)getr   r   strr   r   r%   r   r'   r   r   r   r!   r    r"   r&   )r*   r   r   r   r'   r   r&   r   r   r    r!   r"   r#   r   r   r   r)   S   s8    


zSession.updatec                 C   s.   |d u r| j dkrd}|d ur*| j|d d S )Nr   Zexited)r&   )r&   r)   )r*   r&   r   r   r   close   s    zSession.closeTc                 C   s\   i }| j d ur| j |d< | jd ur,| j|d< |rX| jd urD| j|d< | jd urX| j|d< |S )Nr   r   r!   r    )r   r   r!   r    )r*   Zwith_user_infoattrsr   r   r   get_json_attrs   s    







zSession.get_json_attrsc                 C   st   t | jdt| jt| j| jd}| jr4| j|d< | jd urH| j|d< | jd ur\| j|d< | 	 }|rp||d< |S )NT)r   initr'   r   r&   r"   r   r   r3   )
r1   r   r   r'   r   r&   r"   r   r   r4   )r*   rvr3   r   r   r   to_json   s     




zSession.to_json)NNNNNNNNNNNNr   )NNNNNNNNNNNN)N)T)
__name__
__module____qualname__r+   propertyr,   r)   r2   r4   r7   r   r   r   r   r      sD                
/
            
1 

 
r   )r   r   Zsentry_sdk._typesr   Zsentry_sdk.utilsr   typingr   r   r   r   r	   r   r   objectr   r   r   r   r   <module>   s   	