File: //usr/lib/python3/dist-packages/urllib3/__pycache__/connectionpool.cpython-310.pyc
o
    ��Yh��  �                   @   s�  d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z
 ddlmZ ddl
mZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d dl$Z$d d	l%m&Z& dd
l'm(Z( ddl)m*Z* ddl+m,Z, dd
l-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z<m=Z= ddl;m>Z? ddl;m@Z@mAZA e$jBjCZCe�DeE�ZFeG� ZHG dd� deG�ZIejJejKhZLG dd� deIe*�ZMG dd� deM�ZNdd� ZOdd � Z>dS )!�    )�absolute_importN)�error��timeout�   )�HTTPHeaderDict)�BaseSSLError�BrokenPipeError�DummyConnection�HTTPConnection�
HTTPException�HTTPSConnection�VerifiedHTTPSConnection�port_by_scheme)
�ClosedPoolError�EmptyPoolError�HeaderParsingError�HostChangedError�InsecureRequestWarning�LocationValueError�
MaxRetryError�NewConnectionError�
ProtocolError�
ProxyError�ReadTimeoutError�SSLError�TimeoutError)�queue)�CertificateError)�RequestMethods)�HTTPResponse)�is_connection_dropped)�connection_requires_http_tunnel)�	LifoQueue)�set_file_position)�assert_header_parsing)�Retry)�Timeout)�Url�_encode_target)�_normalize_host)�get_host�	parse_urlc                   @   sB   e Zd ZdZdZeZd
dd�Zdd� Zdd� Z	d	d
� Z
dd� ZdS )�ConnectionPoola;  
    Base class for all connection pools, such as
    :class:`.HTTPConnectionPool` and :class:`.HTTPSConnectionPool`.
    .. note::
       ConnectionPool.urlopen() does not normalize or percent-encode target URIs
       which is useful if your target server doesn't support percent-encoded
       target URIs.
    Nc                 C   s0   |st d��t|| jd�| _|�� | _|| _d S )NzNo host specified.��scheme)r   r*   r/   �host�lower�_proxy_host�port)�selfr0   r3   � r5   �8/usr/lib/python3/dist-packages/urllib3/connectionpool.py�__init__K   s
   
zConnectionPool.__init__c                 C   s   dt | �j| j| jf S )Nz%s(host=%r, port=%r))�type�__name__r0   r3   �r4   r5   r5   r6   �__str__S   �   zConnectionPool.__str__c                 C   s   | S �Nr5   r:   r5   r5   r6   �	__enter__V   s   zConnectionPool.__enter__c                 C   s   | � �  dS )NF)�close)r4   �exc_type�exc_val�exc_tbr5   r5   r6   �__exit__Y   s   zConnectionPool.__exit__c                 C   �   dS )�D
        Close all pooled connections and disable the pool.
        Nr5   r:   r5   r5   r6   r?   ^   �   zConnectionPool.closer=   )r9   �
__module__�__qualname__�__doc__r/   r#   �QueueClsr7   r;   r>