
    \j                     4   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mZmZmZ 	 d dlmZ d d	lmZ er(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"  G d de      Z#ddZ$ddZ%e	 	 	 	 	 	 	 	 dd       Z&y# e$ r	  ed      w xY w)    )contextmanagerN)OP)_check_minimum_versionDidNotEnableIntegration)should_send_default_pii)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionpackage_version)schemazgraphene is not installed)TYPE_CHECKING)	Generator)AnyDictUnion)Source)ExecutionResult)GraphQLSchema)Eventc                   "    e Zd ZdZedd       Zy)GrapheneIntegrationgrapheneNc                  N    t        d      } t        t        |        t                y )Nr   )r   r   r   _patch_graphql)versions    J/root/env/lib/python3.12/site-packages/sentry_sdk/integrations/graphene.py
setup_oncezGrapheneIntegration.setup_once!   s    !*-2G<    returnN)__name__
__module____qualname__
identifierstaticmethodr    r   r   r   r      s    J r   r   c                      t         j                  t         j                  t        t              	 	 	 	 	 	 	 	 	 	 dfd       } 	 	 	 	 	 	 	 	 	 	 dfd}| t         _        |t         _        y )Nc           	         t        j                         }|j                  t               t	        | ||      5   
| |g|i |}d d d        t               5  t        j                         }j                  xs g D ]E  }t        ||j                  t        j                  dd      \  }}	t        j                  ||	       G 	 d d d        |S # 1 sw Y   xY w# 1 sw Y   S xY wNF)typehandled)client_options	mechanism)hint)
sentry_sdkget_isolation_scopeadd_event_processor_event_processorgraphql_spanr	   
get_clienterrorsr   optionsr   r%   capture_event)r   sourceargskwargsscoperesultclienterroreventr/   old_graphql_syncs             r   _sentry_patched_graphql_syncz4_patch_graphql.<locals>._sentry_patched_graphql_sync-   s     ..0!!"23&&&1 	G%ffFtFvFF	G )* 	;**,F," 	;2#)>> 3 > >#(t ((T:	;	; !	G 	G	; s   CA-CCC&c           	      n  K   t        j                         j                  t              }| | |g|i | d {   S t        j                         }|j                  t               t        | ||      5   | |g|i | d {   }d d d        t               5  t        j                         }j                  xs g D ]E  }t        ||j                  t        j                  dd      \  }	}
t        j                  |	|
       G 	 d d d        |S 7 7 # 1 sw Y   xY w# 1 sw Y   S xY wwr*   )r0   r5   get_integrationr   r1   r2   r3   r4   r	   r6   r   r7   r%   r8   )r   r9   r:   r;   integrationr<   r=   r>   r?   r@   r/   old_graphql_asyncs              r   _sentry_patched_graphql_asyncz5_patch_graphql.<locals>._sentry_patched_graphql_asyncI   s2     !++-==>QR*66KDKFKKK..0!!"23&&&1 	N,VVMdMfMMF	N )* 	;**,F," 	;2#)>> 3 > >#(t ((T:	;	; + L N	N 	N	; sR   :D5D:D58D	D
DD5 A-D(D5DD%!D5(D2-D5)
r   r   r9   Union[str, Source]r:   r   r;   r   r!   r   )graphene_schemagraphql_syncgraphqlr
   r   )rB   rG   rF   rA   s     @@r   r   r   )   s    &33'// 35EF$  	
 
 G6$  	
 
> $@O ;Or   c                     t               r| j                  di       }d|d<   | S | j                  di       j                  d      r| d   d= | S )NrequestrK   
api_targetdata)r   
setdefaultget)r@   r/   request_infos      r   r3   r3   l   sX     ''	26%.\"
 L 
9b	!	%	%f	-)V$Lr   c              #   ~  K   |j                  d      }d}t        j                  }|j                         j	                  d      rd}t        j
                  }n1|j                         j	                  d      rd}t        j                  }t        j                  ||ddd       t        j                  ||	      }t               r|j                  d
|       |j                  d|       |j                  d|       |j                          	 d  |j                  d d d        y # |j                  d d d        w xY ww)Noperation_namequerymutationsubscription)rT   operation_typezgraphql.operation)rO   category)crumb)opnamezgraphql.documentzgraphql.operation.namezgraphql.operation.type)rQ   r   GRAPHQL_QUERYstrip
startswithGRAPHQL_MUTATIONGRAPHQL_SUBSCRIPTIONr0   add_breadcrumb
start_spanr   set_data	__enter____exit__)r   r9   r;   rT   rX   r[   _graphql_spans          r   r4   r4   w   s     ZZ 01NN			B||~  ,#  		"	">	2'$$ #1"0 ,
 ))RnEM 16:3^D3^D1tT40tT40s   D
D=D% D=%D::D=r    )r@   r   r/   Dict[str, Any]r!   r   )r   r   r9   rH   r;   rh   r!   zGenerator[None, None, None])'
contextlibr   r0   sentry_sdk.constsr   sentry_sdk.integrationsr   r   r   sentry_sdk.scoper   sentry_sdk.utilsr	   r
   r   r   graphene.typesr   rI   ImportErrortypingr   collections.abcr   r   r   r   graphene.language.sourcer   graphql.executionr   graphql.typer   sentry_sdk._typesr   r   r   r3   r4   r'   r   r   <module>rv      s    %    U U 4 48 !)''/1*'+ @<F $1$1%9$1CS$1"$1 $1Q  4
2
334s   B	 	B