B
    ùÿU6  ã               @   s0   d Z ddlmZ ddlmZ G dd„ deƒZdS )a£  
    werkzeug.contrib.limiter
    ~~~~~~~~~~~~~~~~~~~~~~~~

    A middleware that limits incoming data.  This works around problems with
    Trac_ or Django_ because those directly stream into the memory.

    .. _Trac: http://trac.edgewall.org/
    .. _Django: http://www.djangoproject.com/

    :copyright: (c) 2014 by the Werkzeug Team, see AUTHORS for more details.
    :license: BSD, see LICENSE for more details.
é    )Úwarn)ÚLimitedStreamc               @   s"   e Zd ZdZddd„Zdd„ ZdS )	ÚStreamLimitMiddlewarea@  Limits the input stream to a given number of bytes.  This is useful if
    you have a WSGI application that reads form data into memory (django for
    example) and you don't want users to harm the server by uploading tons of
    data.

    Default is 10MB

    .. versionchanged:: 0.9
       Deprecated middleware.
    é    c             C   s   t tdƒƒ || _|| _d S )NzThis middleware is deprecated)r   ÚDeprecationWarningÚappÚmaximum_size)Úselfr   r   © r
   ú7lib/python3.7/site-packages/werkzeug/contrib/limiter.pyÚ__init__!   s    zStreamLimitMiddleware.__init__c             C   s8   t | jt| d¡pdƒƒ}t|d |ƒ|d< |  ||¡S )NZCONTENT_LENGTHr   z
wsgi.input)Úminr   ÚintÚgetr   r   )r	   ÚenvironZstart_responseÚlimitr
   r
   r   Ú__call__&   s    zStreamLimitMiddleware.__call__N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r
   r
   r
   r   r      s   
r   N)r   Úwarningsr   Zwerkzeug.wsgir   Úobjectr   r
   r
   r
   r   Ú<module>   s   