o
    tBhA                     @   sb   d dl mZ d dlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ d	gZG d
d	 d	eZdS )    )
attrgetter)Any   )GraphQLError)OperationDefinitionNode)group_by   )ASTValidationRuleUniqueVariableNamesRulec                   @   s&   e Zd ZdZdededdfddZdS )r
   zjUnique variable names

    A GraphQL operation is only valid if all its variables are uniquely named.
    node_argsreturnNc                 G   sX   |j }t|td}| D ]\}}t|dkr)| td| ddd |D  qd S )Nzvariable.name.valuer   z'There can be only one variable named '$z'.c                 S   s   g | ]}|j jqS  )variablename).0r   r   r   /var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/graphql/validation/rules/unique_variable_names.py
<listcomp>    s    zFUniqueVariableNamesRule.enter_operation_definition.<locals>.<listcomp>)variable_definitionsr   r   itemslenreport_errorr   )selfr   r   r   seen_variable_definitionsvariable_namevariable_nodesr   r   r   enter_operation_definition   s   
z2UniqueVariableNamesRule.enter_operation_definition)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r
      s    N)operatorr   typingr   errorr   languager   pyutilsr    r	   __all__r
   r   r   r   r   <module>   s    