mirror of https://github.com/scrapy/scrapy.git
get_project_settings now returns a Settings instance
This commit is contained in:
parent
b397f5e935
commit
c496468e2a
|
|
@ -6,7 +6,7 @@ from importlib import import_module
|
|||
from os.path import join, dirname, abspath, isabs, exists
|
||||
|
||||
from scrapy.utils.conf import closest_scrapy_cfg, get_config, init_env
|
||||
from scrapy.settings import CrawlerSettings
|
||||
from scrapy.settings import Settings
|
||||
from scrapy.exceptions import NotConfigured
|
||||
|
||||
ENVVAR = 'SCRAPY_SETTINGS_MODULE'
|
||||
|
|
@ -53,20 +53,21 @@ def get_project_settings():
|
|||
if ENVVAR not in os.environ:
|
||||
project = os.environ.get('SCRAPY_PROJECT', 'default')
|
||||
init_env(project)
|
||||
|
||||
settings = Settings()
|
||||
settings_module_path = os.environ.get(ENVVAR)
|
||||
if settings_module_path:
|
||||
settings_module = import_module(settings_module_path)
|
||||
else:
|
||||
settings_module = None
|
||||
settings = CrawlerSettings(settings_module)
|
||||
settings.setmodule(settings_module_path, priority='project')
|
||||
|
||||
# XXX: remove this hack
|
||||
pickled_settings = os.environ.get("SCRAPY_PICKLED_SETTINGS_TO_OVERRIDE")
|
||||
settings.overrides = pickle.loads(pickled_settings) if pickled_settings else {}
|
||||
if pickled_settings:
|
||||
settings.setdict(pickle.loads(pickled_settings), priority='project')
|
||||
|
||||
# XXX: deprecate and remove this functionality
|
||||
for k, v in os.environ.items():
|
||||
if k.startswith('SCRAPY_'):
|
||||
settings.overrides[k[7:]] = v
|
||||
env_overrides = {k[7:]: v for k, v in os.environ.items() if
|
||||
k.startswith('SCRAPY_')}
|
||||
if env_overrides:
|
||||
settings.setdict(env_overrides, priority='project')
|
||||
|
||||
return settings
|
||||
|
|
|
|||
Loading…
Reference in New Issue