o
    é~®`‰  ã                   @   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 p| }|s |s J ‚d|v }d}	|r,|	d7 }	|r2|	d7 }	t| |	ƒ}
|  jd7  _|du rDd	}|d
k rKtj}|d
krW|sUtdƒ‚|
S |rc|rct |
|
|¡}n|rlt |
|¡}n
|spJ ‚t |
|¡}|rz|S t 	||||¡}||_
|S )z:
    Backport of ``socket.makefile`` from Python 3.5.
    >   Úbr   Úwz&invalid mode %r (only r, w, b allowed)r   r   r   Ú é   Néÿÿÿÿr   z!unbuffered streams must be binary)ÚsetÚ
ValueErrorr   Ú_makefile_refsÚioÚDEFAULT_BUFFER_SIZEÚBufferedRWPairÚBufferedReaderÚBufferedWriterÚTextIOWrapperÚmode)Úselfr   Ú	bufferingÚencodingÚerrorsÚnewlineÚwritingÚreadingÚbinaryÚrawmodeÚrawÚbufferÚtext© r   úE/usr/lib/python3/dist-packages/urllib3/packages/backports/makefile.pyÚbackport_makefile   s@   
r!   )r   NNNN)Ú__doc__r   Úsocketr   r!   r   r   r   r    Ú<module>   s
   ÿ