Show More
@@ -79,35 +79,12 b' class _blockingreader:' | |||||
79 | def __init__(self, wrapped): |
|
79 | def __init__(self, wrapped): | |
80 | self._wrapped = wrapped |
|
80 | self._wrapped = wrapped | |
81 |
|
81 | |||
82 | # Do NOT implement readinto() by making it delegate to |
|
|||
83 | # _wrapped.readinto(), since that is unbuffered. The unpickler is fine |
|
|||
84 | # with just read() and readline(), so we don't need to implement it. |
|
|||
85 |
|
||||
86 | if (3, 8, 0) <= sys.version_info[:3] < (3, 8, 2): |
|
|||
87 |
|
||||
88 | # This is required for python 3.8, prior to 3.8.2. See issue6444. |
|
|||
89 | def readinto(self, b): |
|
|||
90 | pos = 0 |
|
|||
91 | size = len(b) |
|
|||
92 |
|
||||
93 | while pos < size: |
|
|||
94 | ret = self._wrapped.readinto(b[pos:]) |
|
|||
95 | if not ret: |
|
|||
96 | break |
|
|||
97 | pos += ret |
|
|||
98 |
|
||||
99 | return pos |
|
|||
100 |
|
||||
101 | def readline(self): |
|
82 | def readline(self): | |
102 | return self._wrapped.readline() |
|
83 | return self._wrapped.readline() | |
103 |
|
84 | |||
104 | # issue multiple reads until size is fulfilled (or EOF is encountered) |
|
85 | def readinto(self, buf): | |
105 | def read(self, size=-1): |
|
|||
106 | if size < 0: |
|
|||
107 | return self._wrapped.readall() |
|
|||
108 |
|
||||
109 | buf = bytearray(size) |
|
|||
110 | pos = 0 |
|
86 | pos = 0 | |
|
87 | size = len(buf) | |||
111 |
|
88 | |||
112 | with memoryview(buf) as view: |
|
89 | with memoryview(buf) as view: | |
113 | while pos < size: |
|
90 | while pos < size: | |
@@ -117,7 +94,16 b' class _blockingreader:' | |||||
117 | break |
|
94 | break | |
118 | pos += ret |
|
95 | pos += ret | |
119 |
|
96 | |||
120 |
|
|
97 | return pos | |
|
98 | ||||
|
99 | # issue multiple reads until size is fulfilled (or EOF is encountered) | |||
|
100 | def read(self, size=-1): | |||
|
101 | if size < 0: | |||
|
102 | return self._wrapped.readall() | |||
|
103 | ||||
|
104 | buf = bytearray(size) | |||
|
105 | n_read = self.readinto(buf) | |||
|
106 | del buf[n_read:] | |||
121 | return bytes(buf) |
|
107 | return bytes(buf) | |
122 |
|
108 | |||
123 |
|
109 |
General Comments 0
You need to be logged in to leave comments.
Login now