Ë
    S>{i!-  ã                   ó  — d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZ d dlmZ d dlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% 	 d dl&Z&d dl'm(Z) d dl'm*Z*m+Z+ d dl,m-Z-m.Z.m/Z/ d dl1m2Z2 e2rJd dl3m4Z4 d dl5m6Z6 d dl'm7Z7m8Z8 d dl9m:Z: 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l;mAZA d dlmBZB d dl1mCZC dZD G d„ d e«      ZEd!„ ZFd"„ ZGd#„ ZHd$ZId%„ ZJy# e0$ r	  ed«      ‚w xY w)&é    N)Úcontinue_trace)Úreraise)ÚOPÚSPANDATA)ÚHub)ÚIntegrationÚDidNotEnable)Úignore_logger)Úauto_session_tracking)Ú_filter_headersÚrequest_body_within_bounds)ÚBAGGAGE_HEADER_NAMEÚSOURCE_FOR_STYLEÚTRANSACTION_SOURCE_ROUTE)Úshould_propagate_trace)
Úcapture_internal_exceptionsÚevent_from_exceptionÚloggerÚ	parse_urlÚparse_versionÚtransaction_from_functionÚHAS_REAL_CONTEXTVARSÚCONTEXTVARS_ERROR_MESSAGEÚSENSITIVE_DATA_SUBSTITUTEÚAnnotatedValue)Ú__version__)ÚClientSessionÚTraceConfig)ÚApplicationÚHTTPExceptionÚUrlDispatcherzAIOHTTP not installed)ÚTYPE_CHECKING)ÚRequest)ÚAbstractMatchInfo)ÚTraceRequestStartParamsÚTraceRequestEndParams)ÚSimpleNamespace)ÚAny)ÚDict)ÚOptional)ÚTuple)ÚCallable)ÚUnion)ÚExcInfo)ÚEventProcessor)Úhandler_nameÚmethod_and_path_patternc                   ó(   — e Zd ZdZdd„Zed„ «       Zy)ÚAioHttpIntegrationÚaiohttpc                 óN   — |t         vrt        d|›dt         ›d�«      ‚|| _        y )Nz%Invalid value for transaction_style: z (must be in ú))ÚTRANSACTION_STYLE_VALUESÚ
ValueErrorÚtransaction_style)Úselfr9   s     ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/integrations/aiohttp.pyÚ__init__zAioHttpIntegration.__init__C   s.   € àÔ$<Ñ<Ýâ$Ö&>ð@óð ð "3ˆÕó    c                  óŽ  ‡‡‡— t        t        «      } | €t        dj                  t        «      «      ‚| dk  rt        d«      ‚t        st        dt
        z   «      ‚t        d«       t        j                  Šˆfd„}|t        _        t        j                  Šˆfd„}|t        _
        t        j                  Šˆfd„}|t        _        y )	NzUnparsable AIOHTTP version: {})é   é   zAIOHTTP 3.4 or newer required.zSThe aiohttp integration for Sentry requires Python 3.7+  or aiocontextvars package.zaiohttp.serverc           	   Ÿ   óî  •K  — t         j                  }|j                  t        «      € ‰
| |g|¢­i |¤Žƒ d {  –—† S t	        j
                  |«      }t        |«      5 }t        |d¬«      5  |j                  «       5 }|j                  «        |j                  t        |«      «       d d d «       t        |j                  t        j                  dt        ¬«      }|j!                  |d|i¬«      5  	  ‰
| |«      ƒ d {  –—† }|j%                  j6                  «       |cd d d «       cd d d «       cd d d «       S 7 �Œ# 1 sw Y   Œ—xY w7 ŒK# t"        $ r!}	|j%                  |	j&                  «       ‚ d }	~	wt(        j*                  t,        f$ r |j/                  d«       ‚ t0        $ r t3        t5        |«      Ž  Y Œ·w xY w# 1 sw Y   nxY w	 d d d «       n# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w­w)NÚrequest)Úsession_modezgeneric AIOHTTP request)ÚopÚnameÚsourceÚaiohttp_request)Úcustom_sampling_contextÚ	cancelled)r   ÚcurrentÚget_integrationr3   ÚweakrefÚrefr   Úconfigure_scopeÚclear_breadcrumbsÚadd_event_processorÚ_make_request_processorr   Úheadersr   ÚHTTP_SERVERr   Ústart_transactionr    Úset_http_statusÚstatus_codeÚasyncioÚCancelledErrorÚConnectionResetErrorÚ
set_statusÚ	Exceptionr   Ú_capture_exceptionÚstatus)r:   rB   ÚargsÚkwargsÚhubÚweak_requestÚscopeÚtransactionÚresponseÚeÚ
old_handles             €r;   Úsentry_app_handlez8AioHttpIntegration.setup_once.<locals>.sentry_app_handled   sÞ  øè ø€ ä—+‘+ˆCØ×"Ñ"Ô#5Ó6Ð>Ù'¨¨gÐG¸ÒGÀÑG×GÐGä"Ÿ;™; wÓ/ˆLä�S“ð "(˜SÜ*¨3¸YÔGñ !(ð ×,Ñ,Ó.ð Y°%Ø×/Ñ/Ô1Ø×1Ñ1Ô2IÈ,Ó2WÔX÷Yô #1ØŸ™ÜŸ>™>ð 7Ü7ô#�Kð ×.Ñ.Ø#Ø1BÀGÐ0Lð /ó ñ (ð>Ù-7¸¸gÓ-F×'F˜Hð $×3Ñ3°H·O±OÔDØ'÷%(ð (÷!(ð !(÷"(ñ "(ð	 Hù÷Yð Yúð" (GùÜ,ò "Ø'×7Ñ7¸¿¹ÔFØ!ûÜ '× 6Ñ 6Ô8LÐMò "Ø'×2Ñ2°;Ô?Ø!Ü(ò >ô $Ô%7¸Ó%<Ó=ð>ú÷(ð (úð (÷!(÷ !(ñ !(ú÷"(÷ "(ñ "(üs¿   ƒ6G5¹D;º$G5ÁG)Á,GÁ=+D>Â(AGÃ0F>Ã2EÃ>E

Ã?EÄF>Ä	GÄ(	G)Ä1G5Ä>EÅGÅ
EÅ	F;	ÅE1	Å1AF;	Æ8F>Æ:F;	Æ;F>Æ>GÇGÇ	G)ÇG	ÇG)Ç 	G5Ç)G2Ç.G5c              “   óf  •K  —  ‰	| |«      ƒ d {  –—† }t         j                  }|j                  t        «      }d }	 |j                  dk(  rt        |j                  «      }n_|j                  dk(  rP|j                  «       }|j                  d«      xs |j                  d«      }dj                  |j                  |«      }|�Mt         j                  j                  «       5 }|j                  |t        |j                     ¬«       d d d «       |S |S 7 �Œ# t        $ r Y Œ_w xY w# 1 sw Y   |S xY w­w)Nr0   r1   ÚpathÚ	formatterz{} {})rF   )r   rJ   rK   r3   r9   r   ÚhandlerÚget_infoÚgetÚformatÚmethodr[   rN   Úset_transaction_namer   )
r:   rB   Úrvr`   ÚintegrationrE   Ú
route_infoÚpatternrb   Úold_urldispatcher_resolves
            €r;   Úsentry_urldispatcher_resolvezCAioHttpIntegration.setup_once.<locals>.sentry_urldispatcher_resolve”   s  øè ø€ á0°°wÓ?×?ˆBä—+‘+ˆCØ×-Ñ-Ô.@ÓAˆKàˆDðØ×0Ñ0°NÒBÜ4°R·Z±ZÓ@‘DØ ×2Ñ2Ð6OÒOØ!#§¡£�JØ(Ÿn™n¨VÓ4ÒS¸
¿¹À{Ó8S�GØ"Ÿ>™>¨'¯.©.¸'ÓB�Dð ÐÜ—[‘[×0Ñ0Ó2ð °eØ×.Ñ.ØÜ/°×0MÑ0MÑNð /ô ÷ð ˆI�2ˆIð1 @úô ò Ùðú÷ð ˆIüsK   ƒD1�D‘+D1½BD Ã D1Ã!%D$ÄD1Ä	D!ÄD1Ä D!Ä!D1Ä$D.Ä)D1c                  óê   •— t         j                  }|j                  t        «      € ‰| i |¤ŽS t	        |j                  d«      xs d«      }t        «       }|j                  |«       ||d<    ‰| i |¤ŽS )NÚtrace_configs© )r   rJ   rK   r3   Úlistrm   Úcreate_trace_configÚappend)r^   r_   r`   Úclient_trace_configsÚtrace_configÚold_client_session_inits        €r;   Úinitz+AioHttpIntegration.setup_once.<locals>.init´   sw   ø€ ä—+‘+ˆCØ×"Ñ"Ô#5Ó6Ð>Ù.°Ð?¸Ñ?Ð?ä#'¨¯
©
°?Ó(CÒ(IÀrÓ#JÐ Ü.Ó0ˆLØ ×'Ñ'¨Ô5à&:ˆF�?Ñ#Ù*¨DÐ;°FÑ;Ð;r=   )r   ÚAIOHTTP_VERSIONr	   rn   r   r   r
   r   Ú_handler!   Úresolver   r<   )Úversionrg   rv   r€   r   rf   ru   s       @@@r;   Ú
setup_oncezAioHttpIntegration.setup_onceL   s»   ú€ ô  ¤Ó0ˆàˆ?ÜÐ?×FÑFÄÓWÓXÐXà�VÒÜÐ?Ó@Ð@å#ô ð.Ü0IñJóð ô
 	Ð&Ô'ä ×(Ñ(ˆ
ô*	(ðX 0ŒÔä$1×$9Ñ$9Ð!ô	ð8 !=ŒÔä"/×"8Ñ"8Ðô	<ð "&ŒÕr=   N)r0   )Ú__name__Ú
__module__Ú__qualname__Ú
identifierr<   Ústaticmethodr…   ry   r=   r;   r3   r3   @   s"   „ Ø€Jó3ð ñt&ó ñt&r=   r3   c                  ó’   — d„ } d„ }t        «       }|j                  j                  | «       |j                  j                  |«       |S )Nc              “   ó$  K  — t         j                  }|j                  t        «      €y |j                  j                  «       }d }t        «       5  t        t        |j                  «      d¬«      }d d d «       |j                  t        j                  |›d|r|j                  nt        ›�¬«      }|j                  t        j                   |«       |j                  d|j                  «       |j                  t        j"                  |j$                  «       |j                  t        j&                  |j(                  «       t+        |t        |j                  «      «      rœ|j-                  |«      D ]ˆ  \  }}t/        j0                  dj3                  |||j                  ¬«      «       |t4        k(  r:|j6                  j9                  t4        «      r|j6                  |xx   d|z   z  cc<   Œz||j6                  |<   ŒŠ ||_        y # 1 sw Y   �Œ•xY w­w)	NF)Úsanitizeú )rD   ÚdescriptionÚurlzE[Tracing] Adding `{key}` header {value} to outgoing request to {url}.)ÚkeyÚvaluer�   ú,)r   rJ   rK   r3   ro   Úupperr   r   Ústrr�   Ú
start_spanr   ÚHTTP_CLIENTr   Úset_datar   ÚHTTP_METHODÚ
HTTP_QUERYÚqueryÚHTTP_FRAGMENTÚfragmentr   Úiter_trace_propagation_headersr   Údebugrn   r   rR   rm   Úspan)	ÚsessionÚtrace_config_ctxÚparamsr`   ro   Ú
parsed_urlr    r‘   r’   s	            r;   Úon_request_startz-create_trace_config.<locals>.on_request_startÆ   s©  è ø€ ä�k‰kˆØ×ÑÔ1Ó2Ð:Øà—‘×$Ñ$Ó&ˆàˆ
Ü(Ó*ñ 	DÜ"¤3 v§z¡z£?¸UÔCˆJ÷	Dð �~‰~Ü�~‰~â©�z—~’~Ô9RÐRðTð ó 
ˆð
 	�‰”h×*Ñ*¨FÔ3Ø�‰�e˜ZŸ^™^Ô,Ø�‰”h×)Ñ)¨:×+;Ñ+;Ô<Ø�‰”h×,Ñ,¨j×.AÑ.AÔBä! #¤s¨6¯:©:£Ô7Ø!×@Ñ@ÀÓFò 0‘
��UÜ—‘Ø[×bÑbØ u°&·*±*ð có ôð
 Ô-Ò-°&·.±.×2DÑ2DÜ'ô3ð —N‘N 3Ó'¨3°©;Ñ6Ô'à*/�F—N‘N 3Ò'ð0ð !%ÐÕ÷9	Dñ 	Düs   ‚AHÁ!HÁ0FHÈHÈHc              “   ó  K  — |j                   €y |j                   }|j                  t        |j                  j                  «      «       |j                  d|j                  j                  «       |j                  «        y ­w)NÚreason)r    rU   Úintrd   r]   r˜   r§   Úfinish)r¡   r¢   r£   r    s       r;   Úon_request_endz+create_trace_config.<locals>.on_request_endí   s^   è ø€ à× Ñ Ð(Øà×$Ñ$ˆØ×ÑœS §¡×!7Ñ!7Ó8Ô9Ø�‰�h §¡× 6Ñ 6Ô7Ø�‰�ùs   ‚A?B)r   r¥   r|   rª   )r¥   rª   r~   s      r;   r{   r{   Ä   sE   € ò%%òNô “=€Là×!Ñ!×(Ñ(Ð)9Ô:Ø×Ñ×&Ñ& ~Ô6àÐr=   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó´  •—  ‰«       }|€| S t        «       5  | j                  di «      }|j                  ›d|j                  ›|j                  ›�|d<   |j
                  |d<   |j                  |d<   d|j                  i|d<   t        j                  }t        t        |j                  «      «      |d<   t        ||«      |d	<   d d d «       | S # 1 sw Y   | S xY w)
NrB   z://r�   Úquery_stringro   ÚREMOTE_ADDRÚenvrR   Údata)r   Ú
setdefaultÚschemeÚhostri   r­   ro   Úremoter   rJ   r   ÚdictrR   Úget_aiohttp_request_data)ÚeventÚhintrB   Úrequest_infor`   ra   s        €r;   Úaiohttp_processorz2_make_request_processor.<locals>.aiohttp_processor  sÙ   ø€ ñ
 “.ˆØˆ?ØˆLä(Ó*ñ 	JØ ×+Ñ+¨I°rÓ:ˆLð —“Ø—’Ø—’ð#ˆL˜Ñð ,3×+?Ñ+?ˆL˜Ñ(Ø%,§^¡^ˆL˜Ñ"Ø#0°'·.±.Ð"AˆL˜Ñä—+‘+ˆCÜ&5´d¸7¿?¹?Ó6KÓ&LˆL˜Ñ#ô
 $<¸CÀÓ#IˆL˜Ñ ÷'	Jð* ˆ÷+	Jð* ˆús   —B,CÃCry   )ra   rº   s   ` r;   rQ   rQ   ÿ   s   ø€ ôð@ Ðr=   c                 ó¤   — t        j                  «       }t        || j                  j                  dddœ¬«      \  }}| j                  ||¬«       |S )Nr4   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)r¸   )ÚsysÚexc_infor   ÚclientÚoptionsÚcapture_event)r`   rÁ   r·   r¸   s       r;   r\   r\   $  sM   € ä�|‰|‹~€HÜ&ØØ—z‘z×)Ñ)Ø$°Ñ7ô�K€Eˆ4ð
 ×Ñ�e $ÐÔ'Ø€Or=   z8[Can't show request body due to implementation details.]c                 óî   — |j                   }|�Ut        | j                  t        |«      «      st	        j
                  «       S |j                  xs d}|j                  |d«      S |j                  rt        S y )Nzutf-8Úreplace)
Ú_read_bytesr   rÂ   Úlenr   Úremoved_because_over_size_limitÚcharsetÚdecodeÚcan_read_bodyÚBODY_NOT_READ_MESSAGE)r`   rB   Ú
bytes_bodyÚencodings       r;   r¶   r¶   3  si   € à×$Ñ$€JàÐä)¨#¯*©*´c¸*³oÔFÜ!×AÑAÓCÐCà—?‘?Ò- gˆØ× Ñ  ¨9Ó5Ð5à×Òä$Ð$ð r=   )KrÀ   rL   Úsentry_sdk.apir   Úsentry_sdk._compatr   Úsentry_sdk.constsr   r   Úsentry_sdk.hubr   Úsentry_sdk.integrationsr   r	   Úsentry_sdk.integrations.loggingr
   Úsentry_sdk.sessionsr   Ú$sentry_sdk.integrations._wsgi_commonr   r   Úsentry_sdk.tracingr   r   r   Úsentry_sdk.tracing_utilsr   Úsentry_sdk.utilsr   r   r   r   r   r   r   r   r   r   rW   r4   r   r�   r   r   Úaiohttp.webr   r    r!   ÚImportErrorÚsentry_sdk._typesr"   Úaiohttp.web_requestr#   Úaiohttp.abcr$   r%   r&   Útypesr'   Útypingr(   r)   r*   r+   r,   r-   r.   r/   r7   r3   r{   rQ   r\   rÍ   r¶   ry   r=   r;   ú<module>râ      sØ   ðÛ 
Û å )Ý &ß *Ý ß =Ý 9Ý 5÷÷ñ õ
 <÷÷ ÷ ð0Ûå6ß2ßEÑEõ ,áÝ+Ý-ßFÝ%ÝÝÝÝÝÝå(Ý0ð GÐ ôA&˜ô A&òH8òv"òJ	ð SÐ óøðW ò 0Ù
Ð.Ó
/Ð/ð0ús   Á(C2 Ã2D 