1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-24 22:23:46 +00:00

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.
This commit is contained in:
Mikhail Korobov 2013-09-25 20:37:06 +06:00
parent 61e89d8247
commit b74e5aa551

View File

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