관리-도구
편집 파일: adapter.cpython-38.opt-1.pyc
U ��.e� � @ s\ d dl Z d dlZd dlZd dlmZ ddlmZ ddlmZ ddl m Z G dd� de�ZdS ) � N)�HTTPAdapter� )�CacheController)� DictCache)�CallbackFileWrapperc sN e Zd ZddhZd� fdd� Zd� fdd� Zd� fd d� Z� fdd �Z� ZS )�CacheControlAdapterZPUTZDELETENTc sL t t| �j||� |pt� | _|| _|p*d| _|p4t} | | j||d�| _d S )N)ZGET)�cache_etags� serializer) �superr �__init__r �cache� heuristic�cacheable_methodsr � controller) �selfr r Zcontroller_classr r r �args�kwZcontroller_factory�� __class__� �D/usr/lib/python3.8/site-packages/pip/_vendor/cachecontrol/adapter.pyr s �zCacheControlAdapter.__init__c s� |p| j }|j|krhz| j�|�}W n tjk r> d}Y nX |rT| j||dd�S |j�| j� |�� t t| �j|f|�}|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_responseZheaders�updateZconditional_headersr r �send)r �requestr r � cacheable�cached_response�respr r r r $ s zCacheControlAdapter.sendFc s |p| j }|s�|j|kr�| jr*| j�|�}|jdkrh| j�||�}||k rNd}|jdd� |�� |}n\|jdkr�| j� ||� nBt |jt� | jj ||��|_|jr�|j� � fdd�}t�||�|_tt| ��||�}|j| jk�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)Zdecode_contenti- c s � � | j dkr| j�� d S )Nr )Z chunk_left�_fpZ_close�r �Zsuper_update_chunk_lengthr r �_update_chunk_lengthn s z@CacheControlAdapter.build_response.<locals>._update_chunk_length)r r r ZapplyZstatusr Zupdate_cached_response�readZrelease_connZcache_responser r"