o
    tBh"                     @   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)DirectiveDefinitionNodeNameNodeVisitorActionSKIP   )SDLValidationContextSDLValidationRuleUniqueDirectiveNamesRulec                       s<   e Zd ZdZdef fddZdededefdd	Z	  Z
S )
r   znUnique directive names

    A GraphQL document is only valid if all defined directives have unique names.
    contextc                    s   t  | i | _|j| _d S )N)super__init__known_directive_namesschema)selfr   	__class__ /var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/graphql/validation/rules/unique_directive_names.pyr      s   z!UniqueDirectiveNamesRule.__init__node_argsreturnc                 G   sz   |j j}| jr| j|r| td| d|j  d S || jv r5| td| d| j| |j g tS |j | j|< tS )NzDirective '@z7' already exists in the schema. It cannot be redefined.z(There can be only one directive named '@z'.)namevaluer   get_directivereport_errorr   r   r	   )r   r   r   directive_namer   r   r   enter_directive_definition   s&   


z3UniqueDirectiveNamesRule.enter_directive_definition)__name__
__module____qualname____doc__r   r   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    