U 췀g@sddlZddlmZmZddlmZddlmZerpddlmZddlmZddlm Z ddlm Z dd l m Z d d Z d d ZGdddZdS)N)datetimetimezone)format_timestamp) TYPE_CHECKING)Optional)Union)Any)Dict) SessionStatuscCs|jdddS)Nr)second microsecond)replace)tsr@/opt/hc_python/lib/python3.8/site-packages/sentry_sdk/session.py _minute_truncsrcCst|tjr|St|SN) isinstanceuuidUUID)valrrr _make_uuids rc @sHeZdZdddZeddZdddZdd d Zdd d ZddZ dS)SessionN applicationc Cs|dkrt}|dkr$ttj}|dkr0d}||_d|_||_d|_ d|_ d|_ d|_ d|_ | |_d|_|j||||||| | | | d dS)Nokr) siddid timestampdurationrelease environment user_agent ip_addresserrorsuser)ruuid4rnowrutcstatusrstartedrr rr!r" session_moder#update)selfrrrr)rr(rr r!r"r#r$r*rrr__init__ s8 zSession.__init__cCs t|jSr)rr))r,rrrtruncated_startedOszSession.truncated_startedc Cs| r<| dkr| d} |dkr<| dp:| dp:| d}|dk rNt||_|dk r`t||_|dkrtttj}||_ |dk r||_ |dk r||_ |dk r||_ |dk r||_ | dk r| |_| dk r| |_| dk r| |_|dk r||_dS)Nr"idemailusername)getrrstrrrr&rr'rr)rrr r"r!r#r() r,rrrr)rr(rr r!r"r#r$rrrr+Ts8    zSession.updatecCs.|dkr|jdkrd}|dk r*|j|ddS)NrZexited)r()r(r+)r,r(rrrclosesz Session.closeTcCs\i}|jdk r|j|d<|jdk r,|j|d<|rX|jdk rD|j|d<|jdk rX|j|d<|S)Nrr r"r!)rr r"r!)r,Zwith_user_infoattrsrrrget_json_attrss        zSession.get_json_attrscCstt|jdt|jt|j|jd}|jr4|j|d<|jdk rH|j|d<|jdk r\|j|d<| }|rp||d<|S)NT)rinitr)rr(r#rrr5) r3rrr)rr(r#rrr6)r,rvr5rrrto_jsons      zSession.to_json) NNNNNNNNNNNNr) NNNNNNNNNNNN)N)T) __name__ __module__ __qualname__r-propertyr.r+r4r6r9rrrrrsD /  1 r)rrrZsentry_sdk.utilsrtypingrrrrr Zsentry_sdk._typesr rrrrrrrs