B
    .Kc:                 @   s   d Z ddlZddlZddlmZ ddlmZmZmZ ddl	m
Z
 ddlZddlmZ ddlZddlmZ dgZeeed	 d
ddZeeeeef dddZeedddZeeejdddZeeejdddZdS )zSimple requests package loader    N)contextmanager)Any	GeneratorUnion)urlsplit)InsecureRequestWarning)Config)z
User-AgentzDMozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0)NNN)kwargsreturnc           	   k   s:   t  ( | ds&tr&t jdtd d V  W d Q R X d S )Nverifyignore)category)warningscatch_warningsgetr   filterwarnings)r	    r   3lib/python3.7/site-packages/sphinx/util/requests.pyignore_insecure_warning   s    
r   )urlconfigr
   c             C   sb   |j s
dS t|dd}|sdS t|ttfr0|S t| d }d|krR|dd }||dS dS )zGet additional CA cert for a specific URL.

    This also returns ``False`` if verification is disabled.
    And returns ``True`` if additional CA cert not found.
    FZtls_cacertsNT   @)Z
tls_verifygetattr
isinstancestrtupler   splitr   )r   r   ZcertsZhostnamer   r   r   _get_tls_cacert   s    r   )r   r
   c             C   sF   | j r| j S ddtj dtj ddtttjd d  gS d S )N z	Sphinx/%szrequests/%sz	python/%s.   )	Z
user_agentjoinsphinx__version__requestsmapr   sysversion_info)r   r   r   r   _get_user_agent2   s    r)   )r   r	   r
   c          	   K   sx   | di }|dd}|r@| dt| | | dt| n| dtd d  tf | tj| f|S Q R X dS )zpSends a GET request like requests.get().

    This sets up User-Agent header and TLS verification automatically.headersr   Nr   z
User-Agentr   r   )
setdefaultpopr   r)   useragent_headerr   r%   r   )r   r	   r*   r   r   r   r   r   =   s    r   c          	   K   sx   | di }|dd}|r@| dt| | | dt| n| dtd d  tf | tj| f|S Q R X dS )zrSends a HEAD request like requests.head().

    This sets up User-Agent header and TLS verification automatically.r*   r   Nr   z
User-Agentr   r   )r+   r,   r   r)   r-   r   r%   head)r   r	   r*   r   r   r   r   r.   M   s    r.   )__doc__r'   r   
contextlibr   typingr   r   r   Zurllib.parser   r%   Zurllib3.exceptionsr   r#   Zsphinx.configr   r-   r   r   boolr   r)   ZResponser   r.   r   r   r   r   <module>   s    