Example #1
0
    def __init__(self, root_directory, logger=None, session_manager=None,
                 config=None, **kwargs):
        global _publisher
        if config is None:
            self.config = Config(**kwargs)
        else:
            if kwargs:
                raise ValueError("cannot provide both 'config' object and"
                                 " config arguments")
            self.config = config
        if logger is None:
            self.logger = DefaultLogger(error_log=self.config.error_log,
                                        access_log=self.config.access_log,
                                        error_email=self.config.error_email)
        else:
            self.logger = logger
        if session_manager is not None:
            self.session_manager = session_manager
        else:
            from quixote.session import NullSessionManager
            self.session_manager = NullSessionManager()

        if _publisher is not None:
            raise RuntimeError, "only one instance of Publisher allowed"
        _publisher = self

        if not callable(getattr(root_directory, '_q_traverse')):
            raise TypeError(
                'Expected something with a _q_traverse method, got %r' %
                root_directory)
        self.root_directory = root_directory
        self._request = None