shell bypass 403
U
��.e� � @ s� d dl Z d dlZd dlmZmZmZ d dlmZmZ dZddd�Z dd� Z
G d d
� d
e�ZG dd� de�Z
G d
d� de�ZG dd� de�ZdS )� N)�
formatdate� parsedate�parsedate_tz)�datetime� timedeltaz%a, %d %b %Y %H:%M:%S GMTc C s |p
t �� }|| S �N)r Zutcnow)�delta�date� r
�G/usr/lib/python3.8/site-packages/pip/_vendor/cachecontrol/heuristics.py�expire_after s r c C s t t�| �� ��S r )r �calendar�timegmZ timetuple)Zdtr
r
r �datetime_to_header s r c @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�
BaseHeuristicc C s dS )a!
Return a valid 1xx warning header value describing the cache
adjustments.
The response is provided too allow warnings like 113
http://tools.ietf.org/html/rfc7234#section-5.5.4 where we need
to explicitly say response is over 24 hours old.
z110 - "Response is Stale"r
��self�responser
r
r �warning s zBaseHeuristic.warningc C s i S )z�Update the response headers with any new headers.
NOTE: This SHOULD always include some Warning header to
signify that the response was cached by the client, not
by way of the provided headers.
r
r r
r
r �update_headers! s zBaseHeuristic.update_headersc C s@ | � |�}|r<|j�|� | �|�}|d k r<|j�d|i� |S )N�Warning)r �headers�updater )r r Zupdated_headersZwarning_header_valuer
r
r �apply* s
zBaseHeuristic.applyN)�__name__�
__module__�__qualname__r r r r
r
r
r r s r c @ s e Zd ZdZdd� ZdS )�OneDayCachezM
Cache the response by providing an expires 1 day in the
future.
c C sR i }d|j krNt|j d �}ttdd�t|d d� � d�}t|�|d<