OwlCyberSecurity - MANAGER
Edit File: adapter.cpython-39.pyc
a )��e� � @ s` d dl Z d dlZd dlZd dlmZ ddlmZmZ ddlm Z ddl mZ G dd� de�ZdS ) � N)�HTTPAdapter� )�CacheController�PERMANENT_REDIRECT_STATUSES)� DictCache)�CallbackFileWrapperc sN e Zd Zh d�Zd � fdd� Zd� fdd� Zd� fd d � Z� fdd�Z� ZS )�CacheControlAdapter> �PUT�DELETE�PATCHNTc sX t t| �j|i |�� |d u r$t� n|| _|| _|p6d| _|p@t} | | j||d�| _d S )N)�GET)�cache_etags� serializer) �superr �__init__r �cache� heuristic�cacheable_methodsr � controller) �selfr r �controller_classr r r �args�kwZcontroller_factory�� __class__� �a/home/gouroczh/virtualenv/pat/3.9/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.pyr s �zCacheControlAdapter.__init__c s� |p| j }|j|v rfz| j�|�}W n tjy< d}Y n0 |rR| j||dd�S |j�| j� |�� t t| �j|fi |��}|S )z� Send a request. Use the request information to see if it exists in the cache and cache the response if we need to and can. NT)� from_cache) r �methodr Zcached_request�zlib�error�build_response�headers�updateZconditional_headersr r �send)r �requestr r � cacheable�cached_response�respr r r r$ ( s zCacheControlAdapter.sendFc s |p| j }|s�|j|v r�| jr*| j�|�}|jdkrh| j�||�}||urNd}|jdd� |�� |}n`t |j�t v r�| j�||� nBt|j t�| jj||��|_ |jr�|j� � fdd�}t�||�|_tt| ��||�}|j| jv �r |j�r | j�|j�} | j�| � ||_|S )z� Build a response by making a request or using the cache. This will end up calling send and returning a potentially cached response i0 TF)�decode_contentc s � � | j dkr| j�� d S )Nr )� chunk_left�_fp�_close�r �Zsuper_update_chunk_lengthr r �_update_chunk_lengthr s z@CacheControlAdapter.build_response.<locals>._update_chunk_length)r r r �apply�statusr Zupdate_cached_response�read�release_conn�intr Zcache_responser r+ � functools�partial�chunkedr/ �types� MethodTyper r r! �invalidating_methods�ok� cache_url�urlr �deleter ) r r% �responser r r&