]>
jfr.im git - dlqueue.git/blob - venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py
1 # -*- coding: utf-8 -*-
6 Backports the Python 3 ``socket.makefile`` method for use with anything that
7 wants to create a "fake" socket object.
10 from socket
import SocketIO
13 def backport_makefile(
14 self
, mode
="r", buffering
=None, encoding
=None, errors
=None, newline
=None
17 Backport of ``socket.makefile`` from Python 3.5.
19 if not set(mode
) <= {"r", "w", "b"}
:
20 raise ValueError("invalid mode %r (only r, w, b allowed)" % (mode
,))
22 reading
= "r" in mode
or not writing
23 assert reading
or writing
30 raw
= SocketIO(self
, rawmode
)
31 self
._makefile
_refs
+= 1
35 buffering
= io
.DEFAULT_BUFFER_SIZE
38 raise ValueError("unbuffered streams must be binary")
40 if reading
and writing
:
41 buffer = io
.BufferedRWPair(raw
, raw
, buffering
)
43 buffer = io
.BufferedReader(raw
, buffering
)
46 buffer = io
.BufferedWriter(raw
, buffering
)
49 text
= io
.TextIOWrapper(buffer, encoding
, errors
, newline
)