
                         (    S r SSKrSSKJr   SS jrg)z
backports.makefile
~~~~~~~~~~~~~~~~~~

Backports the Python 3 ``socket.makefile`` method for use with anything that
wants to create a "fake" socket object.
    N)SocketIOc                    [        U5      1 Sk::  d  [        SU< S35      eSU;   nSU;   =(       d    U(       + nU(       d	  U(       d   eSU;   nSn	U(       a  U	S-  n	U(       a  U	S-  n	[        X	5      n
U =R                  S-  sl        Uc  S	nUS
:  a  [        R
                  nUS
:X  a  U(       d  [        S5      eU
$ U(       a  U(       a  [        R                  " XU5      nO=U(       a  [        R                  " X5      nOU(       d   e[        R                  " X5      nU(       a  U$ [        R                  " XXE5      nXl
        U$ )z2
Backport of ``socket.makefile`` from Python 3.5.
>   brwzinvalid mode z (only r, w, b allowed)r   r   r       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texts                >platform/bq/third_party/urllib3/packages/backports/makefile.pybackport_makefiler"      s     t9'TKLLTkGTk([GgD[FG33
4
!C1	1}**	A~@AA
7""3Y7	""32w""32Ff>DIK    )r   NNNN)__doc__r   socketr   r"    r#   r!   <module>r'      s    
  IM&r#   