from zope.interface import Interface class ISpiderLoader(Interface): def from_settings(settings): """Return an instance of the class for the given settings""" def load(spider_name): """Return the Spider class for the given spider name. If the spider name is not found, it must raise a KeyError.""" def list(): """Return a list with the names of all spiders available in the project""" def find_by_request(request): """Return the list of spiders names that can handle the given request""" # ISpiderManager is deprecated, don't use it! # An alias is kept for backwards compatibility. ISpiderManager = ISpiderLoader