
    EvgP                     N    d dl mZmZmZ d dlmZ d dlmZ  G d de          ZdS )    )cc_delim_reget_conditional_responseset_response_etag)MiddlewareMixin)parse_http_date_safec                       e Zd ZdZd Zd ZdS )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                 6   |j         dk    r|S |                     |          r$|                    d          st          |           |                    d          }|                    d          }|o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        S/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/middleware/http.pyprocess_responsez)ConditionalGetMiddleware.process_response   s     >U""O??8$$ 	(X-@-@-H-H 	(h'''||F## _55%M*>}*M*M 	= 	++!	        c                     t          j        |                    dd                    }t          d |D                       S )z:Return True if an ETag header should be added to response.zCache-Control c              3   F   K   | ]}|                                 d k    V  dS )zno-storeN)lower).0headers     r   	<genexpr>z6ConditionalGetMiddleware.needs_etag.<locals>.<genexpr>(   s/      TTF6<<>>Z/TTTTTTr   )r   splitr   all)r   r   cache_control_headerss      r   r   z#ConditionalGetMiddleware.needs_etag%   s@     + 1(,,PR2S2S T TTT>STTTTTTr   N)__name__
__module____qualname____doc__r   r    r   r   r	   r	      sA           0U U U U Ur   r	   N)	django.utils.cacher   r   r   django.utils.deprecationr   django.utils.httpr   r	   r'   r   r   <module>r+      s    W W W W W W W W W W 4 4 4 4 4 4 2 2 2 2 2 2"U "U "U "U "U "U "U "U "U "Ur   