a
    ”¼de[  ã                   @   s„   d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ erdddlmZ dd	lmZ e e¡ZG d
d„ dejƒZdS )z#xmlrpclib.Transport implementation
é    N)Úxmlrpc_client)Úparse)ÚNetworkConnectionError)Úraise_for_status)ÚMYPY_CHECK_RUNNING)ÚDict)Ú
PipSessionc                   @   s$   e Zd ZdZddd„Zd	dd„ZdS )
ÚPipXmlrpcTransportzRProvide a `xmlrpclib.Transport` implementation via a `PipSession`
    object.
    Fc                 C   s*   t j | |¡ t |¡}|j| _|| _d S )N)r   Ú	TransportÚ__init__Úurllib_parseÚurlparseÚschemeÚ_schemeÚ_session)ÚselfÚ	index_urlÚsessionÚuse_datetimeZindex_parts© r   úU/var/www/sistema_ama/venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.pyr      s    
zPipXmlrpcTransport.__init__c           
   
   C   sœ   | j ||d d d f}t |¡}z8ddi}| jj|||dd�}t|ƒ || _|  |j¡W S  t	y– }	 z*|	j
snJ ‚t d|	j
j|¡ ‚ W Y d }	~	n
d }	~	0 0 d S )NzContent-Typeztext/xmlT)ÚdataÚheadersÚstreamzHTTP error %s while getting %s)r   r   Ú
urlunparser   Úpostr   ÚverboseÚparse_responseÚrawr   ÚresponseÚloggerÚcriticalÚstatus_code)
r   ÚhostÚhandlerÚrequest_bodyr   ÚpartsÚurlr   r   Úexcr   r   r   Úrequest$   s"    

ÿ
þzPipXmlrpcTransport.requestN)F)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r)   r   r   r   r   r	      s   
r	   )r-   ÚloggingZpip._vendor.six.movesr   Zpip._vendor.six.moves.urllibr   r   Úpip._internal.exceptionsr   Úpip._internal.network.utilsr   Úpip._internal.utils.typingr   Útypingr   Úpip._internal.network.sessionr   Ú	getLoggerr*   r    r
   r	   r   r   r   r   Ú<module>   s   
