
    $g                     @    d dl mZ d dlmZ  G d de          ZdgZdS )    )Iterator)SchemaExtensionc                   :    e Zd ZdZdeddfdZded         fdZdS )MaxTokensLimitera  Add a validator to limit the number of tokens in a GraphQL document.

    Example:
    ```python
    import strawberry
    from strawberry.extensions import MaxTokensLimiter

    schema = strawberry.Schema(Query, extensions=[MaxTokensLimiter(max_token_count=1000)])
    ```

    The following things are counted as tokens:
    * various brackets: "{", "}", "(", ")"
    * colon :
    * words

    Not counted:
    * quotes
    max_token_countreturnNc                     || _         dS )zInitialize the MaxTokensLimiter.

        Args:
            max_token_count: The maximum number of tokens allowed in a GraphQL document.
        N)r   )selfr   s     `/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/strawberry/extensions/max_tokens.py__init__zMaxTokensLimiter.__init__   s      /    c              #   :   K   | j         | j        j        d<   d V  d S )N
max_tokens)r   execution_contextparse_options)r
   s    r   on_operationzMaxTokensLimiter.on_operation%   s&      =A=Q,\:r   )__name__
__module____qualname____doc__intr   r   r    r   r   r   r      sc         &	/	/ 
	/ 	/ 	/ 	/htn      r   r   N)typingr   $strawberry.extensions.base_extensionr   r   __all__r   r   r   <module>r      sb          @ @ @ @ @ @! ! ! ! ! ! ! !H 
r   