From 7afedb89e9587fee85ff6a4197e4901387b27c91 Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Wed, 19 Sep 2012 12:42:22 -0300 Subject: [PATCH] backwards compatibility support for scrapy.conf.settings singleton for when scrapy.conf is imported *before* calling scrapy.cmdline.execute(), such as in custom bot runners --- scrapy/cmdline.py | 11 ++++++++++- scrapy/conf.py | 6 ++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/scrapy/cmdline.py b/scrapy/cmdline.py index a0f5901bb..7c3525f95 100644 --- a/scrapy/cmdline.py +++ b/scrapy/cmdline.py @@ -84,13 +84,22 @@ def _run_print_help(parser, func, *a, **kw): def execute(argv=None, settings=None): if argv is None: argv = sys.argv + + # --- backwards compatibility for scrapy.conf.settings singleton --- + if settings is None and 'scrapy.conf' in sys.modules: + from scrapy import conf + if hasattr(conf, 'settings'): + settings = conf.settings + # ------------------------------------------------------------------ + if settings is None: settings = get_project_settings() check_deprecated_settings(settings) - # backwards compatibility to support scrapy.conf.settings + # --- backwards compatibility for scrapy.conf.settings singleton --- from scrapy import conf conf.settings = settings + # ------------------------------------------------------------------ crawler = CrawlerProcess(settings) crawler.install() diff --git a/scrapy/conf.py b/scrapy/conf.py index bd8ac3498..f8aade2d3 100644 --- a/scrapy/conf.py +++ b/scrapy/conf.py @@ -3,3 +3,9 @@ # # TODO: Add deprecation warning once all scrapy.conf instances have been # removed from Scrapy codebase. + +import sys + +if 'scrapy.cmdline' not in sys.modules: + from scrapy.utils.project import get_project_settings + settings = get_project_settings()