Simplify bytes_received signal

Remove "source" parameter
This commit is contained in:
Eugenio Lacuesta 2020-04-06 09:26:13 -03:00
parent e3342669ae
commit c4a5e3f0da
No known key found for this signature in database
GPG Key ID: DA3EF2D0913E9810
4 changed files with 7 additions and 23 deletions

View File

@ -163,7 +163,7 @@ bytes_received
--------------
.. signal:: bytes_received
.. function:: bytes_received(data, request, spider, source)
.. function:: bytes_received(data, request, spider)
Sent by the HTTP 1.1 and S3 download handlers when a group of bytes is
received for a specific request. This signal might be fired multiple
@ -180,10 +180,6 @@ bytes_received
:param spider: the spider associated with the response
:type spider: :class:`~scrapy.spiders.Spider` object
:param source: a string to identify which handler sent the signal
(current values could be "http11" or "s3")
:type source: :class:`str` object
spider_closed
-------------

View File

@ -33,9 +33,8 @@ logger = logging.getLogger(__name__)
class HTTP11DownloadHandler:
lazy = False
def __init__(self, settings, crawler=None, source="http11"):
def __init__(self, settings, crawler=None):
self._crawler = crawler
self._source = source
from twisted.internet import reactor
self._pool = HTTPConnectionPool(reactor, persistent=True)
@ -71,8 +70,8 @@ class HTTP11DownloadHandler:
self._disconnect_timeout = 1
@classmethod
def from_crawler(cls, crawler, **kwargs):
return cls(crawler.settings, crawler, **kwargs)
def from_crawler(cls, crawler):
return cls(crawler.settings, crawler)
def download_request(self, request, spider):
"""Return a deferred for the HTTP download"""
@ -83,7 +82,6 @@ class HTTP11DownloadHandler:
warnsize=getattr(spider, 'download_warnsize', self._default_warnsize),
fail_on_dataloss=self._fail_on_dataloss,
crawler=self._crawler,
source=self._source,
)
return agent.download_request(request)
@ -281,7 +279,7 @@ class ScrapyAgent:
_TunnelingAgent = TunnelingAgent
def __init__(self, contextFactory=None, connectTimeout=10, bindAddress=None, pool=None,
maxsize=0, warnsize=0, fail_on_dataloss=True, crawler=None, source=None):
maxsize=0, warnsize=0, fail_on_dataloss=True, crawler=None):
self._contextFactory = contextFactory
self._connectTimeout = connectTimeout
self._bindAddress = bindAddress
@ -291,7 +289,6 @@ class ScrapyAgent:
self._fail_on_dataloss = fail_on_dataloss
self._txresponse = None
self._crawler = crawler
self._source = source
def _get_agent(self, request, timeout):
from twisted.internet import reactor
@ -430,7 +427,6 @@ class ScrapyAgent:
warnsize=warnsize,
fail_on_dataloss=fail_on_dataloss,
crawler=self._crawler,
source=self._source,
)
)
@ -468,9 +464,7 @@ class _RequestBodyProducer:
class _ResponseReader(protocol.Protocol):
def __init__(
self, finished, txresponse, request, maxsize, warnsize, fail_on_dataloss, crawler, source
):
def __init__(self, finished, txresponse, request, maxsize, warnsize, fail_on_dataloss, crawler):
self._finished = finished
self._txresponse = txresponse
self._request = request
@ -483,7 +477,6 @@ class _ResponseReader(protocol.Protocol):
self._bytes_received = 0
self._certificate = None
self._crawler = crawler
self._source = source
def connectionMade(self):
if self._certificate is None:
@ -503,7 +496,6 @@ class _ResponseReader(protocol.Protocol):
data=bodyBytes,
request=self._request,
spider=self._crawler.spider,
source=self._source,
)
if self._maxsize and self._bytes_received > self._maxsize:

View File

@ -73,7 +73,6 @@ class S3DownloadHandler:
objcls=httpdownloadhandler,
settings=settings,
crawler=crawler,
source="s3",
)
self._download_http = _http_handler.download_request

View File

@ -112,7 +112,6 @@ class CrawlerRun:
self.itemerror = []
self.itemresp = []
self.bytes = defaultdict(lambda: list())
self.bytes_source = set()
self.signals_caught = {}
self.spider_class = spider_class
@ -166,9 +165,8 @@ class CrawlerRun:
def item_scraped(self, item, spider, response):
self.itemresp.append((item, response))
def bytes_received(self, data, request, spider, source):
def bytes_received(self, data, request, spider):
self.bytes[request].append(data)
self.bytes_source.add(source)
def request_scheduled(self, request, spider):
self.reqplug.append((request, spider))
@ -281,7 +279,6 @@ class EngineTest(unittest.TestCase):
def _assert_bytes_received(self):
self.assertEqual(9, len(self.run.bytes))
self.assertEqual(self.run.bytes_source, set(["http11"]))
for request, data in self.run.bytes.items():
joined_data = b"".join(data)
if self.run.getpath(request.url) == "/":