
    Xj}                     \   U 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mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!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-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\ dd	l]m]Z] d
dgZ^	 	 ddeHdede_de_deHf
dZ` G d d      Zai e\e[Zbe
eceeAeDf   f   edd<   deeeeeef   deec   fdZedee#e$f   deec   fdZfdede_fdZgy)    )defaultdict)partial)
Any
CollectionDefaultDictDictListMappingOptionalTupleUnioncast   )DirectiveDefinitionNodeDirectiveExtensionNodeDirectiveLocationDocumentNodeEnumTypeDefinitionNodeEnumTypeExtensionNodeEnumValueDefinitionNodeFieldDefinitionNodeInputObjectTypeDefinitionNodeInputObjectTypeExtensionNodeInputValueDefinitionNodeInterfaceTypeDefinitionNodeInterfaceTypeExtensionNodeListTypeNodeNamedTypeNodeNonNullTypeNodeObjectTypeDefinitionNodeObjectTypeExtensionNodeOperationTypeScalarTypeDefinitionNodeScalarTypeExtensionNodeSchemaExtensionNodeSchemaDefinitionNodeTypeDefinitionNodeTypeExtensionNodeTypeNodeUnionTypeDefinitionNodeUnionTypeExtensionNode)inspectmerge_kwargs)-GraphQLArgumentGraphQLArgumentMapGraphQLDeprecatedDirectiveGraphQLDirectiveGraphQLEnumTypeGraphQLEnumValueGraphQLEnumValueMapGraphQLFieldGraphQLFieldMapGraphQLInputFieldGraphQLInputObjectTypeGraphQLInputObjectTypeKwargsGraphQLInputTypeGraphQLInputFieldMapGraphQLInterfaceTypeGraphQLInterfaceTypeKwargsGraphQLListGraphQLNamedTypeGraphQLNonNullGraphQLNullableTypeGraphQLObjectTypeGraphQLObjectTypeKwargsGraphQLOutputTypeGraphQLScalarTypeGraphQLSchemaGraphQLSchemaKwargsGraphQLSpecifiedByDirectiveGraphQLOneOfDirectiveGraphQLTypeGraphQLUnionTypeGraphQLUnionTypeKwargsassert_schemais_enum_typeis_input_object_typeis_interface_typeis_list_typeis_non_null_typeis_object_typeis_scalar_typeis_specified_directiveis_union_typeis_introspection_typeis_specified_scalar_typeintrospection_typesspecified_scalar_types   )value_from_astextend_schemaExtendSchemaImplschemadocument_astassume_validassume_valid_sdlreturnc                     t        |        t        |t              st        d      |s|sddlm}  |||        | j                         }t        j                  |||      }||u r| S t        di |S )aO  Extend the schema with extensions from a given document.

    Produces a new schema given an existing schema and a document which may contain
    GraphQL type extensions and definitions. The original schema will remain unaltered.

    Because a schema represents a graph of references, a schema cannot be extended
    without effectively making an entire copy. We do not know until it's too late if
    subgraphs remain unchanged.

    This algorithm copies the provided schema, applying extensions while producing the
    copy. The original schema remains unaltered.

    When extending a schema with a known valid extension, it might be safe to assume the
    schema is valid. Set ``assume_valid`` to ``True`` to assume the produced schema is
    valid. Set ``assume_valid_sdl`` to ``True`` to assume it is already a valid SDL
    document.
    z Must provide valid Document AST.r   )assert_valid_sdl_extension )
rM   
isinstancer   	TypeErrorvalidation.validatere   	to_kwargsr^   extend_schema_argsrF   )r_   r`   ra   rb   re   schema_kwargsextended_kwargss          l/var/www/html/myl_app/scheduler-service/venv/lib/python3.12/site-packages/graphql/utilities/extend_schema.pyr]   r]   f   s{    . &lL1:;;,D"<8$$&M&99|\O  ?28E8X8X    c            
          e Zd ZU dZeeef   ed<   eeef   ed<   eee	e
   f   ed<   deeef   deee	e
   f   fdZe	 d;dededed	efd
       Zded	efdZded	efdZded	efdZded	efdZded	efdZdedeedf   d	efdZded	efdZded	efdZde d	e fdZ!de"deedf   d	e	e#   fdZ$de"deedf   d	e%fdZ&de'd	e'fdZ(de)deedf   d	e	e#   fdZ*de)deedf   d	e%fdZ+de#d	e#fdZ,de-deedf   d	e	e'   fdZ.de/d	e/fd Z0d!e1d	e1fd"Z2d#e3d	e3fd$Z4d%e5e6e7e8f      d	ee9ef   fd&Z:d'e;d	efd(Z<d'e=d	efd)Z>d'e?d	efd*Z@d%e5e6eAeBeCeDf      d	e%fd+ZEd,eFe5eG      d	eHfd-ZId%e5e6eJeKf      d	efd.ZLeMd%e5e6eNeOf      d	ePfd/       ZQd%e5e6eAeBeCeDf      d	e	e#   fd0ZRd%e5e6eSeTf      d	e	e'   fd1ZUd2eCd	e'fd3ZVd2eAd	e#fd4ZWd2eNd	efd5ZXd2eSd	e/fd6ZYd2eZd	e fd7Z[d2eJd	efd8Z\d2e]d	efd9Z^y:)<r^   zHelper class implementing the methods to extend a schema.

    Note: We use a class instead of an implementation with local functions
    and lambda functions so that the extended schema can be pickled.

    For internal use only.
    type_maptype_extensions_mapdirective_extensions_mapc                 .    i | _         || _        || _        y N)rq   rr   rs   )selfrr   rs   s      rn   __init__zExtendSchemaImpl.__init__   s    
 #6 (@%ro   rl   r`   ra   rc   c                    g }t        t              }t        t              }g }d}g }	|j                  D ]  }
t        |
t              r|
}t        |
t
              r|	j                  |
       8t        |
t              r|j                  |
       Zt        |
t              r+|
j                  j                  }||   j                  |
       t        |
t              r|j                  |
       t        |
t              s|
j                  j                  }||   j                  |
        |s|s
|s|s|	s|s|S  | ||      |d   xs dD ]*  }j                  |      j                  |j                  <   , |D ]M  }|j                  j                  }t        j!                  |      xs j#                  |      j                  |<   O |d   D ci c]  }|j                  j%                  |        }}i }t&        D ](  }||j                     }|sj)                  |      ||<   * |r!|j+                  j-                  |g             |	r |j+                  j-                  |	             |j                   }|r"|j.                  r|j.                  j                  nd}||d   }t1         |t&        j2                         |t&        j4                         |t&        j6                        t9        j                  j;                               t9        fd|j;                         D              t9        fd|D              z   ||d   |xs |d	   |d
   t9        |	      z   |
      S c c}w )zqExtend the given schema arguments with extensions from a given document.

        For internal use only.
        Ntypesrf   
directivesdescriptionc              3   @   K   | ]  }j                  |        y wru   )replace_directive.0	directiverv   s     rn   	<genexpr>z6ExtendSchemaImpl.extend_schema_args.<locals>.<genexpr>  s$       &&y1   c              3   @   K   | ]  }j                  |        y wru   )build_directiver~   s     rn   r   z6ExtendSchemaImpl.extend_schema_args.<locals>.<genexpr>  s     T	D((3Tr   
extensionsast_nodeextension_ast_nodes)
querymutationsubscriptionry   rz   r{   r   r   r   ra   )r   listdefinitionsrg   r&   r%   appendr'   r(   namevaluer   r   extend_named_typerq   std_type_mapget
build_typeextend_directiver"   replace_named_typeupdateget_operation_typesr{   rG   QUERYMUTATIONSUBSCRIPTIONtuplevalues)clsrl   r`   ra   	type_defsrr   rs   directive_defs
schema_defschema_extensionsdef_extended_type_nameextended_directive_nameexisting_type	type_noder   existing_directivedirective_mapoperation_typesoperation_typeoriginal_typeget_operationr{   rv   s                          @rn   rk   z#ExtendSchemaImpl.extend_schema_args   sa    /1	5@5F 	! 9;59
79 ,, 	OD$ 45!
D"56!((.D"45  &D"34%)YY__"#$67>>tDD"9:%%d+D"89*.))//'()@AHHN	O& $,"%  &(@A*739r 	VM040F0F}0UDMM-,,-	V" 	WI>>''D"."2"24"8"VDOOI<VDMM$	W '4L&A6
" ##T%:%:;M%NN6
 6
 BD+ 	YN).*>*>?M262I2I-2X/	Y
 ""4#;#;ZL#IJ""4#;#;<M#NO (++ j44 ""(( 	
 '6K" 3 34"=#9#9:&}'A'AB,,./ !.!5!5!7  T^TT	U
 $$\2<=#< -.C D%&!'%
 	
56
s   #M$type_c                     t        |      r$t        | j                  |j                              S t	        |      r$t        | j                  |j                              S | j                  |      S ru   )rQ   r>   replace_typeof_typerR   r@   r   rv   r   s     rn   r   zExtendSchemaImpl.replace_type  sW    t00?@@E"!$"3"3EMM"BCC&&u--ro   c                 4    | j                   |j                     S ru   )rq   r   r   s     rn   r   z#ExtendSchemaImpl.replace_named_type  s     }}UZZ((ro   r   c                     t        |      r|S |j                         }t        di t        ||d   j	                         D ci c]  \  }}|| j                  |       c}}      S c c}}w )Nargs)r   rf   )rU   rj   r1   r-   items
extend_arg)rv   r   kwargsr   args        rn   r}   z"ExtendSchemaImpl.replace_directive  sr    !),$$& 
@Fv@T@T@V3<4D$//#..
 	
s   A(c           
          |j                         }t        | j                  |d            }|d   }|t        d d |D        D        d       }t	        di t        |||d   |z         S )Nr   deprecation_reasonc              3   $   K   | ]  }|| 
 y wru   rf   r   reasons     rn   r   z4ExtendSchemaImpl.extend_directive.<locals>.<genexpr>2        )    c              3   2   K   | ]  }t        |        y wru   get_deprecation_reasonr   exts     rn   r   z4ExtendSchemaImpl.extend_directive.<locals>.<genexpr>4       "U3#9##>"U   r   )r   r   rf   )rj   r   rs   nextr1   r-   )rv   r   r   r   r   s        rn   r   z!ExtendSchemaImpl.extend_directive,  s    $$&488HI
#$89%!%"U*"U
 "   
#5$*+@$AJ$N
 	
ro   c                 r   t        |      st        |      r|S t        |      r!t        t        |      }| j                  |      S t        |      r!t        t        |      }| j                  |      S t        |      r!t        t        |      }| j                  |      S t        |      r!t        t        |      }| j                  |      S t        |      r!t        t         |      }| j#                  |      S t%        |      r!t        t&        |      }| j)                  |      S t+        dt-        |       d      )NzUnexpected type: .)rW   rX   rT   r   rE   extend_scalar_typerS   rB   extend_object_typerP   r<   extend_interface_typerV   rK   extend_union_typerN   r2   extend_enum_typerO   r8   extend_input_object_typerh   r,   r   s     rn   r   z"ExtendSchemaImpl.extend_named_typeA  s    '+CE+JL% *E2E**511% *E2E**511U#-u5E--e44)51E))%00%0E((//&/7E0077 +GEN+;1=>>ro   r   r   .c                     i |d   j                         D ci c]C  \  }}|t        di t        |j                         | j	                  |j
                              E c}}| j                  |      S c c}}w )Nfieldsr   rf   )r   r7   r-   rj   r   typebuild_input_field_maprv   r   r   r   fields        rn   extend_input_object_type_fieldsz0ExtendSchemaImpl.extend_input_object_type_fields[  s    
 $*(#3#9#9#;  D% ' ")"//

; 
 ((4
 	
s   AA6c                     |j                         }t        | j                  |d            }t        di t	        |t        | j                  ||      |d   |z         S )Nr   r   )r   r   rf   )rj   r   rr   r8   r-   r   r   rv   r   r   r   s       rn   r   z)ExtendSchemaImpl.extend_input_object_typel  sk     "433F6NCD
% 
88&* %++@$AJ$N
 	
ro   c                     |j                         }t        | j                  |d            }t        di t	        |i |d   | j                  |      |d   |z         S )Nr   r   r   )r   r   rf   )rj   r   rr   r2   r-   build_enum_value_mapr   s       rn   r   z!ExtendSchemaImpl.extend_enum_type}  so    "433F6NCD
 
T&*Td.G.G
.ST$*+@$AJ$N
 	
ro   c           
          |j                         }t        | j                  |d            }|d   }|D ]  }t        |      xs |} t	        di t        |||d   |z         S )Nr   specified_by_urlr   )r   r   rf   )rj   r   rr   get_specified_by_urlrE   r-   )rv   r   r   r   r   extension_nodes         rn   r   z#ExtendSchemaImpl.extend_scalar_type  s    "433F6NCD
!"45( 	XN3NCWGW	X ! 
!1$*+@$AJ$N
 	
ro   c           	          |d   D cg c]!  }t        t        | j                  |            # c}| j                  |      z   S c c}w N
interfacesr   r<   r   build_interfacesrv   r   r   	interfaces       rn   extend_object_type_interfacesz.ExtendSchemaImpl.extend_object_type_interfaces  Q    
 $L1
 %t'>'>y'IJ
 !!*-. 	. 
   &Ac           	          i |d   j                         D ci c]  \  }}|| j                  |       c}}| j                  |      S c c}}w Nr   r   extend_fieldbuild_field_mapr   s        rn   extend_object_type_fieldsz*ExtendSchemaImpl.extend_object_type_fields  e    
 $*(#3#9#9#;D% d''..

 "":.
 	
   A
c                     |j                         }t        | j                  |d            }t        di t	        |t        | j                  ||      t        | j                  ||      |d   |z         S Nr   r   )r   r   r   rf   )rj   r   rr   rB   r-   r   r   r   r   s       rn   r   z#ExtendSchemaImpl.extend_object_type  s{    "433F6NCD
  	
"66
 t==vzR$*+@$AJ$N	
 		
ro   c           	          |d   D cg c]!  }t        t        | j                  |            # c}| j                  |      z   S c c}w r   r   r   s       rn    extend_interface_type_interfacesz1ExtendSchemaImpl.extend_interface_type_interfaces  r   r   c           	          i |d   j                         D ci c]  \  }}|| j                  |       c}}| j                  |      S c c}}w r   r   r   s        rn   extend_interface_type_fieldsz-ExtendSchemaImpl.extend_interface_type_fields  r   r   c                     |j                         }t        | j                  |d            }t        di t	        |t        | j                  ||      t        | j                  ||      |d   |z         S r   )rj   r   rr   r<   r-   r   r   r   r   s       rn   r   z&ExtendSchemaImpl.extend_interface_type  s}     "433F6NCD
# 	
"996: t@@&*U$*+@$AJ$N	
 		
ro   c           	          |d   D cg c]!  }t        t        | j                  |            # c}| j                  |      z   S c c}w )Nry   )r   rB   r   build_union_types)rv   r   r   member_types       rn   extend_union_type_typesz(ExtendSchemaImpl.extend_union_type_types  sP    
  &g
 "D$;$;K$HI
 "":./ 	/ 
r   c                     |j                         }t        | j                  |d            }t        di t	        |t        | j                  ||      |d   |z         S )Nr   r   )ry   r   rf   )rj   r   rr   rK   r-   r   r   r   s       rn   r   z"ExtendSchemaImpl.extend_union_type  sd    "433F6NCD
 
d::FJO$*+@$AJ$N
 	
ro   r   c                     t        di t        |j                         | j                  |j                        |j
                  j                         D ci c]  \  }}|| j                  |       c}}      S c c}}w )N)r   r   rf   )r5   r-   rj   r   r   r   r   r   )rv   r   r   r   s       rn   r   zExtendSchemaImpl.extend_field  sk     
!''

3BG**BRBRBTUYT3dDOOC00U
 	
 Vs   A:r   c           
      |    t        di t        |j                         | j                  |j                              S )Nr   rf   )r.   r-   rj   r   r   )rv   r   s     rn   r   zExtendSchemaImpl.extend_arg  s7     
''1
 	
ro   nodesc           	          |D ci c]=  }|j                   xs g D ](  }|j                  | j                  |j                        * ? c}}S c c}}w ru   )r   	operationget_named_typer   )rv   r   noder   s       rn   r   z$ExtendSchemaImpl.get_operation_types  s`     
"&"6"6"<"
  $$d&9&9.:M:M&NN
$
 	
 
s   AAr  c                     |j                   j                  }t        j                  |      xs | j                  j                  |      }|st        d| d      |S )NzUnknown type: 'z'.)r   r   r   r   rq   rh   )rv   r  r   r   s       rn   r  zExtendSchemaImpl.get_named_type  sO    yy  &A$--*;*;D*AodV2677ro   c                 ,   t        |t              r$t        | j                  |j                              S t        |t
              r2t        t        t        | j                  |j                                    S | j                  t        t        |            S ru   )rg   r   r>   get_wrapped_typer   r   r@   r   rA   r  r   )rv   r  s     rn   r  z!ExtendSchemaImpl.get_wrapped_type  sq    dL)t44TYY?@@dO,!($*?*?		*JK  ""4t#<==ro   c           
         |j                   D cg c]  }t        |j                      }}t        | j                  j
                  j                           }t        |      }|t        d d |D        D        d       }t        |j
                  j                  |j                  r|j                  j                  nd ||j                  | j                  |j                        |||      S c c}w )Nc              3   $   K   | ]  }|| 
 y wru   rf   r   s     rn   r   z3ExtendSchemaImpl.build_directive.<locals>.<genexpr>,  r   r   c              3   2   K   | ]  }t        |        y wru   r   r   s     rn   r   z3ExtendSchemaImpl.build_directive.<locals>.<genexpr>.  r   r   )r   r{   	locationsis_repeatabler   r   r   r   )r  r   r   r   rs   r   r   r   r1   r{   
repeatablebuild_argument_map	arguments)rv   r  r  r   r   s        rn   r   z ExtendSchemaImpl.build_directive&  s    ?C~~Nt&tzz2N	N488IJ
3D9%!%"U*"U
 "  262B2B((..//((81 *	
 		
 Os   C*c           
      f   i }|D ]  }|j                   xs g D ]  }t        t        t        | j	                  |j
                              |j                  r|j                  j                  nd | j                  |j                        t        |      |      ||j                  j                  <     |S )N)r   r{   r   r   r   )r   r5   r   rD   r  r   r{   r   r  r  r   r   )rv   r   	field_mapr  r   s        rn   r   z ExtendSchemaImpl.build_field_map?  s     &(	 	D* 
 /;0$2G2G

2ST;@;L;L 1 1 7 7RV00A'=e'D"/	%****+	
	 ro   r   c           	      >   i }|xs g D ]  }t        t        | j                  |j                              }t	        ||j
                  r|j
                  j                  nd t        |j                  |      t        |      |      ||j                  j                  <    |S N)r   r{   default_valuer   r   )r   r:   r  r   r.   r{   r   r\   r  r   r   )rv   r   arg_mapr   r   s        rn   r  z#ExtendSchemaImpl.build_argument_mapY  s     '):2 	C )4+@+@+JKE&558__COO11$,S->->F#9##>'GCHHNN#	 ro   c           
      `   i }|D ]  }|j                   xs g D ]  }t        t        | j                  |j                              }t        ||j                  r|j                  j                  nd t        |j                  |      t        |      |      ||j                  j                  <     |S r  )r   r   r:   r  r   r7   r{   r   r\   r  r   r   )rv   r   input_field_mapr  r   r   s         rn   r   z&ExtendSchemaImpl.build_input_field_mapl  s     13 	D*  -t/D/DUZZ/PQ4E;@;L;L 1 1 7 7RV"01D1De"L'=e'D"5

 0 01	 ro   c           	          i }| D ]j  }|j                   xs g D ]U  }|j                  j                  }t        ||j                  r|j                  j                  nd t        |      |      ||<   W l |S )N)r   r{   r   r   )r   r   r   r3   r{   r   )r   enum_value_mapr  r   
value_names        rn   r   z%ExtendSchemaImpl.build_enum_value_map  s     /1 	D* 
 #ZZ--
-=$;@;L;L 1 1 7 7RV'=e'D"	.z*
	 ro   c                     |D cg c]6  }|j                   xs g D ]!  }t        t        | j                  |            # 8 c}}S c c}}w ru   )r   r   r<   r  rv   r   r  r   s       rn   r   z!ExtendSchemaImpl.build_interfaces  sU      
.B
  %t':':5'AB
B
 	
 
   ;Ac                     |D cg c]6  }|j                   xs g D ]!  }t        t        | j                  |            # 8 c}}S c c}}w ru   )ry   r   rB   r  r  s       rn   r   z"ExtendSchemaImpl.build_union_types  sU     
)r
  "D$7$7$>?
?
 	
 
r  r   c           	      0   | j                   |j                  j                     }|g|}t        |j                  j                  |j                  r|j                  j                  nd t        | j                  |      t        | j                  |      ||      S N)r   r{   r   r   r   r   )rr   r   r   rB   r{   r   r   r   rv   r   extension_nodes	all_nodess       rn   build_object_typez"ExtendSchemaImpl.build_object_type  s     228==3F3FGU
U
	 !$$6>6J6J,,22PTt44i@4//; /
 	
ro   c           	      0   | j                   |j                  j                     }|g|}t        |j                  j                  |j                  r|j                  j                  nd t        | j                  |      t        | j                  |      ||      S r   )rr   r   r   r<   r{   r   r   r   r!  s       rn   build_interface_typez%ExtendSchemaImpl.build_interface_type  s     228==3F3FG (( 	 $$$6>6J6J,,22PTt44i@4//; /
 	
ro   c                     | j                   |j                  j                     }|g|}t        |j                  j                  |j                  r|j                  j                  nd | j                  |      ||      S )N)r   r{   r   r   r   )rr   r   r   r2   r{   r   r!  s       rn   build_enum_typez ExtendSchemaImpl.build_enum_type  sz    228==3F3FGQ
Q
	 $$6>6J6J,,22PT,,Y7 /
 	
ro   c                    | j                   |j                  j                     }|g|}t        |j                  j                  |j                  r|j                  j                  nd t        | j                  |      ||      S )N)r   r{   ry   r   r   )rr   r   r   rK   r{   r   r   r!  s       rn   build_union_typez!ExtendSchemaImpl.build_union_type  s|    228==3F3FGS
S
	  $$6>6J6J,,22PT$00)< /
 	
ro   c                     | j                   |j                  j                     }t        |j                  j                  |j                  r|j                  j                  nd t        |      ||      S )N)r   r{   r   r   r   )rr   r   r   rE   r{   r   )rv   r   r"  s      rn   build_scalar_typez"ExtendSchemaImpl.build_scalar_type  s`     228==3F3FG $$6>6J6J,,22PT1(; /
 	
ro   c           
         | j                   |j                  j                     }|g|}t        |j                  j                  |j                  r|j                  j                  nd t        | j                  |      ||t        |            S )N)r   r{   r   r   r   	is_one_of)rr   r   r   r8   r{   r   r   r.  r!  s       rn   build_input_object_typez(ExtendSchemaImpl.build_input_object_type   s     228==3F3FG (( 	 &$$6>6J6J,,22PT455yA /)
 	
ro   c                    |j                   }	 |j                  d      }	 t	        | d|       } ||      S # t        $ r |j                  d      r|d d }Y 9w xY w# t        $ r t        dt        |       d      w xY w)N_definitionibuild_z!Unexpected type definition node: r   )kindremovesuffixAttributeErrorendswithgetattrrh   r,   )rv   r   r3  builds       rn   r   zExtendSchemaImpl.build_type  s    }}	"$$]3D	DF4&/2E X  	"}}]+DSz	"
  	3GH4E3FaH 	s   7 A AA"A>N)F)___name__
__module____qualname____doc__r   strr?   __annotations__r   r	   r   rw   classmethodrG   r   boolrk   rJ   r   r   r1   r}   r   r   r9   r   r;   r   r8   r   r2   r   rE   r   rC   r<   r   r6   r   rB   r   r=   r   r   r   rL   r   rK   r   r5   r   r.   r   r   r   r&   r%   r"   r   r   r  r)   r  r   r   r   r   r    r!   r   r   r   r/   r  r   r   r   staticmethodr   r   r4   r   r   r*   r+   r   r$  r&  r(  r*  r#   r,  r/  r'   r   rf   ro   rn   r^   r^      s    3(())c3h'"3-C(D#DEEA!#s(^A #'sD1G,H'H"IA 
 #	f
*f
 #f
 	f

 
f
 f
R.+ .+ .)(8 )=M )
+; 
@P 

*: 
?O 
*?'7 ?<L ?4
2
@Ec3h
	
"
%
 
 
"

o 

/ 


(9 
>O 
 .-.;@c?.	"	#.	
-	
;@c?	
		

(9 
>O 
.0.>CCHo.	"	#.	
0	
>CCHo	
		

)
	
"/,/:?S//		 /

'7 

<L 


, 
< 

o 
/ 


&:<O&O PQ

	m--	.

= 5E >X >+ >
$; 
@P 
2+*(')
 
4z":;< 
&/1MMN

 
, % 68M MNO	 $
+*(')

 
"	#
(
% 79O OPQ
 
	 

0
	
"
-
 

"
(> 
? 

)@ 
EU 


0

	


/
 
 
"#5 :J ro   r   r  c                 :    ddl m}  |t        |       }|r|d   S dS )zCGiven a field or enum value node, get deprecation reason as string.r   get_directive_valuesr   N)	executionrD  r0   )r  rD  
deprecateds      rn   r   r   (  s&     1%&@$GJ#-:h747ro   c                 :    ddl m}  |t        |       }|r|d   S dS )zDGiven a scalar node, return the string value for the specifiedByURL.r   rC  urlN)rE  rD  rH   )r  rD  r   s      rn   r   r   8  s(     1+,GN&6E"@D@ro   c                 ,    ddl m}  |t        |       duS )z@Given an input object node, returns if the node should be OneOf.r   rC  N)rE  rD  rI   )r  rD  s     rn   r.  r.  B  s    0 5t<DHHro   N)FF)hcollectionsr   	functoolsr   typingr   r   r   r   r	   r
   r   r   r   r   languager   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   pyutilsr,   r-   r   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r\   __all__r@  r]   r^   r   r=  r>  r   r   r.  rf   ro   rn   <module>rP     s   #          < ,. . . . . . . . . . . .^ +  "	''' ' 	'
 'TO
 O
dJJJgc5!13D!DEEF 8
 		 8 c]8 A
(*AA
BAc]AI1 Id Iro   