
    Xjq                    "   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
mZmZmZmZmZmZ d dlmZ d dl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mZ d dl m!Z! dZ"e	e
e#ef   dge
e#ef   f   Z$ G d de      Z% G d de%      Z&ddgZ'y)    )annotations)deepcopy)isawaitable)
TYPE_CHECKINGAnyCallableDict	FrozenSet	GeneratorIterableOptionalSetUnion)trace)SpanKind)LifecycleStepSchemaExtension)get_path_from_info   )should_skip_tracing)GraphQLResolveInfo)SpanTracer)ExecutionContextz%Y-%m-%dT%H:%M:%S.%fZr   c                      e Zd ZU ded<    e       Zded<   ded<   ddd	 	 	 	 	 dd	Zdd
ZddZddZ		 	 	 	 	 	 ddZ
ddZddZddZddZddZ	 	 	 	 	 	 	 	 	 	 	 	 ddZy)OpenTelemetryExtensionOptional[ArgFilter]_arg_filterzDict[LifecycleStep, Span]_span_holderr   _tracerN)execution_context
arg_filterc               Z    || _         t        j                  d      | _        |r|| _        y y )N
strawberry)r   r   
get_tracerr    r!   )selfr!   r"   s      x/var/www/html/myl_app/scheduler-service/venv/lib/python3.12/site-packages/strawberry/extensions/tracing/opentelemetry.py__init__zOpenTelemetryExtension.__init__+   s.     &''5%6D"     c              #  <  K   | j                   j                  | _        | j                  rd| j                   nd}| j                  j	                  |t
        j                        | j                  t        j                  <   | j                  t        j                     j                  dd       | j                   j                  rA| j                  t        j                     j                  d| j                   j                         d  | j                  s[| j                   j                  rEd| j                   j                   }| j                  t        j                     j                  |       | j                  t        j                     j                          y w)NzGraphQL Query: zGraphQL Query)kind	componentgraphqlquery)r!   operation_name_operation_namer    
start_spanr   SERVERr   r   	OPERATIONset_attributer.   update_nameend)r&   	span_names     r'   on_operationz#OpenTelemetryExtension.on_operation6   sK    #55DD ## d2234  	 6:\\5L5LHOO 6M 6
-112 	-112@@iX!!''m556DD//55 	 ##(>(>(M(M)$*@*@*O*O)PQIm556BB9M-112668s   FFc              #  :  K   t        j                  | j                  t        j                           }| j
                  j                  d|      | j                  t        j                  <   d  | j                  t        j                     j                          y w)NzGraphQL Validationcontext)	r   set_span_in_contextr   r   r3   r    r1   
VALIDATIONr6   r&   ctxs     r'   on_validatez"OpenTelemetryExtension.on_validateS   sz     ''(9(9-:Q:Q(RS6:ll6M6M  7N 7
-223 	-223779   BBc              #  :  K   t        j                  | j                  t        j                           }| j
                  j                  d|      | j                  t        j                  <   d  | j                  t        j                     j                          y w)NzGraphQL Parsingr:   )	r   r<   r   r   r3   r    r1   PARSEr6   r>   s     r'   on_parsezOpenTelemetryExtension.on_parse\   sy     ''(9(9-:Q:Q(RS151H1Hs 2I 2
---. 	---.224rA   c                T    | j                   s|S | j                  t        |      |      S N)r   r   )r&   argsinfos      r'   filter_resolver_argsz+OpenTelemetryExtension.filter_resolver_argse   s)     K55r)   c                `     ddj                   fd|j                         D              z   dz   S )N{, c              3  P   K   | ]  \  }}| d j                  |         yw)z: N)convert_to_allowed_types).0kvr&   s      r'   	<genexpr>zGOpenTelemetryExtension.convert_dict_to_allowed_types.<locals>.<genexpr>o   s1      ?Cq!1#R55a89:s   #&})joinitemsr&   values   ` r'   convert_dict_to_allowed_typesz4OpenTelemetryExtension.convert_dict_to_allowed_typesl   s9    ii GL{{}  		
r)   c                   t        |t        t        t        t        t
        f      r|S t        |t        t        t        f      r| j                  |      S t        |t              r| j                  |      S t        |t        t        f      r| j                  |      S t        |t              rt        |      S t        |t         t"        f      rt        |      S t        |      S rF   )
isinstanceboolstrbytesintfloatlisttuplerange&convert_list_or_tuple_to_allowed_typesdictrX   set	frozensetconvert_set_to_allowed_typescomplex	bytearray
memoryviewrV   s     r'   rN   z/OpenTelemetryExtension.convert_to_allowed_typesu   s    edCU;<LeU34>>uEEt$55e<<Y/044U;;w'u:	:67<u:r)   c                D     ddj                   fd|D              z   dz   S )NrK   rL   c              3  R   K   | ]  }t        j                  |               y wrF   )r\   rN   )rO   xr&   s     r'   rR   zFOpenTelemetryExtension.convert_set_to_allowed_types.<locals>.<genexpr>   s!     QaC = =a @AQs   $'rS   )rT   rV   s   ` r'   rg   z3OpenTelemetryExtension.convert_set_to_allowed_types   s%    $))Q5QQQTWW	
r)   c           	     h    dj                  t        t        t        | j                  |                  S )NrL   )rT   mapr\   rN   rV   s     r'   rc   z=OpenTelemetryExtension.convert_list_or_tuple_to_allowed_types   s%    yyS#d&C&CU"KLMMr)   c                   dj                  t        t        t        |                  }|j	                  dd       |j	                  d|j
                  j                         |j	                  d|       |rQ| j                  ||      }|j                         D ]+  \  }}| j                  |      }|j	                  d| |       - y y )N.r,   r-   zgraphql.parentTypezgraphql.pathzgraphql.param.)
rT   ro   r\   r   r4   parent_typenamerI   rU   rN   )	r&   spanrH   kwargsgraphql_pathfiltered_kwargskwargrW   converted_values	            r'   add_tagszOpenTelemetryExtension.add_tags   s    xxC);D)A BC;	2/1A1A1F1FG><8"77EO / 5 5 7 Nu"&"?"?"F""^E7#;_MN r)   c                  K   t        ||      r$ |||g|i |}t        |      r
| d {   }|S | j                  j                  d|j                   t        j                  | j                  t        j                                 5 }| j                  |||        |||g|i |}t        |      r
| d {   }|cd d d        S 7 7 # 1 sw Y   y xY wwNzGraphQL Resolving: r:   )r   r   r    start_as_current_span
field_namer   r<   r   r   r3   rz   r&   _nextrootrH   rG   ru   resultrt   s           r'   resolvezOpenTelemetryExtension.resolve   s      ud+4777F6"%M\\//!$//!23--!!-"9"9: 0 
 	
 MM$f-4777F6"%	 		 & &	 	s:   *CCAC1C<C=CCCCC)r!   zOptional[ExecutionContext]r"   r   returnNone)r   zGenerator[None, None, None])rG   Dict[str, Any]rH   r   r   r   )rW   rd   r   r\   )rW   r   r   r   )rW   zUnion[Set, FrozenSet]r   r\   )rW   r   r   r\   )rt   r   rH   r   ru   r   r   r   r   r   r   r   rH   r   rG   r\   ru   r   r   r   )__name__
__module____qualname____annotations__rd   r   r(   r8   r@   rD   rI   rX   rN   rg   rc   rz   r    r)   r'   r   r   &   s    $$.2fL+4O
 9=*.		7 6	7 (		7
 
	79::56"6*<6	6
"

NN  !	
   
r)   r   c                  ,    e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 ddZy)OpenTelemetryExtensionSyncc                X   t        ||      r |||g|i |}|S | j                  j                  d|j                   t	        j
                  | j                  t        j                                 5 }| j                  |||        |||g|i |}|cd d d        S # 1 sw Y   y xY wr|   )
r   r    r}   r~   r   r<   r   r   r3   rz   r   s           r'   r   z"OpenTelemetryExtensionSync.resolve   s     ud+4777FM\\//!$//!23--!!-"9"9: 0 
 		
 MM$f-4777F		 		 		s   4"B  B)Nr   )r   r   r   r   r   r)   r'   r   r      sA      !	
   
r)   r   N)(
__future__r   copyr   inspectr   typingr   r   r   r	   r
   r   r   r   r   r   opentelemetryr   opentelemetry.tracer   strawberry.extensionsr   r   strawberry.extensions.utilsr   utilsr   r-   r   r   r   strawberry.types.executionr   DATETIME_FORMATr\   	ArgFilterr   r   __all__r   r)   r'   <module>r      s    "       ( @ : &*0; *d38n&:;T#s(^KL	R_ Rj!7 4 $%A
Br)   