o 7]h@sdZddlZddlZddlZddlmZmZddl m Z ddl m Z ddl mZer2ddlmZmZeeZGdd d ejjZdS) z#xmlrpclib.Transport implementation N) TYPE_CHECKINGTuple)NetworkConnectionError) PipSession)raise_for_status) _HostType _Marshallablec s\eZdZdZ ddedededdffdd Z dd d d ed edede df ddZ Z S)PipXmlrpcTransportzRProvide a `xmlrpclib.Transport` implementation via a `PipSession` object. F index_urlsession use_datetimereturnNcs*t|tj|}|j|_||_dS)N)super__init__urllibparseurlparsescheme_scheme_session)selfr r r index_parts __class__>/usr/lib/python3/dist-packages/pip/_internal/network/xmlrpc.pyrs   zPipXmlrpcTransport.__init__hostrhandler request_bodyverbose)r.c Cst|tsJ|j||dddf}tj|}zddi}|jj|||dd}t|||_ | |j WSt yM} z| j s?Jtd| j j|d} ~ ww)Nz Content-Typeztext/xmlT)dataheadersstreamzHTTP error %s while getting %s) isinstancestrrrr urlunparserpostrrparse_responserawrresponseloggercritical status_code) rrrrrpartsurlr!r)excrrrrequest s0  zPipXmlrpcTransport.request)F) __name__ __module__ __qualname____doc__r$rboolrbytesrr0 __classcell__rrrrr s0 r )r4logging urllib.parser xmlrpc.clientxmlrpctypingrrpip._internal.exceptionsrpip._internal.network.sessionrpip._internal.network.utilsrrr getLoggerr1r*client Transportr rrrrs