
    dh&                         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rddlmZmZ ddlmZ  ej$                  e      Z G d	 d
ej*                  j,                        Zy)z"xmlrpclib.Transport implementation    N)TYPE_CHECKING)NetworkConnectionError)
PipSession)raise_for_status)	_HostType_Marshallable)SizedBufferc                   ^     e Zd ZdZ	 ddedededdf fdZ	 ddd	d
edddeded   f
dZ	 xZ
S )PipXmlrpcTransportzRProvide a `xmlrpclib.Transport` implementation via a `PipSession`
    object.
    	index_urlsessionuse_datetimereturnNc                     t         |   |       t        j                  j	                  |      }|j
                  | _        || _        y )N)super__init__urllibparseurlparsescheme_scheme_session)selfr   r   r   index_parts	__class__s        ^/var/www/html/vivango/api/ia/venv/lib/python3.12/site-packages/pip/_internal/network/xmlrpc.pyr   zPipXmlrpcTransport.__init__   s:     	&ll++I6"))    hostr   handlerrequest_bodyr	   verbose)r   .c                    t        |t              sJ | j                  ||d d d f}t        j                  j                  |      }	 ddi}| j                  j                  |||d      }t        |       || _	        | j                  |j                        S # t        $ r?}	|	j                  sJ t        j                  d|	j                  j                   |        d }	~	ww xY w)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,   excs
             r   requestzPipXmlrpcTransport.request!   s     $$$$tWdD$?ll%%e,	%z2G}}))!	 * H X&"DL&&x||44% 	<<<OO0((
 	s   AB 	C:CC)F)__name__
__module____qualname____doc__r'   r   boolr   tupler3   __classcell__)r   s   @r   r   r      st    
 IN  '1 AE 	    $	
  
#	$r   r   )r7   loggingurllib.parser   xmlrpc.clientxmlrpctypingr   pip._internal.exceptionsr   pip._internal.network.sessionr   pip._internal.network.utilsr   r   r   	_typeshedr	   	getLoggerr4   r-   client	Transportr    r   r   <module>rH      sN    (      ; 4 86%			8	$)00 )r   