U
    \Sh|	                     @  s   d Z ddlmZ ddlZddlmZ ddlmZ ddlZddl	m
Z
 ddlZdej Zdd	d
dddZddddddZddddddZG dd dejZdS )zSimple requests package loader    )annotationsN)Any)urlsplit)InsecureRequestWarningzNMozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0 Sphinx/strzstr | dict[str, str] | Nonez
str | bool)urlcertsreturnc                 C  sL   |sdS t |ttfr|S t| j}d|kr<|dd\}}||dS dS )z*Get additional CA cert for a specific URL.T@   N)
isinstancer   tupler   netlocsplitget)r   r   hostname_ r   G/root/rtd-docs/venv/lib/python3.8/site-packages/sphinx/util/requests.py_get_tls_cacert   s    
r   r   requests.Response)r   kwargsr	   c              
   K  s,   t  }|j| f|W  5 Q R  S Q R X dS )zpSends a GET request like requests.get().

    This sets up User-Agent header and TLS verification automatically.N)_Sessionr   r   r   sessionr   r   r   r       s    r   c              
   K  s,   t  }|j| f|W  5 Q R  S Q R X dS )zrSends a HEAD request like requests.head().

    This sets up User-Agent header and TLS verification automatically.N)r   headr   r   r   r   r   (   s    r   c                      s.   e Zd Zd
ddddddd fdd	Z  ZS )r    r   r   z(tuple[bool, str | dict[str, str] | None]r   r   )methodr   _user_agent	_tls_infor   r	   c           
   
     s   | di }| d|pt |rP|\}}t|d|}	| d|	oJt|| n|dd}	|	rrt j||f|S t . tj	dt
d t j||f|W  5 Q R  S Q R X dS )zvSends a request with an HTTP verb and url.

        This sets up User-Agent header and TLS verification automatically.headersz
User-AgentverifyTignore)categoryN)
setdefault_USER_AGENTboolr   r   superrequestwarningscatch_warningsfilterwarningsr   )
selfr   r   r   r   r   r    Z
tls_verifyZtls_cacertsr!   	__class__r   r   r(   1   s    	
z_Session.request)r   r   )__name__
__module____qualname__r(   __classcell__r   r   r-   r   r   0   s     r   )__doc__
__future__r   r)   typingr   urllib.parser   requestsZurllib3.exceptionsr   Zsphinx__version__r%   r   r   r   Sessionr   r   r   r   r   <module>   s   