
    tni                     L   d dl mZ d dl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 d dlmZ d dlmZmZmZmZ 	  ed	          Zn# e$ r  ed
          w xY wd dlmZ er&d dlmZmZmZmZ d dlmZmZmZm Z  d dl!m"Z" d dl#m$Z$m%Z%  G d de          Z&ddZ'ddZ(ddZ)dS )    )import_moduleN)
get_clientcapture_event)_check_minimum_versionDidNotEnableIntegration)ignore_logger)request_body_within_bounds)should_send_default_pii)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionpackage_versionzariadne.graphqlzariadne is not installed)TYPE_CHECKING)AnyDictListOptional)GraphQLErrorGraphQLResultGraphQLSchemaQueryParser)DocumentNode)EventEventProcessorc                   *    e Zd ZdZedd            ZdS )AriadneIntegrationariadnereturnNc                      t          d          } t          t          |            t          d           t	                       d S )Nr   )r   r   r   r	   _patch_graphql)versions    \/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/ariadne.py
setup_oncezAriadneIntegration.setup_once#   s@    !),,17;;;i       r   N)__name__
__module____qualname__
identifierstaticmethodr$    r%   r#   r   r       s7        J   \  r%   r   r   c                     t           j        t           j        t           j        t	          t
                    	 	 	 	 	 	 	 	 dfd	            } t	          t
                    	 	 	 	 	 	 	 	 dfd            }t	          t
                    	 	 	 	 	 	 	 	 dfd            }| t           _        |t           _        |t           _        d S )Ncontext_valueOptional[Any]query_parserOptional[QueryParser]datar   r   r   c                     t          |          }t          j                                        |            | ||          }|S )N)_make_request_event_processor
sentry_sdkget_isolation_scopeadd_event_processor)r.   r0   r2   event_processorresultold_parse_querys        r#   _sentry_patched_parse_queryz3_patch_graphql.<locals>._sentry_patched_parse_query2   sG     8==&((<<_MMM dCCr%   errorsList[GraphQLError]argskwargsr   c           	          	| g|R i |}t          |d                   }t          j                                        |           t	                      }|                                rdt                      5  | D ]:}t          ||j        t          j
        dd          \  }}t          ||           ;	 d d d            n# 1 swxY w Y   |S N   F)typehandled)client_options	mechanism)hint)_make_response_event_processorr5   r6   r7   r   	is_activer   r   optionsr   r*   r   )
r<   r>   r?   r9   r8   clienterroreventrG   old_handle_errorss
            r#   %_sentry_patched_handle_graphql_errorsz=_patch_graphql.<locals>._sentry_patched_handle_graphql_errors>   s7    #"6;D;;;F;;8CC&((<<_MMM 	4,.. 
4 
4# 	4 	4E"6'-~$6$A',# ## # #KE4 "%d33333	4
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 s   9>CCCr9   c           	          	| g|R i |}t          |d                   }t          j                                        |           t	                      }|                                rkt                      5  | j        pg D ]:}t          ||j	        t          j        dd          \  }}t          ||           ;	 d d d            n# 1 swxY w Y   |S rA   )rH   r5   r6   r7   r   rI   r   r<   r   rJ   r   r*   r   )
r9   r>   r?   query_resultr8   rK   rL   rM   rG   old_handle_query_results
            r#   #_sentry_patched_handle_query_resultz;_patch_graphql.<locals>._sentry_patched_handle_query_resultW   s?    /.vGGGGGG8aII&((<<_MMM 	4,.. 
4 
4#]0b 	4 	4E"6'-~$6$A',# ## # #KE4 "%d33333	4
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 s   9ACCC)r.   r/   r0   r1   r2   r   r   r   )r<   r=   r>   r   r?   r   r   r   )r9   r   r>   r   r?   r   r   r   )ariadne_graphqlparse_queryhandle_graphql_errorshandle_query_resultr   r   )r;   rO   rS   rN   rR   r:   s      @@@r#   r!   r!   -   sH   %1O'=-A 2ODD	&	-	 	 
		 	 	 	 	 ED	   24EFF$-2>C	     GF0   24KLL#/4	     ML0 #>O,QO)*MO'''r%   r2   r   r   c                      d fd}|S )z*Add request data and api_target to events.rM   r   rG   dict[str, Any]r   c                 :   t          t                    s| S t                      5  	 t                              d          pi                     dd                    }n%# t
          t          f$ r | cY cd d d            S w xY wt                      r=t          t                      |          r!| 
                    di           }d|d<   |d<   n2|                     di                               d          r	| d         d= d d d            n# 1 swxY w Y   | S )NheaderszContent-Lengthr   requestgraphql
api_targetr2   )
isinstancedictr   intget	TypeError
ValueErrorr   r
   r   
setdefault)rM   rG   content_lengthrequest_infor2   s       r#   innerz,_make_request_event_processor.<locals>.innerx   s   $%% 	L(** 	- 	-!$XXi((.B334DaHH" " z*   	- 	- 	- 	- 	- 	- 	- 	-
 '(( --Gn. . -  %//	2>>-6\*'+V$$9b))--f55 -)$V,!	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-$ s5   D8A"!D"B5DBB DDDrM   r   rG   rY   r   r   r,   )r2   rh   s   ` r#   r4   r4   u   s(         0 Lr%   responseDict[str, Any]c                      d fd}|S )z2Add response data to the event's response context.rM   r   rG   rY   r   c                     t                      5  t                      r2                    d          r|                     di           }di|d<   d d d            n# 1 swxY w Y   | S )Nr<   contextsr2   rj   )r   r   rb   re   )rM   rG   rn   rj   s      r#   rh   z-_make_response_event_processor.<locals>.inner   s    (** 	 	&(( X\\(-C-C  ++J;;H($	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   AAA!$A!ri   r,   )rj   rh   s   ` r#   rH   rH      s(          Lr%   r&   )r2   r   r   r   )rj   rk   r   r   )*	importlibr   r5   r   r   sentry_sdk.integrationsr   r   r   sentry_sdk.integrations.loggingr	   $sentry_sdk.integrations._wsgi_commonr
   sentry_sdk.scoper   sentry_sdk.utilsr   r   r   r   rT   ImportErrortypingr   r   r   r   r   ariadne.typesr   r   r   r   graphql.language.astr   sentry_sdk._typesr   r   r   r!   r4   rH   r,   r%   r#   <module>rz      s   # # # # # #     0 0 0 0 0 0 0 0 U U U U U U U U U U 9 9 9 9 9 9 K K K K K K 4 4 4 4 4 4           3 $m$566OO 3 3 3
,1
2
223 !           8000000000000UUUUUUUUUUUU11111177777777
 
 
 
 
 
 
 
EN EN EN ENP   <     s   A A