U ��.e� � @ s> d dl mZ ddlmZ ddlmZ dgZG dd� de�ZdS )� )�absolute_import� )�encode_multipart_formdata)� urlencode�RequestMethodsc @ sN e Zd ZdZddddhZddd�Zdd d�Zddd �Zddd�Zddd�Z dS )r a� Convenience mixin for classes who implement a :meth:`urlopen` method, such as :class:`~urllib3.connectionpool.HTTPConnectionPool` and :class:`~urllib3.poolmanager.PoolManager`. Provides behavior for making common types of HTTP request methods and decides which type of request field encoding to use. Specifically, :meth:`.request_encode_url` is for sending requests whose fields are encoded in the URL (such as GET, HEAD, DELETE). :meth:`.request_encode_body` is for sending requests whose fields are encoded in the *body* of the request using multipart or www-form-urlencoded (such as for POST, PUT, PATCH). :meth:`.request` is for making any kind of request, it will look up the appropriate encoding format and use one of the above two methods to make the request. Initializer parameters: :param headers: Headers to include with all requests, unless other headers are given explicitly. ZDELETEZGETZHEADZOPTIONSNc C s |pi | _ d S )N)�headers)�selfr � r �?/usr/lib/python3.8/site-packages/pip/_vendor/urllib3/request.py�__init__) s zRequestMethods.__init__Tc K s t d��d S )NzMClasses extending RequestMethods must implement their own ``urlopen`` method.)�NotImplementedError)r �method�url�bodyr �encode_multipart�multipart_boundary�kwr r r �urlopen, s �zRequestMethods.urlopenc K sR |� � }||d<