<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
Pf                  @   sT   d dl Z d dlZd dlmZ ddlmZ ddlmZ ddlm	Z	 G dd deZ
dS )	    N)HTTPAdapter   )CacheController)	DictCache)CallbackFileWrapperc                   sP   e Zd ZeddgZd fdd	Z fddZd fd
d	Z fddZ  Z	S )CacheControlAdapterZPUTZDELETENTc       	         sB   t t| j|| |pt | _|| _|p*t}|| j||d| _d S )N)cache_etags
serializer)superr   __init__r   cache	heuristicr   
controller)	selfr   r   Zcontroller_classr	   r   argskwZcontroller_factory)	__class__ /usr/lib/python3.6/adapter.pyr      s    zCacheControlAdapter.__init__c                sV   |j dkr>| jj|}|r*| j||ddS |jj| 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.
        GETT)
from_cache)
methodr   Zcached_requestbuild_responseZheadersupdateZconditional_headersr
   r   send)r   requestr   cached_responseresp)r   r   r   r      s    
zCacheControlAdapter.sendFc                s  | r|j dkr| jr"| jj|}|jdkr`| jj||}||k	rFd}|jdd |j  |}n\|jdkrz| jj|| nBt	|j
tj| jj|||_
|jr|j  fdd}tj|||_tt| j||}|j | jkr|jr| jj|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
        r   i0  TF)Zdecode_contenti-  c                s      | j dkr| jj  d S )Nr   )Z
chunk_left_fpZ_close)r   )super_update_chunk_lengthr   r   _update_chunk_lengthg   s    
z@CacheControlAdapter.build_response.<locals>._update_chunk_length)r   r   ZapplyZstatusr   Zupdate_cached_responsereadZrelease_connZcache_responser   r   	functoolspartialZchunkedr    types
MethodTyper
   r   r   invalidating_methodsok	cache_urlZurlr   deleter   )r   r   Zresponser   r   r    r   r(   )r   )r   r   r   3   s<    



z"CacheControlAdapter.build_responsec                s   | j j  tt| j  d S )N)r   closer
   r   )r   )r   r   r   r*   {   s    
zCacheControlAdapter.close)NTNNN)F)
__name__
__module____qualname__setr&   r   r   r   r*   __classcell__r   r   )r   r   r      s       Hr   )r$   r"   Zpip._vendor.requests.adaptersr   r   r   r   r   Zfilewrapperr   r   r   r   r   r   <module>   s   