a
    »ÏOc‰  ã                   @   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 rˆd	}|d
k r–tj}|d
kr®|sªtdƒ‚|
S |rÆ|rÆt |
|
|¡}n&|rØt |
|¡}n|sàJ ‚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   Ú é   Néÿÿÿÿr   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   úZ/var/www/html/gsl.tools/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    ÿ