
    Xj                        d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	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 e	rd d	lmZ d d
lmZ  G d de      Z G d de      ZddgZy)    )annotationsN)cached_property)isawaitable)TYPE_CHECKINGAnyCallable	GeneratorOptional)configure_scope
start_span)SchemaExtensionshould_skip_tracing)GraphQLResolveInfo)ExecutionContextc                  z    e Zd Zdd	 	 	 ddZedd       ZddZddZddZddZ	dd	Z
	 	 	 	 	 	 	 	 	 	 	 	 dd
Zy)SentryTracingExtensionN)execution_contextc               P    t        j                  dt        d       |r|| _        y y )NzOThe Sentry tracing extension is deprecated, please update to sentry-sdk>=1.32.0   )
stacklevel)warningswarnDeprecationWarningr   )selfr   s     q/var/www/html/myl_app/scheduler-service/venv/lib/python3.12/site-packages/strawberry/extensions/tracing/sentry.py__init__zSentryTracingExtension.__init__   s+    
 	]	
 %6D"     c                    | j                   j                  sJ | j                  | j                   j                        }| j                   j                  r| j                   j                   d| S |S )N:)r   query
hash_queryoperation_name)r   
query_hashs     r   _resource_namez%SentryTracingExtension._resource_name#   sd    %%++++__T%;%;%A%AB
!!00,,;;<Aj\JJr   c                f    t        j                  |j                  d            j                         S )Nzutf-8)hashlibmd5encode	hexdigest)r   r!   s     r   r"   z!SentryTracingExtension.hash_query.   s#    {{5<<01;;==r   c              #  `  K   | j                   j                  | _        | j                  r| j                   nd}t               5 }|j                  r#|j                  j                  d|      | _        nt        d      | _        d d d        d}| j                   j                  sJ | j                   j                  j                         j                  d      rd}| j                   j                  j                         j                  d      rd}| j                  j                  d|       | j                  j                  d	| j                         | j                  j                  d
| j                   j                         d  | j                  j                          y # 1 sw Y   xY ww)NzAnonymous Querygqlopdescription)r.   r!   mutationsubscriptionzgraphql.operation_typezgraphql.resource_namezgraphql.query)r   r#   _operation_namer   spanstart_childgql_spanr   r!   strip
startswithset_tagr%   set_datafinish)r   namescopeoperation_types       r   on_operationz#SentryTracingExtension.on_operation1   sW    #55DD,0,@,@$&&'FW 		%zz %

 6 6 $ !7 !
 !+!		 !%%++++!!''--/:::F'N!!''--/::>J+N6G5t7J7JK0F0F0L0LM5		 		s    AF.AF!DF.!F+&F.c              #     K   | j                   j                  dd      | _        d  | j                  j                          y w)N
validation
Validationr-   )r5   r4   validation_spanr:   r   s    r   on_validatez"SentryTracingExtension.on_validateQ   s>     #}}88  9  
 	##%   AAc              #     K   | j                   j                  dd      | _        d  | j                  j                          y w)NparsingParsingr-   )r5   r4   parsing_spanr:   rC   s    r   on_parsezSentryTracingExtension.on_parseZ   s>      MM55i 6 
 	  "rE   c                    t        ||      S )Nr   )r   _nextinfos      r   r   z*SentryTracingExtension.should_skip_tracingc   s    "5$//r   c                  K   | j                  ||      r$ |||g|i |}t        |      r
| d {   }|S |j                   d|j                   }| j                  j                  dd|       5 }|j                  d|j                         |j                  d|j                  j                         |j                  d|       |j                  ddj                  t        t        |j                  j                                             |||g|i |}t        |      r
| d {   }|cd d d        S 7 7 # 1 sw Y   y xY ww	N.resolvezResolving: r-   zgraphql.field_namezgraphql.parent_typezgraphql.field_pathzgraphql.path)r   r   parent_type
field_namer5   r4   r8   r;   joinmapstrpathas_list)	r   rL   rootrM   argskwargsresult
field_pathr3   s	            r   rQ   zSentryTracingExtension.resolvef   s9     ##E404777F6"%M(()4??*;<
]]&&J<&@ ' 
 	LL-t?LL.0@0@0E0EFLL-z:LL#c499;L;L;N2O)PQ4777F6"%	 	 &" &	 	s;   0ED=AE4B9E-E .E3E EEE)r   zOptional[ExecutionContext]returnNone)r^   rV   )r!   rV   r^   rV   )r^   zGenerator[None, None, None])rL   r   rM   r   r^   boolrL   r   rY   r   rM   r   rZ   rV   r[   r   r^   r   )__name__
__module____qualname__r   r   r%   r"   r>   rD   rJ   r   rQ    r   r   r   r      s     9=7 67 
	7  >@&#0  !	
   
r   r   c                  ,    e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 ddZy)SentryTracingExtensionSyncc                2   | j                  ||      r |||g|i |S |j                   d|j                   }| j                  j	                  dd|       5 }|j                  d|j                         |j                  d|j                  j                         |j                  d|       |j                  ddj                  t        t        |j                  j                                             |||g|i |cd d d        S # 1 sw Y   y xY wrO   )r   rR   rS   r5   r4   r8   r;   rT   rU   rV   rW   rX   )r   rL   rY   rM   rZ   r[   r]   r3   s           r   rQ   z"SentryTracingExtensionSync.resolve   s     ##E40t5d5f55(()4??*;<
]]&&J<&@ ' 
 	6LL-t?LL.0@0@0E0EFLL-z:LL#c499;L;L;N2O)PQt5d5f5	6 	6 	6s   B(DDNra   )rb   rc   rd   rQ   re   r   r   rg   rg      sA    66 6 !	6
 6 6 
6r   rg   )
__future__r   r'   r   	functoolsr   inspectr   typingr   r   r   r	   r
   
sentry_sdkr   r   strawberry.extensionsr   #strawberry.extensions.tracing.utilsr   graphqlr   strawberry.types.executionr   r   rg   __all__re   r   r   <module>rs      sU    "   %  D D 2 1 C*;q_ qh6!7 62 $%A
Br   