
    $g                       d dl mZ d dlZd dlZd dlmZmZ d dlmZ d dl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 e	rd d
lmZ dZe	rd dlmZ ej         G d d                      Zej         G d d                      Zej         G d d                      Zej         G d d                      Z G d de          Z  G d de           Z!ddgZ"dS )    )annotationsN)datetimetimezone)isawaitable)TYPE_CHECKINGAnyCallableDict	GeneratorListOptional)SchemaExtension)get_path_from_info   )should_skip_tracing)GraphQLResolveInfoz%Y-%m-%dT%H:%M:%S.%fZ)ExecutionContextc                  ,    e Zd ZU ded<   ded<   ddZdS )	ApolloStepStatsintstart_offsetdurationreturnDict[str, Any]c                     | j         | j        dS )N)startOffsetr   r   r   selfs    d/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/strawberry/extensions/tracing/apollo.pyto_jsonzApolloStepStats.to_json   s    #0dmLLL    Nr   r   __name__
__module____qualname____annotations__r!    r"   r    r   r      sE         MMMM M M M M Mr"   r   c                  X    e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
Zded<   ddZd
S )ApolloResolverStatsz	List[str]pathr   parent_typestr
field_namereturn_typer   r   NzOptional[int]r   r   r   c                    | j         | j        t          | j                  t          | j                  | j        | j        dS )N)r,   r/   
parentType
returnTyper   r   )r,   r/   r.   r-   r0   r   r   r   s    r    r!   zApolloResolverStats.to_json)   sB    I/d.//d.//,
 
 	
r"   r#   )r%   r&   r'   r(   r   r!   r)   r"   r    r+   r+       sq         OOOOOO"H""""
 
 
 
 
 
r"   r+   c                  "    e Zd ZU ded<   ddZdS )ApolloExecutionStatszList[ApolloResolverStats]	resolversr   r   c                (    dd | j         D             iS )Nr6   c                6    g | ]}|                                 S r)   )r!   ).0resolvers     r    
<listcomp>z0ApolloExecutionStats.to_json.<locals>.<listcomp>9   s$    PPPXh..00PPPr"   )r6   r   s    r    r!   zApolloExecutionStats.to_json8   s    PPPPPQQr"   Nr#   r$   r)   r"   r    r5   r5   4   s<         ((((R R R R R Rr"   r5   c                  b    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   dZded<   ddZdS )ApolloTracingStatsr   
start_timeend_timer   r   r5   	executionr   
validationparsingr   versionr   r   c                (   | j         | j                            t                    | j                            t                    | j        | j                                        | j                                        | j	                                        dS )N)rC   	startTimeendTimer   r@   rA   rB   )
rC   r>   strftimeDATETIME_FORMATr?   r   r@   r!   rA   rB   r   s    r    r!   zApolloTracingStats.to_jsonF   st    |11/BB}--o>>//11/1133|++--
 
 	
r"   Nr#   )r%   r&   r'   r(   rC   r!   r)   r"   r    r=   r=   <   s         MMM####G	
 	
 	
 	
 	
 	
r"   r=   c                  ^    e Zd ZddZddZddZdd	ZddZedd            Z	ddZ
d dZdS )!ApolloTracingExtensionexecution_contextr   r   Nonec                "    g | _         || _        d S N)_resolver_statsrK   )r   rK   s     r    __init__zApolloTracingExtension.__init__S   s    :<!2r"   Generator[None, None, None]c              #    K   |                                  | _        t          j         t          j                  | _        d V  |                                  | _        t          j         t          j                  | _        d S rN   )nowstart_timestampr   r   utcr>   end_timestampr?   r   s    r    on_operationz#ApolloTracingExtension.on_operationW   sY      #xxzz",x|44!XXZZ X\22r"   c              #  v   K   |                                  | _        d V  |                                  | _        d S rN   )rS   _start_parsing_end_parsingr   s    r    on_parsezApolloTracingExtension.on_parse^   s5      "hhjj HHJJr"   c              #  v   K   |                                  | _        d V  |                                  | _        d S rN   )rS   _start_validation_end_validationr   s    r    on_validatez"ApolloTracingExtension.on_validatec   s5      !%#xxzzr"   r   c                (    t          j                    S rN   )timeperf_counter_nsr   s    r    rS   zApolloTracingExtension.nowh   s    #%%%r"   r=   c                "   t          | j        | j        | j        | j        z
  t          | j                  t          | j        | j        z
  | j	        | j        z
            t          | j
        | j        z
  | j        | j
        z
                      S )Nr   )r>   r?   r   r@   rA   rB   )r=   r>   r?   rV   rT   r5   rO   r   r]   r^   rY   rZ   r   s    r    statszApolloTracingExtension.statsk   s    !]'$*>>*4+?@@&!3d6JJ-0FF   $!043GG*T-@@  
 
 
 	
r"   Dict[str, Dict[str, Any]]c                8    d| j                                         iS )Ntracing)rd   r!   r   s    r    get_resultsz"ApolloTracingExtension.get_results|   s    4:--//00r"   _nextr	   rootr   infor   argsr.   kwargsc                B  K   t          ||          r& |||g|R i |}t          |          r| d {V }|S |                                 }t          t	          |          |j        |j        |j        || j        z
            }	  |||g|R i |}t          |          r| d {V }||                                 }	|	|z
  |_	        | j
                            |           S # |                                 }	|	|z
  |_	        | j
                            |           w xY wN)r,   r/   r-   r0   r   )r   r   rS   r+   r   r/   r-   r0   rT   r   rO   append)
r   ri   rj   rk   rl   rm   resultrT   resolver_statsrV   s
             r    resolvezApolloTracingExtension.resolve   sa      ud++ 	U4777777F6"" &%M((**,#D))(((4+??
 
 

	8U4777777F6"" &% HHJJM&3o&EN# ''7777 !HHJJM&3o&EN# ''7777s   %C$ $:DN)rK   r   r   rL   )r   rQ   )r   r   )r   r=   )r   re   ri   r	   rj   r   rk   r   rl   r.   rm   r   r   r   )r%   r&   r'   rP   rW   r[   r_   rS   propertyrd   rh   rs   r)   r"   r    rJ   rJ   R   s        3 3 3 33 3 3 3' ' ' '
* * * *
& & & & 
 
 
 X
 1 1 1 1$8 $8 $8 $8 $8 $8r"   rJ   c                      e Zd ZddZdS )ApolloTracingExtensionSyncri   r	   rj   r   rk   r   rl   r.   rm   r   c                   t          ||          r |||g|R i |S |                                 }t          t          |          |j        |j        |j        || j        z
            }	  |||g|R i ||                                 }||z
  |_        | j	        
                    |           S # |                                 }||z
  |_        | j	        
                    |           w xY wro   )r   rS   r+   r   r/   r-   r0   rT   r   rO   rp   )	r   ri   rj   rk   rl   rm   rT   rr   rV   s	            r    rs   z"ApolloTracingExtensionSync.resolve   s    ud++ 	65t5d555f555((**,#D))(((4+??
 
 
	85t5d555f55 HHJJM&3o&EN# ''7777 !HHJJM&3o&EN# ''7777s   +B0 0:C*Nrt   )r%   r&   r'   rs   r)   r"   r    rw   rw      s(        8 8 8 8 8 8r"   rw   )#
__future__r   dataclassesra   r   r   inspectr   typingr   r   r	   r
   r   r   r   strawberry.extensionsr   strawberry.extensions.utilsr   utilsr   graphqlr   rH   strawberry.types.executionr   	dataclassr   r+   r5   r=   rJ   rw   __all__r)   r"   r    <module>r      sZ   " " " " " "      ' ' ' ' ' ' ' '       P P P P P P P P P P P P P P P P P P 1 1 1 1 1 1 : : : : : : & & & & & & +******) <;;;;;; M M M M M M M M 
 
 
 
 
 
 
 
& R R R R R R R R 
 
 
 
 
 
 
 
*Q8 Q8 Q8 Q8 Q8_ Q8 Q8 Q8h8 8 8 8 8!7 8 8 8< $%A
Br"   