File: //usr/lib/python3.9/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc
a
?�f � @ s* d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl m
Z
ddlmZ ddl
mZ ddlmZmZmZ dd lmZmZmZ dd
lmZ er�ddlmZmZ ddlmZ dd
lmZ ddlm Z e�!e"�Z#dd� Z$dd� Z%dd� Z&dd� Z'dd� Z(dd� Z)G dd� de*�Z+G dd� de*�Z,dS )z)Download files with progress indicators.
� N)�CONTENT_CHUNK_SIZE)�DownloadProgressProvider)�NetworkConnectionError)�PyPI)�
is_from_cache)�HEADERS�raise_for_status�response_chunks)�format_size�redact_auth_from_url�splitext)�MYPY_CHECK_RUNNING)�Iterable�Optional)�Response)�Link)�
PipSessionc
C s0 zt | jd �W S tttfy* Y d S 0 d S )Nzcontent-length)�int�headers�
ValueError�KeyError� TypeError)�resp� r �B/usr/lib/python3.9/site-packages/pip/_internal/network/download.py�_get_http_response_size% s r c C s� t | �}|jtjkr|j}n|j}t|�}|r>d�|t|��}t | �rTt
�d|� nt
�d|� t
�� t
jkrtd}n*t | �r�d}n|s�d}n|dkr�d}nd}t| t�}|s�|S t||d�|�S )Nz{} ({})zUsing cached %szDownloading %sFTi@� )�max)r �netlocr Zfile_storage_domainZshow_urlZurl_without_fragmentr �formatr
r �logger�infoZgetEffectiveLevel�logging�INFOr r r )r �link�progress_barZtotal_length�urlZ
logged_urlZ
show_progress�chunksr r r �_prepare_download- s6
��r'