MCPcopy
hub / github.com/aio-libs/aiohttp / set_parser

Method set_parser

aiohttp/parsers.py:170–202  ·  view source on GitHub ↗

set parser to stream. return parser's DataQueue.

(self, parser, output=None)

Source from the content-addressed store, hash-verified

168 self._eof = True
169
170 def set_parser(self, parser, output=None):
171 """set parser to stream. return parser's DataQueue."""
172 if self._parser:
173 self.unset_parser()
174
175 if output is None:
176 output = FlowControlDataQueue(
177 self, limit=self._limit, loop=self._loop)
178
179 if self._exception:
180 output.set_exception(self._exception)
181 return output
182
183 # init parser
184 p = parser(output, self._buffer)
185 assert inspect.isgenerator(p), 'Generator is required'
186
187 try:
188 # initialize parser with data and parser buffers
189 next(p)
190 except StopIteration:
191 pass
192 except Exception as exc:
193 output.set_exception(exc)
194 else:
195 # parser still require more data
196 self._parser = p
197 self._output = output
198
199 if self._eof:
200 self.unset_parser()
201
202 return output
203
204 def unset_parser(self):
205 """unset parser, send eof to the parser and then remove it."""

Calls 4

unset_parserMethod · 0.95
parserFunction · 0.85
set_exceptionMethod · 0.45