
    Fe|	                        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Zdd	Zdd
Z G d dej"                        Zy)zSimple requests package loader    )annotationsN)Any)urlsplit)InsecureRequestWarningzNMozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0 Sphinx/c                    |syt        |t        t        f      r|S t        |       j                  }d|v r|j                  dd      \  }}|j                  |d      S )z*Get additional CA cert for a specific URL.T@   )
isinstancestrtupler   netlocsplitget)urlcertshostname_s       6/usr/lib/python3/dist-packages/sphinx/util/requests.py_get_tls_cacertr      sV    	EC<	(C=''(?"..a0KAxyy4((    c                h    t               5 } |j                  | fi |cddd       S # 1 sw Y   yxY w)zpSends a GET request like requests.get().

    This sets up User-Agent header and TLS verification automatically.N)_Sessionr   r   kwargssessions      r   r   r       s3     
 *ww{{3)&)* * *   (1c                h    t               5 } |j                  | fi |cddd       S # 1 sw Y   yxY w)zrSends a HEAD request like requests.head().

    This sets up User-Agent header and TLS verification automatically.N)r   headr   s      r   r   r   (   s3     
 +ww||C*6*+ + +r   c                  <     e Zd Z	 	 d	 	 	 	 	 	 	 	 	 	 	 d fdZ xZS )r   c                   |j                  di       }|j                  d|xs t               |rA|\  }}t        |j                  d|            }	|j                  d|	xr t	        ||             n|j                  dd      }	|	rt        
|   ||fi |S t        j                         5  t        j                  dt               t        
|   ||fi |cddd       S # 1 sw Y   yxY w)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   )selfmethodr   _user_agent	_tls_infor   r!   
tls_verifytls_cacertsr"   	__class__s             r   r)   z_Session.request1   s     ##Ir2<)CD&/#J&**Xz:;Fh(T?33TUZZ$/F7?639&99$$& 	:##H7MN7?639&9	: 	: 	:s   *,C  C))  )r.   r   r   r   r/   r   r0   z(tuple[bool, str | dict[str, str] | None]r   r   returnrequests.Response)__name__
__module____qualname__r)   __classcell__)r3   s   @r   r   r   0   sK     >@:: #:: <: 	:
 
: :r   r   )r   r   r   zstr | dict[str, str] | Noner6   z
str | bool)r   r   r   r   r6   r7   )__doc__
__future__r   r*   typingr   urllib.parser   requestsurllib3.exceptionsr   sphinx__version__r&   r   r   r   Sessionr   r5   r   r   <module>rE      sV    $ "   !  5 ++,.)*+:x :r   