o
    tBh3                     @   s^   d dl mZmZ ddlmZ ddlmZmZmZm	Z	 ddl
mZmZ dgZG dd deZd	S )
    )AnyDict   )GraphQLError)NameNodeFragmentDefinitionNodeVisitorActionSKIP   )ASTValidationContextASTValidationRuleUniqueFragmentNamesRulec                       sR   e Zd ZdZdef fddZededefddZ	d	e
dedefd
dZ  ZS )r   zUnique fragment names

    A GraphQL document is only valid if all defined fragments have unique names.

    See https://spec.graphql.org/draft/#sec-Fragment-Name-Uniqueness
    contextc                    s   t  | i | _d S N)super__init__known_fragment_names)selfr   	__class__ /var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/graphql/validation/rules/unique_fragment_names.pyr      s   
z UniqueFragmentNamesRule.__init___argsreturnc                  G   s   t S r   )r	   )r   r   r   r   enter_operation_definition   s   z2UniqueFragmentNamesRule.enter_operation_definitionnodec                 G   sJ   | j }|jj}||v r| td| d|| |jg tS |j||< tS )Nz&There can be only one fragment named 'z'.)r   namevaluereport_errorr   r	   )r   r   r   r   fragment_namer   r   r   enter_fragment_definition   s   

z1UniqueFragmentNamesRule.enter_fragment_definition)__name__
__module____qualname____doc__r   r   staticmethodr   r   r   r   r    __classcell__r   r   r   r   r   
   s    N)typingr   r   errorr   languager   r   r   r	    r   r   __all__r   r   r   r   r   <module>   s    