
    gP                     F    d dl mZmZmZ d dlmZ d dlmZ  G d de      Zy)    )cc_delim_reget_conditional_responseset_response_etag)MiddlewareMixin)parse_http_date_safec                       e Zd ZdZd Zd Zy)ConditionalGetMiddlewarez
    Handle conditional GET operations. If the response has an ETag or
    Last-Modified header and the request has If-None-Match or If-Modified-Since,
    replace the response with HttpNotModified. Add an ETag header if needed.
    c                 
   |j                   dk7  r|S | j                  |      r|j                  d      st        |       |j	                  d      }|j	                  d      }|xr t        |      }|s|rt        ||||      S |S )NGETETagzLast-Modified)etaglast_modifiedresponse)method
needs_etag
has_headerr   getr   r   )selfrequestr   r   r   s        n/var/www/python.vincentserveurtest.ovh/public_html/venv/lib/python3.12/site-packages/django/middleware/http.pyprocess_responsez)ConditionalGetMiddleware.process_response   s     >>U"O??8$X-@-@-Hh'||F# _5%M*>}*M=++!	      c                 p    t        j                  |j                  dd            }t        d |D              S )z:Return True if an ETag header should be added to response.zCache-Control c              3   B   K   | ]  }|j                         d k7    yw)zno-storeN)lower).0headers     r   	<genexpr>z6ConditionalGetMiddleware.needs_etag.<locals>.<genexpr>(   s     T>SF6<<>Z/>Ss   )r   splitr   all)r   r   cache_control_headerss      r   r   z#ConditionalGetMiddleware.needs_etag%   s1     + 1 1(,,PR2S TT>STTTr   N)__name__
__module____qualname____doc__r   r    r   r   r	   r	      s    0Ur   r	   N)	django.utils.cacher   r   r   django.utils.deprecationr   django.utils.httpr   r	   r'   r   r   <module>r+      s    W W 4 2"U "Ur   