Ë
    õ�Djç  ã            
       óè  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
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 d	lmZmZmZ d d
lmZ  ej4                  d«      ZdZdZ G d„ d«      Z	 d dlmZ d dl m!Z!m"Z"m#Z# d dl$m%Z% dZ&dZ'dZ(dZ)dZ* e+d„  e e,e*j[                  «       e*j]                  «       «      Ž D «       «      Z/ G d„ de«      Z0d„ Z2y# e1$ r dZ%Y d„ Z2yw xY w)é    N)ÚchainÚproduct)ÚTYPE_CHECKING)ÚAny)ÚCallable)ÚDict)ÚOptional)ÚSelf)ÚloggerÚenv_to_boolÚcapture_internal_exceptions)ÚEnvelopeÚ	spotlightzhttp://localhost:8969/streamz(sentry_sdk.spotlight.SpotlightMiddlewarec                   ó   — e Zd Zd„ Zd„ Zy)ÚSpotlightClientc                 óR   — || _         t        j                  «       | _        d| _        y )Nr   )ÚurlÚurllib3ÚPoolManagerÚhttpÚtries)Úselfr   s     úXC:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\sentry_sdk/spotlight.pyÚ__init__zSpotlightClient.__init__%   s    € àˆŒÜ×'Ñ'Ó)ˆŒ	Øˆ�
ó    c                 óJ  — t        j                  «       }|j                  |«       	 | j                  j	                  | j
                  |j                  «       dddi¬«      }|j                  «        y # t        $ r(}t        j                  t        |«      «       Y d }~y d }~ww xY w)NÚPOSTúContent-Typezapplication/x-sentry-envelope)r   ÚbodyÚmethodÚheaders)ÚioÚBytesIOÚserialize_intor   Úrequestr   ÚgetvalueÚcloseÚ	ExceptionÚsentry_loggerÚwarningÚstr)r   Úenveloper   ÚreqÚes        r   Úcapture_envelopez SpotlightClient.capture_envelope+   s‡   € ä�z‰z‹|ˆØ×Ñ Ô%ð	*Ø—)‘)×#Ñ#Ø—H‘HØ—]‘]“_Øà"Ð$Cðð	 $ó ˆCð �I‰I�KøÜò 	*ä×!Ñ!¤# a£&×)Ñ)ûð	*ús   §A	A1 Á1	B"Á:BÂB"N)Ú__name__Ú
__module__Ú__qualname__r   r/   © r   r   r   r   $   s   „ òó*r   r   )ÚMiddlewareMixin)ÚHttpResponseServerErrorÚHttpResponseÚHttpRequest)Úsettingsz/assets/main.jsz4<script type="module" crossorigin src="{}"></script>z“<html><base href="{spotlight_url}">
<script>window.__spotlight = {{ initOptions: {{ fullPage: true, startFrom: "/errors/{event_id}" }}}};</script>
zcharset=r   c              #   ó\   K  — | ]$  }d j                  dj                  |«      «      –— Œ& y­w)z</{}>Ú N)ÚformatÚjoin)Ú.0Úcharss     r   ú	<genexpr>r?   M   s)   è ø€ ò )àð 	�‰�r—w‘w˜u“~×&ñ)ùs   ‚*,c                   ó>   ‡ — e Zd ZdZˆ fd„Zed„ «       Zd„ Zd„ Zˆ xZ	S )ÚSpotlightMiddlewareNc                 ó$  •— t         ‰| �  |«       dd l}|j                  | _        | j                  j                  «       j                  }|€t        j                  d«       y t        j                  j                  |j                  d«      | _        y )Nr   zPCannot find Spotlight client from SpotlightMiddleware, disabling the middleware.z../)Úsuperr   Úsentry_sdk.apiÚapiÚ
sentry_sdkÚ
get_clientr   r)   r*   ÚurllibÚparseÚurljoinr   Ú_spotlight_url)r   Úget_responserF   Úspotlight_clientÚ	__class__s       €r   r   zSpotlightMiddleware.__init__U   ss   ø€ ä‰GÑ˜\Ô*ã!à(Ÿn™nˆDŒOà#Ÿ™×9Ñ9Ó;×EÑEÐØÐ'Ü×%Ñ%Øfôð ä"(§,¡,×"6Ñ"6Ð7G×7KÑ7KÈUÓ"SˆDÕr   c                 óö  — | j                   €•	 t        j                  j                  | j                  t
        «      }t        j                  j                  |d¬«      }t        j                  j                  |«       t        j                  |«      | _         | j                   S | j                   S # t        j                  j                  $ r-}t        j                  d|¬«       Y d }~| j                   S d }~ww xY w)NÚHEAD)r    zUCannot get Spotlight JS to inject at %s. SpotlightMiddleware will not be very useful.)Úexc_info)Ú_spotlight_scriptrH   rI   rJ   rK   ÚSPOTLIGHT_JS_ENTRY_PATHr%   ÚRequestÚurlopenÚSPOTLIGHT_JS_SNIPPET_PATTERNr;   ÚerrorÚURLErrorr)   Údebug)r   Úspotlight_js_urlr-   Úerrs       r   Úspotlight_scriptz$SpotlightMiddleware.spotlight_scriptf   sà   € ð ×%Ñ%Ð-ðÜ'-§|¡|×';Ñ';Ø×+Ñ+Ô-Dó(Ð$ô !Ÿ.™.×0Ñ0Ø(Ø%ð 1ó �Cô —N‘N×*Ñ*¨3Ô/Ü-I×-PÑ-PØ(ó.�DÔ*ð ×)Ñ)Ð)�4×)Ñ)Ð)øô —|‘|×,Ñ,ò Ü!×'Ñ'ØoØ(Ø!$÷ñ ð ×)Ñ)Ð)ûðús   ŽBB. Â.C8ÃC3Ã3C8c                 ó¤  ‡‡— t        d„ ‰j                  j                  dd«      j                  «       j	                  d«      D «       «      }|d   }t        |«      dkD  r.|d   j                  t        «      r|d   t        t        «      d  ŠndŠ| j                  �µ‰j                  s©|dk(  r¤t        ‰j                  «      }| j                  j                  ‰«      }t        d	„ ˆˆfd
„t        D «       D «       |«      }‰j                  d | |z   ‰j                  |d  z   ‰_
        ‰j                  d«      r|t        |«      z   ‰j                  d<   ‰S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­w©N)Ústrip)r=   Úps     r   r?   z7SpotlightMiddleware.process_response.<locals>.<genexpr>�   s   è ø€ ò (àð —‘—	ñ(ùs   ‚r   r:   ú;r   é   úutf-8z	text/htmlc              3   ó*   K  — | ]  }|d kD  r|–— Œ y­w)éÿÿÿÿNr3   )r=   Úidxs     r   r?   z7SpotlightMiddleware.process_response.<locals>.<genexpr>•   s!   è ø€ ò àð  š8ô ñùs   ‚c              3   ór   •K  — | ].  }‰j                   j                  |j                  ‰«      «      –— Œ0 y ­wr_   )ÚcontentÚrfindÚencode)r=   Úbody_variantÚencodingÚresponses     €€r   r?   z7SpotlightMiddleware.process_response.<locals>.<genexpr>—   s5   øè ø€ ò $à ,ð %×,Ñ,×2Ñ2°<×3FÑ3FÀxÓ3P×Qñ$ùs   ƒ47zContent-Length)Útupler!   ÚgetÚlowerÚsplitÚlenÚ
startswithÚCHARSET_PREFIXr\   Ú	streamingri   rk   ÚnextÚBODY_CLOSE_TAG_POSSIBILITIESÚ
has_header)	r   Ú_requestrn   Úcontent_type_headerÚcontent_typeÚcontent_lengthÚ	injectionÚinjection_siterm   s	     `     @r   Úprocess_responsez$SpotlightMiddleware.process_response   sc  ù€ ä"'ñ (à!×)Ñ)×-Ñ-¨n¸bÓA×GÑGÓI×OÑOÐPSÓTô(ó #Ðð /¨qÑ1ˆLÜÐ&Ó'¨!Ò+Ð0CÀAÑ0F×0QÑ0QÜô1ð /¨qÑ1´#´nÓ2EÐ2GÐH‘à"�ð ×%Ñ%Ð1Ø ×*Ò*Ø  KÒ/ä!$ X×%5Ñ%5Ó!6�Ø ×1Ñ1×8Ñ8¸ÓB�	Ü!%ñô$ä0Lô$ôð #ó
"�ð ×$Ñ$ _ nÐ5Øñ à×&Ñ& ~ Ð7ñ8ð Ô ð ×&Ñ&Ð'7Ô8Ø9GÌ#ÈiË.Ñ9X�H×$Ñ$Ð%5Ñ6àˆOr   c           	      ó¢  — t         j                  sy 	 t        j                  j	                  | j
                  «      j                  «       j                  d«      }| j                  j                  |«      }t        |j                  dt        j                  | j
                  |¬«      «      «      S # t        j                  j                  $ r Y y w xY w)Nrd   z<html>)Úspotlight_urlÚevent_id)r8   ÚDEBUGrH   r%   rU   rK   ÚreadÚdecoderF   Úcapture_exceptionr5   ÚreplaceÚSPOTLIGHT_ERROR_PAGE_SNIPPETr;   rW   rX   )r   rz   Ú	exceptionr   rƒ   s        r   Úprocess_exceptionz%SpotlightMiddleware.process_exception¬   s²   € ä—>’>Øðä—N‘N×*Ñ*¨4×+>Ñ+>Ó?×DÑDÓF×MÑMÈgÓVð ð  Ÿ?™?×<Ñ<¸YÓG�Ü.Ø×%Ñ%Ø Ü4×;Ñ;Ø*.×*=Ñ*=Èð <ó óóð øô	 —<‘<×(Ñ(ò Ùðús   “AB. Â.CÃC)
r0   r1   r2   rR   r   Úpropertyr\   r€   r‹   Ú__classcell__)rN   s   @r   rA   rA   R   s.   ø„ Ø Ðô	Tð" 
ñ	*ó 
ð	*ò0+	öZ	r   rA   c                 óX  — t        j                  t        j                  «      }|j	                  t        j
                  d«      «       t        j                  |«       t        j                  t         j                  «       | j                  d«      }|du rt        }t        |t        «      sy t        �Ët        j                  r»t!        t"        j$                  j                  dd«      «      r’t!        t"        j$                  j                  dd«      «      rit'        «       5  t        j(                  }t*        |vr> t-        |«      t/        |t*        f«      «      t        _        t        j1                  d«       d d d «       t3        |«      }t        j1                  d|«       |S # 1 sw Y   Œ,xY w)	Nz' [spotlight] %(levelname)s: %(message)sr   TÚSENTRY_SPOTLIGHT_ON_ERRORÚ1ÚSENTRY_SPOTLIGHT_MIDDLEWAREz(Enabled Spotlight integration for Djangoz%Enabled Spotlight using sidecar at %s)ÚloggingÚStreamHandlerÚsysÚstderrÚsetFormatterÚ	Formatterr   Ú
addHandlerÚsetLevelÚINFOrp   ÚDEFAULT_SPOTLIGHT_URLÚ
isinstancer+   r8   r„   r   ÚosÚenvironr   Ú
MIDDLEWAREÚ DJANGO_SPOTLIGHT_MIDDLEWARE_PATHÚtyper   Úinfor   )ÚoptionsÚ_handlerr   Ú
middlewareÚclients        r   Úsetup_spotlightr§   Æ   s7  € ä×$Ñ$¤S§Z¡ZÓ0€HØ×Ñœ'×+Ñ+Ð,UÓVÔWÜ
×Ñ�hÔÜ
‡O�O”G—L‘LÔ!à
�+‰+�kÓ
"€Cà
ˆd�{Ü#ˆä�cœ3ÔØô 	ÐÜ�NŠNÜœŸ
™
Ÿ™Ð'BÀCÓHÔIÜœŸ
™
Ÿ™Ð'DÀcÓJÔKä(Ó*ñ 	HÜ!×,Ñ,ˆJÜ/°zÑAØ&6¤d¨:Ó&6Ü˜*Ô'GÐ&IÓJó'”Ô#ô —‘ÐFÔG÷	Hô ˜SÓ!€FÜ
‡K�KÐ7¸Ô=à€M÷	Hð 	Hús   ÄAF Æ F))3r"   r’   r�   Úurllib.parserH   Úurllib.requestÚurllib.errorr   r”   Ú	itertoolsr   r   Útypingr   r   r   r   r	   r
   Úsentry_sdk.utilsr   r)   r   r   Úsentry_sdk.enveloper   Ú	getLoggerr›   r    r   Údjango.utils.deprecationr4   Údjango.httpr5   r6   r7   Údjango.confr8   rS   rV   r‰   ru   ÚBODY_TAG_NAMEro   ÚzipÚupperrq   rx   rA   ÚImportErrorr§   r3   r   r   ú<module>r·      s  ðÛ 	Û Û 	Û Û Û Û Û 
ç $å  áÝÝÝÝÝ÷ñ õ
 )ð 
ˆ×	Ñ	˜;Ó	'€ð 7Ð Ø#MÐ  ÷*ñ *ð4EÝ8ßNÑNÝ$à/Ðà>ð !ð	{ð !ð  €NØ€MÙ#(ñ )á™c -×"5Ñ"5Ó"7¸×9LÑ9LÓ9NÓOÐPô)ó $Ð ô
n˜oô nóh øð	 ò Ø�Hó ð	ús   Â A C$ Ã$C1Ã0C1