MCPcopy
hub / github.com/urllib3/urllib3 / _ReadStream

Class _ReadStream

src/urllib3/contrib/emscripten/fetch.py:97–197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95
96
97class _ReadStream(io.RawIOBase):
98 def __init__(
99 self,
100 int_buffer: JsArray,
101 byte_buffer: JsArray,
102 timeout: float,
103 worker: JsProxy,
104 connection_id: int,
105 request: EmscriptenRequest,
106 ):
107 self.int_buffer = int_buffer
108 self.byte_buffer = byte_buffer
109 self.read_pos = 0
110 self.read_len = 0
111 self.connection_id = connection_id
112 self.worker = worker
113 self.timeout = int(1000 * timeout) if timeout > 0 else None
114 self.is_live = True
115 self._is_closed = False
116 self.request: EmscriptenRequest | None = request
117
118 def __del__(self) -> None:
119 self.close()
120
121 # this is compatible with _base_connection
122 def is_closed(self) -> bool:
123 return self._is_closed
124
125 # for compatibility with RawIOBase
126 @property
127 def closed(self) -> bool:
128 return self.is_closed()
129
130 def close(self) -> None:
131 if self.is_closed():
132 return
133 self.read_len = 0
134 self.read_pos = 0
135 self.int_buffer = None
136 self.byte_buffer = None
137 self._is_closed = True
138 self.request = None
139 if self.is_live:
140 self.worker.postMessage(_obj_from_dict({"close": self.connection_id}))
141 self.is_live = False
142 super().close()
143
144 def readable(self) -> bool:
145 return True
146
147 def writable(self) -> bool:
148 return False
149
150 def seekable(self) -> bool:
151 return False
152
153 def readinto(self, byte_obj: Buffer) -> int:
154 if not self.int_buffer:

Callers 1

sendMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected