
    Xj                     8    d dl mZ d dlmZ  G d de      ZdgZy)    )Iterator)SchemaExtensionc                   2    e Zd ZdZdeddfdZded   fdZy)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                     || _         y)zInitialize the MaxTokensLimiter.

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