o
    tBh                     @   sR   d dl mZ ddlmZ ddlmZmZ ddlmZm	Z	 dgZ
G dd de	Zd	S )
    )Any   )GraphQLError)DocumentNodeOperationDefinitionNode   )ASTValidationContextASTValidationRuleLoneAnonymousOperationRulec                       sR   e Zd ZdZdef fddZdededdfd	d
Zde	deddfddZ
  ZS )r
   a  Lone anonymous operation

    A GraphQL document is only valid if when it contains an anonymous operation
    (the query short-hand) that it contains only that one operation definition.

    See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation
    contextc                    s   t  | d| _d S )Nr   )super__init__operation_count)selfr   	__class__ /var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/graphql/validation/rules/lone_anonymous_operation.pyr      s   
z#LoneAnonymousOperationRule.__init__node_argsreturnNc                 G   s   t dd |jD | _d S )Nc                 s   s    | ]}t |tV  qd S )N)
isinstancer   ).0
definitionr   r   r   	<genexpr>   s
    
z<LoneAnonymousOperationRule.enter_document.<locals>.<genexpr>)sumdefinitionsr   r   r   r   r   r   r   enter_document   s   z)LoneAnonymousOperationRule.enter_documentc                 G   s,   |j s| jdkr| td| d S d S d S )Nr   z<This anonymous operation must be the only defined operation.)namer   report_errorr   r   r   r   r   enter_operation_definition   s   z5LoneAnonymousOperationRule.enter_operation_definition)__name__
__module____qualname____doc__r   r   r   r   r   r   r!   __classcell__r   r   r   r   r
   
   s    N)typingr   errorr   languager   r    r   r	   __all__r
   r   r   r   r   <module>   s    