
    fi                     z   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 Z$d Z%d Z&d Z'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             ZdS )GQLIntegrationgqlc                  ~    t          t          j                  } t          t          |            t                       d S )N)r   r   __version__r   r   _patch_execute)gql_versions    k/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/gql.py
setup_oncezGQLIntegration.setup_once+   s5     $CO44~{;;;    N)__name__
__module____qualname__
identifierstaticmethodr!    r"   r    r   r   (   s2        J  \  r"   r   c                     	 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)documentoperation_astdatas      r    _data_from_documentr6   4   s    )(338,,-$ - BD!-(5(:(@_%I&   vvs   AA A('A(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)methodr0   )	transports    r    _transport_methodr;   D   s2       vvs   	 
c                 h    | i S dt          |           i}	 | j        |d<   n# t          $ r Y nw xY w|S )Nr9   url)r;   r=   r0   )r:   request_infos     r    _request_info_from_transportr?   P   s`    	 	#I..L'mU    s   
" 
//c                      t           j        j        t          t                    fd            } | t           j        _        d S )Nc                 :   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)	selfdocument_or_requestargskwargsscopeeeventhintreal_executes	           r    sentry_patched_executez._patch_execute.<locals>.sentry_patched_executee   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)r   Clientexecuter   r   )rV   rU   s    @r    r   r   a   sM    :%L==    >=" 0CJr"   c                       fd}|S )Nc                    	 |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graphqlr5   contextsresponseerrors)r5   rB   )rb   r0   KeyError
setdefaultupdater?   r:   r	   r   
isinstancer3   r6   )	rS   rT   rb   r]   r3   r`   ra   clientrN   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    --r(   )rg   rN   rh   s   `` r    rI   rI   z   s+    $ $ $ $ $ $L r"   ))rF   sentry_sdk.utilsr   r   r   sentry_sdk.integrationsr   r   r   sentry_sdk.scoper	   r   r_   r
   r   r   r   gql.transportr   r   gql.transport.exceptionsr   r   ImportErrortypingr   r   r   r   r   sentry_sdk._typesr   r   strEventDataTyper   r6   r;   r?   r   rI   r(   r"   r    <module>rs      sU                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	 	 	 	 	[ 	 	 	   	 	 	  "0 0 02( ( ( ( (s.   A A A AA AA A%