Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

""" 

Scrapy settings manager 

 

See documentation in docs/topics/settings.rst 

""" 

 

import os 

import cPickle as pickle 

 

from scrapy.settings import CrawlerSettings 

from scrapy.utils.conf import init_env 

 

ENVVAR = 'SCRAPY_SETTINGS_MODULE' 

 

def get_project_settings(): 

19    if ENVVAR not in os.environ: 

        project = os.environ.get('SCRAPY_PROJECT', 'default') 

        init_env(project) 

    settings_module_path = os.environ.get(ENVVAR, 'scrapy_settings') 

    try: 

        settings_module = __import__(settings_module_path, {}, {}, ['']) 

    except ImportError: 

        settings_module = None 

    settings = CrawlerSettings(settings_module) 

 

    # XXX: remove this hack 

    pickled_settings = os.environ.get("SCRAPY_PICKLED_SETTINGS_TO_OVERRIDE") 

    settings.overrides = pickle.loads(pickled_settings) if pickled_settings else {} 

 

    # XXX: deprecate and remove this functionality 

    for k, v in os.environ.items(): 

33        if k.startswith('SCRAPY_'): 

            settings.overrides[k[7:]] = v 

 

    return settings 

 

settings = get_project_settings()