
    tni                        d dl 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Zd dlmZmZmZmZ d dlmZmZ d dlmZ 	 d dlmZ n# e$ r dZY nw xY w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  ee!ee!eedf         f         f         Z" G d de          Z#d"dZ$ddde!fdZ%	 	 	 	 d#dZ&d$dZ'	 	 	 	 	 	 d%d!Z(dS )&    N)event_from_exceptionensure_integration_enabledparse_version)_check_minimum_versionDidNotEnableIntegration)should_send_default_pii)	print_astget_operation_astDocumentNodeVariableDefinitionNode)	TransportAsyncTransport)TransportQueryError)GraphQLRequestzgql is not installed)TYPE_CHECKING)AnyDictTupleUnion)EventEventProcessor.c                   *    e Zd ZdZedd            ZdS )GQLIntegrationgqlreturnNc                  ~    t          t          j                  } t          t          |            t                       d S )N)r   r   __version__r   r   _patch_execute)gql_versions    X/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/gql.py
setup_oncezGQLIntegration.setup_once+   s3    #CO44~{;;;    r   N)__name__
__module____qualname__
identifierstaticmethodr"    r#   r!   r   r   (   s7        J   \  r#   r   documentr   r   EventDataTypec                     	 t          |           }dt          |           i}| |j        |d<   |j        |j        j        |d<   |S # t
          t          f$ r t                      cY S w xY w)Nquery	variablesoperationName)r   r
   variable_definitionsnamevalueAttributeError	TypeErrordict)r+   operation_astdatas      r!   _data_from_documentr9   3   s    )(33!()H*=*= >$ - BD!-(5(:(@_%I&   vvs   AA A('A(	transportz Union[Transport, AsyncTransport]c                 4    	 | j         S # t          $ r Y dS w xY w)zg
    The RequestsHTTPTransport allows defining the HTTP method; all
    other transports use POST.
    POST)methodr4   )r:   s    r!   _transport_methodr>   B   s2    
   vvs   	 
&Union[Transport, AsyncTransport, None]Dict[str, str]c                 h    | i S dt          |           i}	 | j        |d<   n# t          $ r Y nw xY w|S )Nr=   url)r>   rB   r4   )r:   request_infos     r!   _request_info_from_transportrD   M   sb     	 	#I..L'mU    s   
" 
//c                      t           j        j        t          t                    	 	 	 	 	 	 	 	 	 	 d
fd	            } | t           j        _        d S )Nself
gql.Clientdocument_or_requestr   argsr   kwargsr   c                 :   t          j                    }|                    t          | |                     	  | |g|R i |S # t          $ rJ}t          |t          j                    j        ddd          \  }}t          j        ||           |d }~ww xY w)Nr   F)typehandled)client_options	mechanism)	
sentry_sdkget_isolation_scopeadd_event_processor_make_gql_event_processorr   r   
get_clientoptionscapture_event)	rF   rH   rI   rJ   scopeeeventhintreal_executes	           r!   sentry_patched_executez._patch_execute.<locals>.sentry_patched_executeb   s     .00!!";DBU"V"VWWW
	<&9KDKKKFKKK" 	 	 	.)466>#(U;;  KE4 $UD111G	s   A 
BABB)
rF   rG   rH   r   rI   r   rJ   r   r   r   )r   Clientexecuter   r   )r\   r[   s    @r!   r   r   _   s    :%L==+  	
 
     >=* 0CJr#   clientrG   rH   'Union[DocumentNode, gql.GraphQLRequest]r   c                      d fd}|S )NrY   r   rZ   dict[str, Any]r   c                    	 |d         d         j         }n# t          t          f$ r d }Y nw xY w|                     di           }|                    ddit          j                             t                      r~t          t          t                    rj
        }n}t          |          |d<   |                     di           }|                    di           }|                    d	|i|d
           | S )Nexc_info   request
api_targetgraphqlr8   contextsresponseerrors)r8   rL   )rk   r4   KeyError
setdefaultupdaterD   r:   r	   r   
isinstancer+   r9   )	rY   rZ   rk   rf   r+   ri   rj   r_   rH   s	          r!   	processorz,_make_gql_event_processor.<locals>.processor~   s7   	*%a(/FF) 	 	 	FFF	 ""9b11i.v/?@@	
 	
 	
 #$$ 	)j#^/ /) /7.1(;;GFO''
B77H**:r::HOO%v.$    s    --)rY   r   rZ   rb   r   r   r*   )r_   rH   rp   s   `` r!   rS   rS   {   s0    # # # # # # #J r#   )r+   r   r   r,   )r:   r?   r   r@   r$   )r_   rG   rH   r`   r   r   ))rP   sentry_sdk.utilsr   r   r   sentry_sdk.integrationsr   r   r   sentry_sdk.scoper	   r   rh   r
   r   r   r   gql.transportr   r   gql.transport.exceptionsr   r   ImportErrortypingr   r   r   r   r   sentry_sdk._typesr   r   strr,   r   r9   r>   rD   r   rS   r*   r#   r!   <module>rz      s                V U U U U U U U U U 4 4 4 4 4 4/JJJ            87777777<<<<<<&&&&&&&     / / /
,-
.
../ !           N............77777777eC/Es/J)K$KLLMM    [      !C     7   $0 0 0 08((/X(( ( ( ( ( (s.   A A A AA AA A%