1
0
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:
Rotzbua 2024-01-05 12:30:10 +01:00
parent 40e623b276
commit 0d445a3224
No known key found for this signature in database
GPG Key ID: C69022D529C17845
11 changed files with 15 additions and 30 deletions

View File

@ -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

View File

@ -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 = []

View File

@ -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"):

View File

@ -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"):

View File

@ -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

View File

@ -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(

View File

@ -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):

View File

@ -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("/")]

View File

@ -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))

View File

@ -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):

View File

@ -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))