mirror of
https://github.com/scrapy/scrapy.git
synced 2025-02-26 07:03:49 +00:00
* multiple projects * uploading scrapy projects as Python eggs * scheduling spiders using a JSON API Documentation is added along with the code. Closes #218. --HG-- rename : debian/scrapy-service.default => debian/scrapyd.default rename : debian/scrapy-service.dirs => debian/scrapyd.dirs rename : debian/scrapy-service.install => debian/scrapyd.install rename : debian/scrapy-service.lintian-overrides => debian/scrapyd.lintian-overrides rename : debian/scrapy-service.postinst => debian/scrapyd.postinst rename : debian/scrapy-service.postrm => debian/scrapyd.postrm rename : debian/scrapy-service.upstart => debian/scrapyd.upstart rename : extras/scrapy.tac => extras/scrapyd.tac
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
import pkgutil
|
|
from cStringIO import StringIO
|
|
from ConfigParser import SafeConfigParser, NoSectionError, NoOptionError
|
|
|
|
from scrapy.utils.conf import get_sources
|
|
|
|
class Config(object):
|
|
"""A ConfigParser wrapper to support defaults when calling instance
|
|
methods, and also tied to a single section"""
|
|
|
|
SOURCES = ['scrapyd.cfg', '/etc/scrapyd.cfg']
|
|
SECTION = 'scrapyd'
|
|
|
|
def __init__(self):
|
|
sources = self.SOURCES + get_sources()
|
|
default_config = pkgutil.get_data(__package__, 'default_scrapyd.cfg')
|
|
self.cp = SafeConfigParser()
|
|
self.cp.readfp(StringIO(default_config))
|
|
self.cp.read(sources)
|
|
|
|
def _getany(self, method, option, default):
|
|
try:
|
|
return method(self.SECTION, option)
|
|
except (NoSectionError, NoOptionError):
|
|
if default is not None:
|
|
return default
|
|
raise
|
|
|
|
def get(self, option, default=None):
|
|
return self._getany(self.cp.get, option, default)
|
|
|
|
def getint(self, option, default=None):
|
|
return self._getany(self.cp.getint, option, default)
|
|
|
|
def getfloat(self, option, default=None):
|
|
return self._getany(self.cp.getfloat, option, default)
|
|
|
|
def getboolean(self, option, default=None):
|
|
return self._getany(self.cp.getboolean, option, default)
|