From 6420c407d2c23fe1cd71d39cbee3ccc67511e76f Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Thu, 8 Jan 2009 14:21:20 +0000 Subject: [PATCH] removed scrapyengine import from downoader code, minor improvements to docstrings --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40684 --- .../trunk/scrapy/core/downloader/manager.py | 19 ++++++++++--------- scrapy/trunk/scrapy/core/engine.py | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/scrapy/trunk/scrapy/core/downloader/manager.py b/scrapy/trunk/scrapy/core/downloader/manager.py index f07c43ab0..b6cd2068e 100644 --- a/scrapy/trunk/scrapy/core/downloader/manager.py +++ b/scrapy/trunk/scrapy/core/downloader/manager.py @@ -43,15 +43,18 @@ class SiteDetails(object): class Downloader(object): - """Maintain many concurrent downloads and provide an HTTP abstraction - We will have a limited number of connections per domain and scrape many domains in + """Maintain many concurrent downloads and provide an HTTP abstraction. + It supports a limited number of connections per domain and many domains in parallel. - - request(..) should be called to request resources using http, https or file - protocols. """ - def __init__(self) : + def __init__(self, engine): + """Create the downlaoder. + + ``engine`` is the scrapy engine controlling this downloader + """ + + self.engine = engine self.sites = {} self.middleware = DownloaderMiddlewareManager() self.middleware.download_function = self.enqueue @@ -113,10 +116,8 @@ class Downloader(object): self._download(request, spider, deferred) if site.closed and site.is_idle(): - # XXX: Remove scrapyengine reference del self.sites[domain] - from scrapy.core.engine import scrapyengine - scrapyengine.closed_domain(domain=domain) + self.engine.closed_domain(domain) def _download(self, request, spider, deferred): log.msg('Activating %s' % request.traceinfo(), log.TRACE) diff --git a/scrapy/trunk/scrapy/core/engine.py b/scrapy/trunk/scrapy/core/engine.py index c1cff3c53..52f682461 100644 --- a/scrapy/trunk/scrapy/core/engine.py +++ b/scrapy/trunk/scrapy/core/engine.py @@ -56,7 +56,7 @@ class ExecutionEngine(object): Configure execution engine with the given scheduling policy and downloader. """ self.scheduler = scheduler or Scheduler() - self.downloader = downloader or Downloader() + self.downloader = downloader or Downloader(self) self.spidermiddleware = SpiderMiddlewareManager() self._scraping = {} self.pipeline = ItemPipelineManager()