a
    -=ic                     @   s&   d Z ddlZddlmZ dddZdS )z
backports.makefile
~~~~~~~~~~~~~~~~~~

Backports the Python 3 ``socket.makefile`` method for use with anything that
wants to create a "fake" socket object.
    N)SocketIOrc                 C   s  t |h dkstd|f d|v }d|v p2| }|s@|s@J d|v }d}	|rX|	d7 }	|rd|	d7 }	t| |	}
|  jd7  _|du rd	}|d
k rtj}|d
kr|std|
S |r|rt|
|
|}n&|rt|
|}n|sJ t|
|}|r|S t	||||}||_
|S )z:
    Backport of ``socket.makefile`` from Python 3.5.
    >   wr   bz&invalid mode %r (only r, w, b allowed)r   r   r       Nr   z!unbuffered streams must be binary)set
ValueErrorr   Z_makefile_refsioDEFAULT_BUFFER_SIZEBufferedRWPairBufferedReaderBufferedWriterTextIOWrappermode)selfr   	bufferingencodingerrorsnewlinewritingreadingbinaryrawmoderawbuffertext r   t/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/urllib3/packages/backports/makefile.pybackport_makefile   s@    
r    )r   NNNN)__doc__r   socketr   r    r   r   r   r   <module>   s    