a
    e0h[                     @   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   J/var/www/auris/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   
