
    gh                         S SK r S SKJrJr  S SKJr  S SKJr  \(       a  S SKJr  S SKJr  S SKJ	r	  S SKJ
r
  S S	KJr  S
 rS r " S S5      rg)    N)datetimetimezone)format_timestamp)TYPE_CHECKING)Optional)Union)Any)Dict)SessionStatusc                 "    U R                  SSS9$ )Nr   )secondmicrosecond)replace)tss    U/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/session.py_minute_truncr      s    ::QA:..    c                 p    [        U [        R                  5      (       a  U $ [        R                  " U 5      $ N)
isinstanceuuidUUID)vals    r   
_make_uuidr      s(     #tyy!!
99S>r   c                       \ rS rSr             S
S jr\S 5       r            SS jr SS jr SS jr	S r
S	rg)Session   Nc                 B   Uc  [         R                  " 5       nUc$  [        R                  " [        R
                  5      nUc  SnX`l        S U l        X@l        S U l	        S U l
        S U l        S U l        S U l        Xl        SU l        U R!                  UUUUUUU	U
UUS9
  g )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__Session.__init__    s    " ;**,C?ll8<<0G>F(#!! 	 	
r   c                 ,    [        U R                  5      $ r   )r   r.   )r1   s    r   truncated_startedSession.truncated_startedO   s     T\\**r   c                    U(       aX  U
c  UR                  S5      n
UcA  UR                  S5      =(       d)    UR                  S5      =(       d    UR                  S5      nUb  [        U5      U l        Ub  [        U5      U l        Uc$  [
        R                  " [        R                  5      nX0l	        Ub  X@l
        Ub  XPl        Ub  Xpl        Ub  Xl        U
b  Xl        U	b  Xl        Ub  Xl        Ub  X`l        g g )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   Session.updateT   s    " !!XXl3
{hhtnQ(9QTXXj=Q?!#DH?3xDH X\\2I""L$M"L"*!(O!(O K K r   c                 T    Uc  U R                   S:X  a  SnUb  U R                  US9  g g )Nr   exited)r-   )r-   r0   )r1   r-   s     r   closeSession.close   s2     >dkkT1FKKvK& r   c                     0 nU R                   b  U R                   US'   U R                  b  U R                  US'   U(       a8  U R                  b  U R                  US'   U R                  b  U R                  US'   U$ )Nr$   r%   r'   r&   )r$   r%   r'   r&   )r1   with_user_infoattrss      r   get_json_attrsSession.get_json_attrs   su     <<##||E)'#'#3#3E- *&*ool#*&*ool#r   c                    [        U R                  5      S[        U R                  5      [        U R                  5      U R
                  S.nU R                  (       a  U R                  US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R                  5       nU(       a  X!S'   U$ )NT)r    initr.   r"   r-   r(   r!   r#   rD   )
r<   r    r   r.   r"   r-   r(   r!   r#   rE   )r1   rvrD   s      r   to_jsonSession.to_json   s     txx='5)$..9kk
 ;;;;BxL88BuI==$!]]BzN##%wK	r   )r!   r#   r%   r(   r'   r$   r/   r    r.   r-   r"   r&   )NNNNNNNNNNNNapplication)NNNNNNNNNNNNr   )T)__name__
__module____qualname____firstlineno__r2   propertyr5   r0   r@   rE   rJ   __static_attributes__ r   r   r   r      s     "-
^ + + .!b ' " r   r   )r   r   r   sentry_sdk.utilsr   typingr   r   r   r	   r
   sentry_sdk._typesr   r   r   r   rS   r   r   <module>rW      s9     ' -  //
P Pr   