a
    sh&                     @   s   d Z ddlZddl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 erlddlmZmZ ddlmZ eeZG d	d
 d
ejjZdS )z"xmlrpclib.Transport implementation    N)TYPE_CHECKING)NetworkConnectionError)
PipSession)raise_for_status)	_HostType_Marshallable)SizedBufferc                       sJ   e Zd ZdZdeeedd fddZddedeed	 d
ddZ	  Z
S )PipXmlrpcTransportzRProvide a `xmlrpclib.Transport` implementation via a `PipSession`
    object.
    FN)	index_urlsessionuse_datetimereturnc                    s*   t  | tj|}|j| _|| _d S )N)super__init__urllibparseurlparsescheme_scheme_session)selfr
   r   r   Zindex_parts	__class__ X/var/www/html/assistant/venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.pyr      s    zPipXmlrpcTransport.__init__r   r   )r   .)hosthandlerrequest_bodyverboser   c           
   
   C   s   t |tsJ | j||d d d f}tj|}z8ddi}| jj|||dd}t| || _	| 
|jW S  ty }	 z*|	js~J 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)
isinstancestrr   r   r   
urlunparser   postr   r   parse_responserawr   responseloggercriticalstatus_code)
r   r   r   r   r   partsurlr    r(   excr   r   r   request!   s,    
zPipXmlrpcTransport.request)F)F)__name__
__module____qualname____doc__r#   r   boolr   tupler/   __classcell__r   r   r   r   r	      s     r	   )r3   loggingurllib.parser   xmlrpc.clientZxmlrpctypingr   pip._internal.exceptionsr   pip._internal.network.sessionr   pip._internal.network.utilsr   r   r   Z	_typeshedr   	getLoggerr0   r)   client	Transportr	   r   r   r   r   <module>   s   
