
    Oh                     &    d Z ddlZddlmZ 	 ddZy)z
backports.makefile
~~~~~~~~~~~~~~~~~~

Backports the Python 3 ``socket.makefile`` method for use with anything that
wants to create a "fake" socket object.
    N)SocketIOc                    t        |      h dk  st        d|d      d|v }d|v xs | }|s|sJ d|v }d}	|r|	dz  }	|r|	dz  }	t        | |	      }
| xj                  dz  c_        |d	}|d
k  rt        j
                  }|d
k(  r|st        d      |
S |r|rt	        j                  |
|
|      }n3|rt	        j                  |
|      }n|sJ t	        j                  |
|      }|r|S t	        j                  ||||      }||_
        |S )z:
    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                /mnt/c/Users/Administrator/Desktop/help_/test_env/lib/python3.12/site-packages/pip/_vendor/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""3Y7	""3	2w""3	2FHfg>DDIK    )r   NNNN)__doc__r   socketr   r"    r#   r!   <module>r'      s    
  IM&r#   