U
.e= @ sP d Z ddlZddlmZ ddlmZ ddlmZ e e
ZG dd dejZ
dS )z#xmlrpclib.Transport implementation
N)requests)
xmlrpc_client)parsec @ s$ e Zd ZdZdddZd ddZdS )
PipXmlrpcTransportzRProvide a `xmlrpclib.Transport` implementation via a `PipSession`
object.
Fc C s* t j| | t|}|j| _|| _d S )N)r Transport__init__urllib_parseZurlparseZscheme_scheme_session)selfZ index_urlZsessionZuse_datetimeZindex_parts r @/usr/lib/python3.8/site-packages/pip/_internal/network/xmlrpc.pyr s
zPipXmlrpcTransport.__init__c
C s | j ||d d d f}t|}z8ddi}| jj|||dd}| || _| |jW S t j
k
r } ztd| j
j| W 5 d } ~ X Y nX d S )NzContent-Typeztext/xmlT)dataheadersstreamzHTTP error %s while getting %s)r r Z
urlunparser
ZpostZraise_for_statusverboseZparse_responserawr Z HTTPErrorloggerZcriticalresponseZstatus_code)
r ZhostZhandlerZrequest_bodyr partsZurlr r excr r r
request s$
zPipXmlrpcTransport.requestN)F)F)__name__
__module____qualname____doc__r r r r r r
r s
r )r ZloggingZpip._vendorr Zpip._vendor.six.movesr Zpip._vendor.six.moves.urllibr r Z getLoggerr r r r r r r r