
    if.                         d Z ddlZddlZddlZddlmZ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dS )z#xmlrpclib.Transport implementation
    N)TYPE_CHECKINGTuple)NetworkConnectionError)
PipSession)raise_for_status)	_HostType_Marshallable)SizedBufferc                   d     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.
    F	index_urlsessionuse_datetimereturnNc                     t                                          |           t          j                            |          }|j        | _        || _        d S )N)super__init__urllibparseurlparsescheme_scheme_session)selfr   r   r   index_parts	__class__s        N/var/www/html/env/lib/python3.11/site-packages/pip/_internal/network/xmlrpc.pyr   zPipXmlrpcTransport.__init__   sG     	&&&l++I66")    hostr   handlerrequest_bodyr
   verbose)r	   .c                    t          |t                    sJ | j        ||d d d f}t          j                            |          }	 ddi}| j                            |||d          }t          |           || _	        | 
                    |j                  S # t          $ r5}	|	j        sJ t                              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$?l%%e,,	%z2G}))!	 *  H X&&&"DL&&x|444% 	 	 	<<OO0(  
 	s   AB 
C!0CC)F)__name__
__module____qualname____doc__r(   r   boolr   r   r4   __classcell__)r   s   @r   r   r      s         
 IN    '1 AE 	               $	
  
#	$       r   r   )r8   loggingurllib.parser   xmlrpc.clientxmlrpctypingr   r   pip._internal.exceptionsr   pip._internal.network.sessionr   pip._internal.network.utilsr   r   r	   	_typeshedr
   	getLoggerr5   r.   client	Transportr    r   r   <module>rH      s              ' ' ' ' ' ' ' ' ; ; ; ; ; ; 4 4 4 4 4 4 8 8 8 8 8 8 &66666666%%%%%%		8	$	$) ) ) ) )0 ) ) ) ) )r   