o
    Ni	                     @  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ZdddZ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/urlstrcertsstr | dict[str, str] | Nonereturn
str | boolc                 C  sH   |sdS t |ttB r|S t| j}d|v r|dd\}}||dS )z*Get additional CA cert for a specific URL.T@   )
isinstancer   tupler   netlocsplitget)r   r   hostname_ r   H/home/ubuntu/.local/lib/python3.10/site-packages/sphinx/util/requests.py_get_tls_cacert   s   
r   kwargsr   requests.Responsec                 K  <   t  }|j| fi |W  d   S 1 sw   Y  dS )zySends a GET request like ``requests.get()``.

    This sets up User-Agent header and TLS verification automatically.
    N)_Sessionr   r   r   sessionr   r   r   r   "      $r   c                 K  r   )z{Sends a HEAD request like ``requests.head()``.

    This sets up User-Agent header and TLS verification automatically.
    N)r   headr   r   r   r   r   +   r   r   c                      s$   e Zd Z		dd fddZ  ZS )r    r   methodr   r   _user_agent	_tls_info(tuple[bool, str | dict[str, str] | None]r   r   r
   r   c           
        s   | di }| d|pt |r(|\}}t|d|}	| d|	o%t|| n|dd}	|	r;t j||fi |S t  tj	dt
d t j||fi |W  d   S 1 s\w   Y  dS )zSends 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%   
tls_verifytls_cacertsr&   	__class__r   r   r-   5   s   
$z_Session.request)r    r   )r!   r   r   r   r"   r   r#   r$   r   r   r
   r   )__name__
__module____qualname__r-   __classcell__r   r   r4   r   r   4   s    r   )r   r   r   r	   r
   r   )r   r   r   r   r
   r   )__doc__
__future__r   r.   typingr   urllib.parser   requestsurllib3.exceptionsr   sphinx__version__r*   r   r   r   Sessionr   r   r   r   r   <module>   s     


		