From b74e5aa5518399e45cb4c55d1744b131e4fa1055 Mon Sep 17 00:00:00 2001 From: Mikhail Korobov Date: Wed, 25 Sep 2013 20:37:06 +0600 Subject: [PATCH] fix ITEM_PIPELINES setting handling * item_pipelines variable was unused so the fallback didn't work; * added support for fallback in case of ITEM_PIPELINIES defined as set. --- scrapy/contrib/pipeline/__init__.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scrapy/contrib/pipeline/__init__.py b/scrapy/contrib/pipeline/__init__.py index 5c723cbaa..d433498f5 100644 --- a/scrapy/contrib/pipeline/__init__.py +++ b/scrapy/contrib/pipeline/__init__.py @@ -14,15 +14,14 @@ class ItemPipelineManager(MiddlewareManager): @classmethod def _get_mwlist_from_settings(cls, settings): item_pipelines = settings['ITEM_PIPELINES'] - if isinstance(item_pipelines, (tuple, list)): + if isinstance(item_pipelines, (tuple, list, set, frozenset)): from scrapy.exceptions import ScrapyDeprecationWarning import warnings - warnings.warn('ITEM_PIPELINES defined as a list is deprecated, switch to a dict', + warnings.warn('ITEM_PIPELINES defined as a list or a set is deprecated, switch to a dict', category=ScrapyDeprecationWarning, stacklevel=1) # convert old ITEM_PIPELINE list to a dict with order 500 item_pipelines = dict(zip(item_pipelines, range(500, 500+len(item_pipelines)))) - return build_component_list(settings['ITEM_PIPELINES_BASE'], - settings['ITEM_PIPELINES']) + return build_component_list(settings['ITEM_PIPELINES_BASE'], item_pipelines) def _add_middleware(self, pipe): super(ItemPipelineManager, self)._add_middleware(pipe)