Ë
    õ�Djä2  ã                   ó
  — d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZm	Z	m
Z
 d dlmZ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&m'Z'm(Z( 	 d dl)Z)d dl*m+Z, d dl*m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 d dl4m5Z5 e5rFd dl6m7Z7 d dl8m9Z9 d dl*m:Z:m;Z; d dl<m=Z= d dl>m?Z? d dl4m@Z@ d dl4mAZA d dl4mBZB d dl4mCZC d dlmDZD d dlEmFZFmGZG dZH G d„ de«      ZId„ ZJd „ ZKd!„ ZLd"ZMd#„ ZNy# e3$ r	  ed«      ‚w xY w)$é    N)Úwraps)Úcontinue_trace)ÚOPÚ
SPANSTATUSÚSPANDATA)Ú$_DEFAULT_FAILED_REQUEST_STATUS_CODESÚIntegrationÚDidNotEnable)Úignore_logger)Útrack_session)Ú_filter_headersÚrequest_body_within_bounds)ÚBAGGAGE_HEADER_NAMEÚSOURCE_FOR_STYLEÚTRANSACTION_SOURCE_ROUTE)Úshould_propagate_trace)Úcapture_internal_exceptionsÚensure_integration_enabledÚevent_from_exceptionÚloggerÚ	parse_urlÚparse_versionÚreraiseÚ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)ÚUrlMappingMatchInfo)ÚTraceRequestStartParamsÚTraceRequestEndParams)ÚSet)ÚSimpleNamespace)ÚAny)ÚOptional)ÚTuple)ÚUnion)ÚExcInfo)ÚEventÚEventProcessor)Úhandler_nameÚmethod_and_path_patternc                   ó:   — e Zd ZdZde› �Z	 dedœd„Zed„ «       Zy)ÚAioHttpIntegrationÚaiohttpz
auto.http.)Úfailed_request_status_codesc                ó\   — |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Ú_failed_request_status_codes)Úselfr=   r8   s      úcC:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\sentry_sdk/integrations/aiohttp.pyÚ__init__zAioHttpIntegration.__init__J   s8   € ð Ô$<Ñ<Ýâ$Ö&>ð@óð ð "3ˆÔØ,GˆÕ)ó    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                  Št        ‰«      ˆfd„«       }|t        _
        t        j                  Št        t        ‰«      ˆ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        j                  «       5 }t        |d¬«      5  |j                  «        |j                  «        |j                  t        |«      «       t        |j                  «      }t        |t        j                   dt"        t        j$                  ¬«      }t        j&                  |d|i¬«      5  	  ‰| |«      ƒ d {  –—† }		 	jB                  }|j+                  |«       	cd d d «       cd d d «       cd d d «       S 7 �Œ#7 ŒB# t(        $ rC}
|j+                  |
j,                  «       |
j,                  |j.                  v r
t1        «        ‚ d }
~
wt2        j4                  t6        f$ r! |j9                  t:        j<                  «       ‚ t>        $ r tA        t1        «       Ž  Y ŒÝw xY w# tD        $ r 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ÚoriginÚaiohttp_request)Úcustom_sampling_context)#Ú
sentry_sdkÚ
get_clientÚget_integrationr6   ÚweakrefÚrefÚisolation_scoper   Úgenerate_propagation_contextÚclear_breadcrumbsÚadd_event_processorÚ_make_request_processorÚdictÚheadersr   r   ÚHTTP_SERVERr   rL   Ústart_transactionr#   Úset_http_statusÚstatus_coder>   Ú_capture_exceptionÚasyncioÚCancelledErrorÚConnectionResetErrorÚ
set_statusr   Ú	CANCELLEDÚ	Exceptionr   ÚstatusÚAttributeError)r?   rG   ÚargsÚkwargsÚintegrationÚweak_requestÚscoperZ   ÚtransactionÚresponseÚeÚresponse_statusÚ
old_handles               €r@   Úsentry_app_handlez8AioHttpIntegration.setup_once.<locals>.sentry_app_handleq   s  øè ø€ ä$×/Ñ/Ó1×AÑAÔBTÓUˆKØÐ"Ù'¨¨gÐG¸ÒGÀÑG×GÐGä"Ÿ;™; wÓ/ˆLä×+Ñ+Ó-ð 5(°Ü" 5°yÔAñ 4(ð ×6Ñ6Ô8Ø×+Ñ+Ô-Ø×-Ñ-Ô.EÀlÓ.SÔTä" 7§?¡?Ó3�GÜ"0ØÜŸ>™>ð 7Ü7Ü1×8Ñ8ô#�Kô $×5Ñ5Ø#Ø1BÀGÐ0Lôñ #(ð;Ù-7¸¸gÓ-F×'F˜Hð&	Ið
 /7¯o©o˜Oð (×7Ñ7¸ÔHà'÷G#(ð #(÷#4(ð 4(÷5(ñ 5(ð	 Hùð6 (GùÜ,ò 	"Ø'×7Ñ7¸¿¹ÔFð !"§¡Ø#.×#KÑ#Kñ!Lô !3Ô 4à!ûÜ '× 6Ñ 6Ô8LÐMò "Ø'×2Ñ2´:×3GÑ3GÔHØ!Ü(ò ;ô $Ô%7Ó%9Ó:ð;ûô  .ò !Ù ð!ú÷=#(ð #(úð #(÷#4(÷ 4(ñ 4(ú÷5(÷ 5(ñ 5(üsÅ   ƒ:I½E ¾-IÁ+I Á9BH+ÄHÄE%Ä E#
Ä!E%Ä&HÄ2HÅ	H+Å	I ÅIÅ#E%Å%	H	Å.>F,	Æ,AH	È HÈH	ÈHÈ	H	ÈHÈH	ÈHÈHÈH+È"	I È+H4	È0I È7	IÉ I	ÉIc              “   ó(  •K  —  ‰| |«      ƒ d {  –—† }t        j                  «       j                  t        «      }|€|S d }	 |j                  dk(  rt        |j                  «      }n_|j                  dk(  rP|j                  «       }|j                  d«      xs |j                  d«      }dj                  |j                  |«      }|�6t        j                  «       j                  |t        |j                     ¬«       |S 7 Œð# t        $ r Y ŒGw xY w­w)Nr3   r4   ÚpathÚ	formatterz{} {})rK   )rO   rP   rQ   r6   r=   r   ÚhandlerÚget_infoÚgetÚformatÚmethodre   Úget_current_scopeÚset_transaction_namer   )r?   rG   Úrvrj   rJ   Ú
route_infoÚpatternÚold_urldispatcher_resolves          €r@   Úsentry_urldispatcher_resolvezCAioHttpIntegration.setup_once.<locals>.sentry_urldispatcher_resolve´   s  øè ø€ ñ 1°°wÓ?×?ˆBä$×/Ñ/Ó1×AÑAÔBTÓUˆ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ð ÐÜ×,Ñ,Ó.×CÑCØÜ+¨K×,IÑ,IÑJð Dô ð
 ˆIð1 @ùô ò Ùðüs4   ƒD�D‘1DÁBD Ã;DÄ	DÄDÄDÄDc                  ó�   •— t        |j                  d«      xs d«      }t        «       }|j                  |«       ||d<    ‰| i |¤ŽS )NÚtrace_configs© )Úlistrx   Úcreate_trace_configÚappend)rh   ri   Úclient_trace_configsÚtrace_configÚold_client_session_inits       €r@   Úinitz+AioHttpIntegration.setup_once.<locals>.initÕ   sN   ø€ ô $(¨¯
©
°?Ó(CÒ(IÀrÓ#JÐ Ü.Ó0ˆLØ ×'Ñ'¨Ô5à&:ˆF�?Ñ#Ù*¨DÐ;°FÑ;Ð;rB   )r   ÚAIOHTTP_VERSIONr
   ry   r   r   r   r"   Ú_handler$   Úresolver   r    rA   r   r6   )Úversionrr   r�   r‹   rŠ   rq   r€   s       @@@r@   Ú
setup_oncezAioHttpIntegration.setup_onceY   så   ú€ ô  ¤Ó0ˆàˆ?ÜÐ?×FÑFÄÓWÓXÐXà�VÒÜÐ?Ó@Ð@å#ô ð.Ü0IñJóð ô
 	Ð&Ô'ä ×(Ñ(ˆ
ô=	(ð~ 0ŒÔä$1×$9Ñ$9Ð!ä	Ð(Ó	)ó	ó 
*ð	ð8 !=ŒÔä"/×"8Ñ"8Ðä	#Ô$6Ð8OÓ	Pó	<ó 
Qð	<ð "&ŒÕrB   N)r3   )	Ú__name__Ú
__module__Ú__qualname__Ú
identifierrL   r   rA   Ústaticmethodr�   r„   rB   r@   r6   r6   F   s@   „ Ø€JØ˜*˜Ð&€Fð )ðHð %Iô	Hð ñE&ó ñE&rB   r6   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 «       t        j                  t        j                  |›d|r|j                  nt        ›�t        j                  ¬«      }|j                  t         j"                  |«       |�p|j                  d|j                  «       |j                  t         j$                  |j&                  «       |j                  t         j(                  |j*                  «       t        j                  «       }t-        |t        |j                  «      «      r¯t        j.                  «       j1                  |¬«      D ]ˆ  \  }}t3        j4                  dj7                  |||j                  ¬«      «       |t8        k(  r:|j:                  j=                  t8        «      r|j:                  |xx   d	|z   z  cc<   Œz||j:                  |<   ŒŠ ||_        y # 1 sw Y   �ŒÑxY w­w)
NF)Úsanitizeú )rI   rJ   rL   Úurl)ÚspanzE[Tracing] Adding `{key}` header {value} to outgoing request to {url}.)ÚkeyÚvaluerš   ú,) rO   rP   rQ   r6   rz   Úupperr   r   Ústrrš   Ú
start_spanr   ÚHTTP_CLIENTr   rL   Úset_datar   ÚHTTP_METHODÚ
HTTP_QUERYÚqueryÚHTTP_FRAGMENTÚfragmentr   r{   Úiter_trace_propagation_headersr   Údebugry   r   rZ   rx   r›   )	ÚsessionÚtrace_config_ctxÚparamsrz   Ú
parsed_urlr›   Úclientrœ   r�   s	            r@   Úon_request_startz-create_trace_config.<locals>.on_request_startå   sß  è ø€ ä× Ñ Ó"×2Ñ2Ô3EÓFÐNØà—‘×$Ñ$Ó&ˆàˆ
Ü(Ó*ñ 	DÜ"¤3 v§z¡z£?¸UÔCˆJ÷	Dô ×$Ñ$Ü�~‰~â©�z—~’~Ô9RÐRðTä%×,Ñ,ô	
ˆð 	�‰”h×*Ñ*¨FÔ3ØÐ!Ø�M‰M˜% §¡Ô0Ø�M‰Mœ(×-Ñ-¨z×/?Ñ/?Ô@Ø�M‰Mœ(×0Ñ0°*×2EÑ2EÔFä×&Ñ&Ó(ˆä! &¬#¨f¯j©j«/Ô:ô ×-Ñ-Ó/×NÑNØð Oó ò0ñ ØØô —‘Ø[×bÑbØ u°&·*±*ð có ôð
 Ô-Ò-°&·.±.×2DÑ2DÜ'ô3ð —N‘N 3Ó'¨3°©;Ñ6Ô'à*/�F—N‘N 3Ò'ð#0ð& !%ÐÕ÷K	Dñ 	Düs   ‚AIÁ!IÁ2GIÉIÉIc              “   ó  K  — |j                   €y |j                   }|j                  t        |j                  j                  «      «       |j                  d|j                  j                  «       |j                  «        y ­w)NÚreason)r›   r]   Úintrn   rf   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   € ò-%ò^ô “=€Là×!Ñ!×(Ñ(Ð)9Ô:Ø×Ñ×&Ñ& ~Ô6àÐrB   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        t        |j                  «      «      |d<   t        |«      |d	<   d d d «       | S # 1 sw Y   | S xY w)
NrG   z://rš   Úquery_stringrz   ÚREMOTE_ADDRÚenvrZ   Údata)r   Ú
setdefaultÚschemeÚhostrt   r¸   rz   Úremoter   rY   rZ   Úget_aiohttp_request_data)ÚeventÚhintrG   Úrequest_infork   s       €r@   Úaiohttp_processorz2_make_request_processor.<locals>.aiohttp_processor(  sÎ   ø€ ñ
 “.ˆØˆ?ØˆLä(Ó*ñ 	EØ ×+Ñ+¨I°rÓ:ˆLð —“Ø—’Ø—’ð#ˆL˜Ñð ,3×+?Ñ+?ˆL˜Ñ(Ø%,§^¡^ˆL˜Ñ"Ø#0°'·.±.Ð"AˆL˜ÑÜ&5´d¸7¿?¹?Ó6KÓ&LˆL˜Ñ#ô
 $<¸GÓ#DˆL˜Ñ ÷#	Eð& ˆ÷'	Eð& ˆús   —BB<Â<Cr„   )rk   rÄ   s   ` r@   rX   rX   &  s   ø€ ôð< ÐrB   c                  ó¼   — t        j                  «       } t        | t        j                  «       j
                  dddœ¬«      \  }}t        j                  ||¬«       | S )Nr7   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)rÂ   )ÚsysÚexc_infor   rO   rP   ÚoptionsÚcapture_event)rË   rÁ   rÂ   s      r@   r_   r_   I  sO   € ä�|‰|‹~€HÜ&ØÜ!×,Ñ,Ó.×6Ñ6Ø$°Ñ7ô�K€Eˆ4ô
 ×Ñ˜U¨Õ.Ø€OrB   z8[Can't show request body due to implementation details.]c                 óþ   — | j                   }|�]t        t        j                  «       t	        |«      «      st        j                  «       S | j                  xs d}|j                  |d«      S | j                  rt        S y )Nzutf-8Úreplace)Ú_read_bytesr   rO   rP   Úlenr   Úremoved_because_over_size_limitÚcharsetÚdecodeÚcan_read_bodyÚBODY_NOT_READ_MESSAGE)rG   Ú
bytes_bodyÚencodings      r@   rÀ   rÀ   X  sn   € à×$Ñ$€JàÐä)¬*×*?Ñ*?Ó*AÄ3ÀzÃ?ÔSÜ!×AÑAÓCÐCà—?‘?Ò- gˆØ× Ñ  ¨9Ó5Ð5à×Òä$Ð$ð rB   )OrÊ   rR   Ú	functoolsr   rO   Úsentry_sdk.apir   Úsentry_sdk.constsr   r   r   Úsentry_sdk.integrationsr   r	   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   r   r   r`   r7   r   rŒ   r    r!   Úaiohttp.webr"   r#   r$   ÚImportErrorÚtypingr%   Úaiohttp.web_requestr&   Úaiohttp.web_urldispatcherr'   r(   r)   Úcollections.abcr*   Útypesr+   r,   r-   r.   r/   r0   Úsentry_sdk._typesr1   r2   r;   r6   r†   rX   r_   rÖ   rÀ   r„   rB   r@   ú<module>rë      sç   ðÛ 
Û Ý ã Ý )ß 6Ñ 6÷ñ õ
 :Ý -÷÷ñ õ
 <÷÷ ÷ ó ð0Ûå6ß2ßEÑEõ !áÝ+Ý=ßFå#Ý%ÝÝÝÝå(ß7ð GÐ ôY&˜ô Y&òxAòH òF	ð SÐ óøðU	 ò 0Ù
Ð.Ó
/Ð/ð0ús   Á.C4 Ã4D