
    fi                         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dS )    N)datetimetimezone)format_timestamp)TYPE_CHECKING)Optional)Union)Any)Dict)SessionStatusc                 0    |                      dd          S )Nr   )secondmicrosecond)replace)tss    b/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/session.py_minute_truncr      s    ::QA:...    c                 b    t          | t          j                  r| S t          j        |           S N)
isinstanceuuidUUID)vals    r   
_make_uuidr      s+     #ty!! 
9S>>r   c                       e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 d
dZed             Z	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 ddZ	 ddZd	 Z	dS )SessionNapplicationc                 B   |t          j                    }|t          j        t          j                  }|d}|| _        d | _        || _        d | _	        d | _
        d | _        d | _        d | _        || _        d| _        |                     |||||||	|
||
  
         d S )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?l8<00G>F(#!! 	 	
 	
 	
 	
 	
r   c                 *    t          | j                  S r   )r   r.   )r1   s    r   truncated_startedzSession.truncated_startedO   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   r+   r   r,   r"   r.   r#   r$   r%   r'   r&   r(   r-   )r1   r    r!   r"   r.   r#   r-   r$   r%   r&   r'   r(   r)   s                r   r0   zSession.updateT   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   c                 X    || j         dk    rd}||                     |           d S d S )Nr   exited)r-   )r-   r0   )r1   r-   s     r   closezSession.close   sB    
 >dkT11FKKvK&&&&& r   Tc                     i }| j         
| j         |d<   | j        
| j        |d<   |r"| j        
| j        |d<   | j        
| j        |d<   |S )Nr$   r%   r'   r&   )r$   r%   r'   r&   )r1   with_user_info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-   r(   r!   r#   r@   )
r:   r    r   r.   r"   r-   r(   r!   r#   rA   )r1   rvr@   s      r   to_jsonzSession.to_json   s     tx=='55)$.99k
 
 ; 	';BxL8BuI=$!]BzN##%% 	 BwK	r   )NNNNNNNNNNNNr   )NNNNNNNNNNNNr   )T)
__name__
__module____qualname__r2   propertyr4   r0   r=   rA   rE    r   r   r   r      s         "-
 -
 -
 -
^ + + X+ .! .! .! .!d ' ' ' '    "    r   r   )r   r   r   sentry_sdk.utilsr   typingr   r   r   r	   r
   sentry_sdk._typesr   r   r   r   rJ   r   r   <module>rN      s    ' ' ' ' ' ' ' ' - - - - - -             0/////// / /
  R R R R R R R R R Rr   