a lj @ s d Z ddlZddlZddlZddlmZmZ ddl m Z ddlmZ ddl mZ erdddlmZmZ eeZG dd d ejjZdS ) z#xmlrpclib.Transport implementation N) TYPE_CHECKINGTuple)NetworkConnectionError) PipSession)raise_for_status) _HostType _Marshallablec sJ e Zd ZdZdeeedd fdd Zd deeee d d d dZ ZS )PipXmlrpcTransportzRProvide a `xmlrpclib.Transport` implementation via a `PipSession` object. FN) index_urlsessionuse_datetimereturnc s* t | tj|}|j| _|| _d S )N)super__init__urllibparseurlparsescheme_scheme_session)selfr r r Zindex_parts __class__ @/usr/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.pyr s zPipXmlrpcTransport.__init__r )r .)hosthandlerrequest_bodyverboser c C s t |tsJ | j||d d d f}tj|}z8ddi}| jj|||dd}t| || _ | |jW S ty } z*| j s~J td| j j| W Y d } ~ n d } ~ 0 0 d S )NzContent-Typeztext/xmlT)dataheadersstreamzHTTP error %s while getting %s) isinstancestrr r r urlunparser Zpostr r Zparse_responserawr responseloggerZcriticalZstatus_code) r r r r r partsurlr r&