
    RiG                        d Z ddlmZ ddlZddlmZ ddlmZmZ ddl	Z	ddl
mZ ddlZerddlZddlmZ ddlmZ d	ej"                   Z G d
 de      ZddZddZddZ G d de	j0                        Zy)zSimple requests package loader    )annotationsN)TYPE_CHECKING)urljoinurlsplit)InsecureRequestWarning)Sequence)AnyzNMozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0 Sphinx/c                      e Zd ZdZddZy)_IgnoredRedirectionzASphinx-internal exception raised when an HTTP redirect is ignoredc                     || _         || _        y Ndestinationstatus_code)selfr   r   s      L/home/agent/.friday_env/lib/python3.12/site-packages/sphinx/util/requests.py__init__z_IgnoredRedirection.__init__   s    &&    N)r   strr   intreturnNone)__name__
__module____qualname____doc__r    r   r   r   r      s
    K'r   r   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@)
isinstancer   tupler   netloc	partitionget)urlcertshostnames      r   _get_tls_cacertr)   "   sW    	EC<	(C=''(?))#.r2Hyy4((r   c                h    t               5 } |j                  | fi |cddd       S # 1 sw Y   yxY w)zySends a GET request like ``requests.get()``.

    This sets up User-Agent header and TLS verification automatically.
    N)_Sessionr%   r&   kwargssessions      r   r%   r%   0   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)z{Sends a HEAD request like ``requests.head()``.

    This sets up User-Agent header and TLS verification automatically.
    N)r+   headr,   s      r   r1   r1   9   s3    
 
 +ww||C*6*+ + +r/   c                  `     e Zd ZU ded<   d fdZd fdZ	 	 d	 	 	 	 	 	 	 	 	 	 	 d	 fdZ xZS )
r+   zSequence[re.Pattern[str]]_ignored_redirectsc                R    |j                  dd      | _        t        |   |i | y )Nr3   r   )popr3   superr   )r   argsr-   	__class__s      r   r   z_Session.__init__E   s)    "(**-A2"F$)&)r   c                    |j                   rXt        |j                  |j                  d         t	        fd| j
                  D              rt        |j                        t        | %  |      S )z:Overrides the default requests.Session.get_redirect_targetlocationc              3  @   K   | ]  }|j                          y wr   )match).0patr   s     r   	<genexpr>z/_Session.get_redirect_target.<locals>.<genexpr>N   s     Mc399[)Ms   r   )
is_redirectr   r&   headersanyr3   r   r   r6   get_redirect_target)r   respr   r8   s     @r   rC   z_Session.get_redirect_targetI   se     !$((DLL,DEKMT5L5LMM) +9I9I  w*400r   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)zSends a request with an HTTP verb and url.

        This sets up User-Agent header and TLS verification automatically.
        rA   z
User-AgentverifyTignore)categoryN)
setdefault_USER_AGENTboolr%   r)   r6   requestwarningscatch_warningsfilterwarningsr   )r   methodr&   _user_agent	_tls_infor-   rA   
tls_verifytls_cacertsrF   r8   s             r   rL   z_Session.requestT   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))r7   r	   r-   r	   r   r   )rD   requests.Responser   z
str | None) r   )rP   r   r&   r   rQ   r   rR   z(tuple[bool, str | dict[str, str] | None]r-   r	   r   rU   )r   r   r   __annotations__r   rC   rL   __classcell__)r8   s   @r   r+   r+   B   s_    11*	1 >@:: : 	:
 <: : 
: :r   r+   )r&   r   r'   zstr | dict[str, str] | Noner   z
str | bool)r&   r   r-   r	   r   rU   )r   
__future__r   rM   typingr   urllib.parser   r   requestsurllib3.exceptionsr   sphinxrecollections.abcr   r	   __version__rJ   	Exceptionr   r)   r%   r1   Sessionr+   r   r   r   <module>rd      sq    $ "    *  5 (  !# ') ')*+-:x -:r   