mirror of
https://github.com/scrapy/scrapy.git
synced 2025-02-06 17:11:38 +00:00
refactor(yield): use yield from
syntax
This commit is contained in:
parent
40e623b276
commit
0d445a3224
@ -103,8 +103,7 @@ class SpiderMiddlewareManager(MiddlewareManager):
|
||||
) -> Union[Generator, AsyncGenerator]:
|
||||
def process_sync(iterable: Iterable) -> Generator:
|
||||
try:
|
||||
for r in iterable:
|
||||
yield r
|
||||
yield from iterable
|
||||
except Exception as ex:
|
||||
exception_result = self._process_spider_exception(
|
||||
response, spider, Failure(ex), exception_processor_index
|
||||
|
@ -131,8 +131,7 @@ class CrawlSpider(Spider):
|
||||
def _handle_failure(self, failure, errback):
|
||||
if errback:
|
||||
results = errback(failure) or ()
|
||||
for request_or_item in iterate_spider_output(results):
|
||||
yield request_or_item
|
||||
yield from iterate_spider_output(results)
|
||||
|
||||
def _compile_rules(self):
|
||||
self._rules = []
|
||||
|
@ -58,8 +58,7 @@ class XMLFeedSpider(Spider):
|
||||
|
||||
for selector in nodes:
|
||||
ret = iterate_spider_output(self.parse_node(response, selector))
|
||||
for result_item in self.process_results(response, ret):
|
||||
yield result_item
|
||||
yield from self.process_results(response, ret)
|
||||
|
||||
def _parse(self, response, **kwargs):
|
||||
if not hasattr(self, "parse_node"):
|
||||
@ -133,8 +132,7 @@ class CSVFeedSpider(Spider):
|
||||
response, self.delimiter, self.headers, quotechar=self.quotechar
|
||||
):
|
||||
ret = iterate_spider_output(self.parse_row(response, row))
|
||||
for result_item in self.process_results(response, ret):
|
||||
yield result_item
|
||||
yield from self.process_results(response, ret)
|
||||
|
||||
def _parse(self, response, **kwargs):
|
||||
if not hasattr(self, "parse_row"):
|
||||
|
@ -33,8 +33,7 @@ class SitemapSpider(Spider):
|
||||
attributes, for example, you can filter locs with lastmod greater
|
||||
than a given date (see docs).
|
||||
"""
|
||||
for entry in entries:
|
||||
yield entry
|
||||
yield from entries
|
||||
|
||||
def _parse_sitemap(self, response):
|
||||
if response.url.endswith("/robots.txt"):
|
||||
|
@ -57,8 +57,7 @@ def iflatten(x: Iterable) -> Iterable:
|
||||
Similar to ``.flatten()``, but returns iterator instead"""
|
||||
for el in x:
|
||||
if is_listlike(el):
|
||||
for el_ in iflatten(el):
|
||||
yield el_
|
||||
yield from iflatten(el)
|
||||
else:
|
||||
yield el
|
||||
|
||||
|
@ -44,8 +44,7 @@ def _serialize_headers(
|
||||
for header in headers:
|
||||
if header in request.headers:
|
||||
yield header
|
||||
for value in request.headers.getlist(header):
|
||||
yield value
|
||||
yield from request.headers.getlist(header)
|
||||
|
||||
|
||||
def request_fingerprint(
|
||||
|
@ -301,8 +301,7 @@ class BrokenStartRequestsSpider(FollowAllSpider):
|
||||
|
||||
def parse(self, response):
|
||||
self.seedsseen.append(response.meta.get("seed"))
|
||||
for req in super().parse(response):
|
||||
yield req
|
||||
yield from super().parse(response)
|
||||
|
||||
|
||||
class SingleRequestSpider(MetaSpider):
|
||||
|
@ -673,8 +673,7 @@ class FeedExportTestBase(ABC, unittest.TestCase):
|
||||
name = "testspider"
|
||||
|
||||
def parse(self, response):
|
||||
for item in items:
|
||||
yield item
|
||||
yield from items
|
||||
|
||||
data = yield self.run_and_export(TestSpider, settings)
|
||||
return data
|
||||
@ -2696,8 +2695,7 @@ class BatchDeliveriesTest(FeedExportTestBase):
|
||||
name = "testspider"
|
||||
|
||||
def parse(self, response):
|
||||
for item in items:
|
||||
yield item
|
||||
yield from items
|
||||
|
||||
with MockServer() as server:
|
||||
TestSpider.start_urls = [server.url("/")]
|
||||
|
@ -317,8 +317,7 @@ class CrawlSpiderTest(SpiderTest):
|
||||
rules = (Rule(LinkExtractor(), process_links="dummy_process_links"),)
|
||||
|
||||
def dummy_process_links(self, links):
|
||||
for link in links:
|
||||
yield link
|
||||
yield from links
|
||||
|
||||
spider = _CrawlSpider()
|
||||
output = list(spider._requests_to_follow(response))
|
||||
|
@ -170,8 +170,7 @@ class BaseAsyncSpiderMiddlewareTestCase(SpiderMiddlewareTestCase):
|
||||
|
||||
class ProcessSpiderOutputSimpleMiddleware:
|
||||
def process_spider_output(self, response, result, spider):
|
||||
for r in result:
|
||||
yield r
|
||||
yield from result
|
||||
|
||||
|
||||
class ProcessSpiderOutputAsyncGenMiddleware:
|
||||
@ -182,8 +181,7 @@ class ProcessSpiderOutputAsyncGenMiddleware:
|
||||
|
||||
class ProcessSpiderOutputUniversalMiddleware:
|
||||
def process_spider_output(self, response, result, spider):
|
||||
for r in result:
|
||||
yield r
|
||||
yield from result
|
||||
|
||||
async def process_spider_output_async(self, response, result, spider):
|
||||
async for r in result:
|
||||
@ -324,8 +322,7 @@ class ProcessSpiderOutputInvalidResult(BaseAsyncSpiderMiddlewareTestCase):
|
||||
|
||||
class ProcessStartRequestsSimpleMiddleware:
|
||||
def process_start_requests(self, start_requests, spider):
|
||||
for r in start_requests:
|
||||
yield r
|
||||
yield from start_requests
|
||||
|
||||
|
||||
class ProcessStartRequestsSimple(BaseAsyncSpiderMiddlewareTestCase):
|
||||
|
@ -107,8 +107,7 @@ class DeferUtilsTest(unittest.TestCase):
|
||||
class IterErrbackTest(unittest.TestCase):
|
||||
def test_iter_errback_good(self):
|
||||
def itergood():
|
||||
for x in range(10):
|
||||
yield x
|
||||
yield from range(10)
|
||||
|
||||
errors = []
|
||||
out = list(iter_errback(itergood(), errors.append))
|
||||
|
Loading…
x
Reference in New Issue
Block a user