File: //usr/local/lib/python3.10/dist-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-310.pyc
o
��h& � @ s� d Z ddlZddlZddlZddlmZ ddlm Z ddl
mZ ddlm
Z
er6ddlmZmZ ddlmZ e�e�ZG d d
� d
ejj�ZdS )z"xmlrpclib.Transport implementation� N)�
TYPE_CHECKING)�NetworkConnectionError)�
PipSession)�raise_for_status)� _HostType�
_Marshallable)�SizedBufferc s\ e Zd ZdZ ddedededdf� fdd �
Z dd
dded
ddeded f
dd�Z � Z
S )�PipXmlrpcTransportzRProvide a `xmlrpclib.Transport` implementation via a `PipSession`
object.
F� index_url�session�use_datetime�returnNc s* t � �|� tj�|�}|j| _|| _d S )N)�super�__init__�urllib�parse�urlparse�scheme�_scheme�_session)�selfr
r r �index_parts�� __class__� �G/usr/local/lib/python3.10/dist-packages/pip/_internal/network/xmlrpc.pyr s
zPipXmlrpcTransport.__init__�hostr �handler�request_bodyr �verbose)r .c
C s� t |t�sJ �| j||d d d f}tj�|�}zddi}| jj|||dd�}t|� || _ | �
|j�W S tyM } z| j
s?J �t�d| j
j|� � d } ~ ww )NzContent-Typeztext/xmlT)�data�headers�streamzHTTP 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! s0 �
���zPipXmlrpcTransport.request)F)�__name__�
__module__�__qualname__�__doc__r$ r �boolr �tupler0 �
__classcell__r r r r r s0 �����
������r )r4 �logging�urllib.parser �
xmlrpc.client�xmlrpc�typingr �pip._internal.exceptionsr �pip._internal.network.sessionr �pip._internal.network.utilsr r r � _typeshedr � getLoggerr1 r* �client� Transportr r r r r �<module> s