
    fiK7                     L   d dl Z 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 d dlmZ d dlmZ d dlmZmZmZmZmZmZ 	 d d	l mZ n# e$ r  ed
          w xY w	 d dlmZ d dlmZ d dlm Z! d dl"m#Z#m$Z$ n# e$ r  ed          w xY w	 d dl%m&Z'm(Z) n# e$ r dZ'dZ)Y nw xY wd dl*m+Z+ e+r*d dl*m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl"m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9  ed            G d de
          Z:d Z; G d de          Z< G d de<          Z=d Z>d  Z?d! Z@d" ZAdS )#    Nisawaitable)OP)_check_minimum_versionIntegrationDidNotEnable)ignore_logger)should_send_default_pii)TransactionSource)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionloggerpackage_version_get_installed_modules)cached_propertyz;strawberry-graphql integration requires Python 3.8 or newer)Schema)SchemaExtension)should_skip_tracing)async_base_viewsync_base_viewz#strawberry-graphql is not installed)SentryTracingExtensionSentryTracingExtensionSync)TYPE_CHECKING)AnyCallable	GeneratorListOptional)GraphQLErrorGraphQLResolveInfo)GraphQLHTTPResponse)ExecutionContext)EventEventProcessorzstrawberry.executionc                   :    e Zd ZdZde ZddZed             ZdS )StrawberryIntegration
strawberryzauto.graphql.Nc                 `    |dvr"t          d                    |                    || _        d S )N)NFTz6Invalid value for async_execution: "{}" (must be bool))
ValueErrorformatasync_execution)selfr,   s     r/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/strawberry.py__init__zStrawberryIntegration.__init__B   sF    "555HOO#   
  /    c                      t          d          } t          t          | d           t                       t	                       d S )Nzstrawberry-graphql)r   r   r'   _patch_schema_init_patch_views)versions    r.   
setup_oncez StrawberryIntegration.setup_onceL   s?     ""6774g?STTTr0   N)__name__
__module____qualname__
identifieroriginr/   staticmethodr5    r0   r.   r'   r'   >   sU        J)Z))F/ / / /   \  r0   r'   c                  v    t           j        t          j                  fd            } | t           _        d S )Nc                    t          j                                        t                    }| | g|R i |S |                    d          pg }d }|j        |j        }n)t          |          }|t          j        dd           d}d |D             }|	                    |rt          nt                     ||d<    | g|R i |S )N
extensionszwAssuming strawberry is running sync. If not, initialize the integration as StrawberryIntegration(async_execution=True).   )
stacklevelFc                 2    g | ]}|t           t          fv|S r=   StrawberrySentryAsyncExtensionStrawberrySentrySyncExtension).0	extensions     r.   
<listcomp>zK_patch_schema_init.<locals>._sentry_patched_schema_init.<locals>.<listcomp>r   sC     
 
 
24QRS S S S Sr0   )
sentry_sdk
get_clientget_integrationr'   getr,   _guess_if_using_asyncwarningswarnappendSentryAsyncExtensionSentrySyncExtension)r-   argskwargsintegrationr@   should_use_async_extensionold_schema_inits         r.   _sentry_patched_schema_initz7_patch_schema_init.<locals>._sentry_patched_schema_initZ   s,    !+--==>STT"?49$999&999ZZ--3
%)"&2)4)D&& *?z)J)J&)1 N     .3*
 
'
 
 

 	$>W  DW	
 	
 	
  *|t5d555f555r0   )r   r/   	functoolswraps)rY   rX   s    @r.   r2   r2   V   sF    oO__%%%6 %6 %6 %6 &%%6N 2FOOOr0   c                   Z    e Zd ZdddZed             Zd Zd Zd Zd Z	d	 Z
d
 Zd ZdS )rR   Nexecution_contextc                    |r	|| _         d S d S r6   r]   )r-   r^   s     r.   r/   zSentryAsyncExtension.__init__   s$      	7%6D"""	7 	7r0   c                     |                      | j        j                  }| j        j        r d                    | j        j        |          S |S )Nz{}:{})
hash_queryr^   queryoperation_namer+   )r-   
query_hashs     r.   _resource_namez#SentryAsyncExtension._resource_name   sJ     __T%;%ABB
!0 	U>>$"8"GTTTr0   c                 t    t          j        |                    d                                                    S )Nzutf-8)hashlibmd5encode	hexdigest)r-   rb   s     r.   ra   zSentryAsyncExtension.hash_query   s*    {5<<0011;;===r0   c              #     K   | j         j        | _        d}t          j        }| j         j        d| j         _        | j         j                                                            d          rd}t          j        }n?| j         j                                                            d          rd}t          j	        }|}| j        r|d
                    | j                  z  }t          j        d| j        |d           t          j                    }t          | j                   }|                    |           t          j                    }|r(|                    ||t$          j        	          | _        n&t          j        ||t$          j        	          | _        | j                            d
|           | j                            d| j                   | j                            d| j         j                   | j                            d| j                   d V  | j        j        }|r5| j         j        r)| j         j        |_        t4          j        |_        ||_        | j                                         d S )Nrb    mutationsubscriptionz {}zgraphql.operation)rc   operation_type)categorydataopnamer;   zgraphql.operation.typezgraphql.operation.namezgraphql.documentzgraphql.resource_name)r^   rc   _operation_namer   GRAPHQL_QUERYrb   strip
startswithGRAPHQL_MUTATIONGRAPHQL_SUBSCRIPTIONr+   rJ   add_breadcrumbget_isolation_scope_make_request_event_processoradd_event_processorget_current_spanstart_childr'   r;   graphql_span
start_spanset_datare   containing_transactionrt   r   	COMPONENTsourcers   finish)r-   ro   rs   descriptionscopeevent_processorspantransactions           r.   on_operationz!SentryAsyncExtension.on_operation   su     #5D !'/+-D"(!'--//:::FF 	)'N$BB#)//11<<^LL 	)+N(B$ 	>5<<(<===K!("&"6"0 	
 	
 	
 	
 .0078NOO!!/222*,, 	 $ 0 0 ,3 !1 ! !D !+ 5 ,3! ! !D 	""#;^LLL""#;T=QRRR""#5t7M7STTT""#:D<OPPP'> 	 41@ 	 #5DK!2!<KKN  """""r0   c              #      K   | j                             t          j        dt          j                  | _        d V  | j                                         d S )N
validationrr   )r   r   r   GRAPHQL_VALIDATEr'   r;   validation_spanr   r-   s    r.   on_validatez SentryAsyncExtension.on_validate   s[      #0<<"(/  =  
  
 	##%%%%%r0   c              #      K   | j                             t          j        dt          j                  | _        d V  | j                                         d S )Nparsingrr   )r   r   r   GRAPHQL_PARSEr'   r;   parsing_spanr   r   s    r.   on_parsezSentryAsyncExtension.on_parse   s[       -99(/ : 
 
 	  """""r0   c                 "    t          ||          S r6   )strawberry_should_skip_tracing)r-   _nextinfos      r.   r   z(SentryAsyncExtension.should_skip_tracing   s    -eT:::r0   c                 R   K    |||g|R i |}t          |          r| d {V }|S r6   r   )r-   r   rootr   rT   rU   results          r.   _resolvezSentryAsyncExtension._resolve   sM      tT3D333F33v 	"!\\\\\\Fr0   c                   K   |                      ||          r | j        |||g|R i | d {V S d                    |j        |j                  }| j                            t          j        d                    |          t          j
                  5 }|                    d|j                   |                    d|j        j                   |                    d|           |                    dd                    t          t          |j                                                                        | j        |||g|R i | d {V cd d d            S # 1 swxY w Y   d S 	Nz{}.{}zresolving {}rr   zgraphql.field_namezgraphql.parent_typezgraphql.field_pathzgraphql.path.)r   r   r+   parent_type
field_namer   r   r   GRAPHQL_RESOLVEr'   r;   r   rt   joinmapstrpathas_listr-   r   r   r   rT   rU   
field_pathr   s           r.   resolvezSentryAsyncExtension.resolve   s     ##E400 	K&udDJ4JJJ6JJJJJJJJJ^^D$4doFF
**!&&z22(/ + 
 
 
	K MM.@@@MM/1A1FGGGMM.
;;;MM.#((3sDI<M<M<O<O3P3P*Q*QRRR&udDJ4JJJ6JJJJJJJJ
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	K 
	Ks   B=E  E$'E$)r7   r8   r9   r/   r   re   ra   r   r   r   r   r   r   r=   r0   r.   rR   rR      s         7 7 7 7 7   _> > ><# <# <#|
& 
& 
&
# 
# 
#; ; ;  K K K K Kr0   rR   c                       e Zd Zd ZdS )rS   c                    |                      ||          r |||g|R i |S d                    |j        |j                  }| j                            t          j        d                    |          t          j	                  5 }|
                    d|j                   |
                    d|j        j                   |
                    d|           |
                    dd                    t          t          |j                                                                        |||g|R i |cd d d            S # 1 swxY w Y   d S r   )r   r+   r   r   r   r   r   r   r'   r;   r   rt   r   r   r   r   r   r   s           r.   r   zSentrySyncExtension.resolve  s   ##E400 	65t5d555f555^^D$4doFF
**!&&z22(/ + 
 
 
	6 MM.@@@MM/1A1FGGGMM.
;;;MM.#((3sDI<M<M<O<O3P3P*Q*QRRR5t5d555f55
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6s   B1EE
E
N)r7   r8   r9   r   r=   r0   r.   rS   rS     s#        6 6 6 6 6r0   rS   c                      t           j        j        t          j        j        fd} fd}t          t                    d             | t           j        _        |t          j        _        d S )Nc                 <     | ||            | ||           d S r6   r=   )r-   errorsresponse_data_sentry_patched_handle_errorsold_async_view_handle_errorss      r.   (_sentry_patched_async_view_handle_errorsz>_patch_views.<locals>._sentry_patched_async_view_handle_errors.  s3    $$T6=AAA%%dFMBBBBBr0   c                 <     | ||            | ||           d S r6   r=   )r-   r   r   r   old_sync_view_handle_errorss      r.   '_sentry_patched_sync_view_handle_errorsz=_patch_views.<locals>._sentry_patched_sync_view_handle_errors3  s3    ##D&-@@@%%dFMBBBBBr0   c           	      r   |sd S t          j                    }t          |          }|                    |           t	                      5  |D ]P}t          |t          j                    j        t          j	        dd          \  }}t          j
        ||           Q	 d d d            d S # 1 swxY w Y   d S )NF)typehandled)client_options	mechanism)hint)rJ   r|   _make_response_event_processorr~   r   r   rK   optionsr'   r:   capture_event)r-   r   r   r   r   erroreventr   s           r.   r   z3_patch_views.<locals>._sentry_patched_handle_errors8  s     	F.008GG!!/222(** 
	; 
	; 	; 	;2#-#8#:#:#B 5 @#(   t (T:::::	;
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	; 
	;s   
AB,,B03B0)r   AsyncBaseHTTPView_handle_errorsr   SyncBaseHTTPViewr   r'   )r   r   r   r   r   s     @@@r.   r3   r3   )  s    #2#D#S "0"A"PC C C C C C
C C C C C C
   566; ; 76;, 	1 %4 	0 #222r0   c                       fd}|S )Nc                 v   t                      5  t                      ra|                     di           }d|d<   |                    d          s0dj        i}j        r
j        |d<   j        r
j        |d<   ||d<   n"	 | d         d= n# t          t          f$ r Y nw xY wd d d            n# 1 swxY w Y   | S )Nrequestgraphql
api_targetrq   rb   	variablesoperationName)	r   r
   
setdefaultrM   rb   r   rc   KeyError	TypeError)r   r   request_datarq   r^   s       r.   innerz,_make_request_event_processor.<locals>.innerY  s3   (** 	 	&(( $//	2>>-6\*#''// 0#%6%<=D(2 H,=,G[)(7 Q0A0P_-+/L(i(00 ),   D#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	( s6   A0B.	B
B.BB.BB..B25B2r=   )r^   r   s   ` r.   r}   r}   V  s#        0 Lr0   c                       fd}|S )Nc                     t                      5  t                      r|                     di           }di|d<   d d d            n# 1 swxY w Y   | S )Ncontextsrq   response)r   r
   r   )r   r   r   r   s      r.   r   z-_make_response_event_processor.<locals>.innerw  s    (** 	? 	?&(( ? ++J;;(.'>$	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?
 s   ,AAAr=   )r   r   s   ` r.   r   r   t  s#         Lr0   c                 2    t           | v rdS t          | v rdS d S )NTFrD   )r@   s    r.   rN   rN     s'    %33t	&*	4	4u4r0   )BrZ   rg   rO   inspectr   rJ   sentry_sdk.constsr   sentry_sdk.integrationsr   r   r   sentry_sdk.integrations.loggingr	   sentry_sdk.scoper
   sentry_sdk.tracingr   sentry_sdk.utilsr   r   r   r   r   r   r   ImportErrorr(   r   strawberry.extensionsr   #strawberry.extensions.tracing.utilsr   r   strawberry.httpr   r   strawberry.extensions.tracingr   rE   r   rF   typingr   r   r   r   r   r   r   r    r!   r"   strawberry.typesr#   sentry_sdk._typesr$   r%   r'   r2   rR   rS   r3   r}   r   rN   r=   r0   r.   <module>r      s                               U U U U U U U U U U 9 9 9 9 9 9 4 4 4 4 4 4 0 0 0 0 0 0               V))))))) V V V
 ,T
U
UUV>!!!!!!555555      @???????? > > >
,<
=
==>)          ) ) )%)"$(!!!) !           8??????????????8888888833333311111177777777 $ % % %    K   0,2 ,2 ,2^LK LK LK LK LK? LK LK LK^6 6 6 6 6. 6 6 6** * *Z  <      s*   
A A"&B BB 	B+*B+