def site(self): """ Spin up site. """ # Set up the root factory. def get_root(request): root = get_connection(request).root() return self.find_home(root)['content'] # Colate persistent and config file based settings settings = self.settings.copy() settings.update(self.get_persistent_settings()) # Configure Pyramid application config = Configurator(root_factory=get_root, settings=settings) config.root_factory = get_root # so apps can access during config config.begin() for service in self.services: service.preconfigure(config) config.include('pyramid_zodbconn') config.include('pyramid_tm') self.application.configure(config) for service in self.services: service.configure(config) config.end() self._site = site = config.make_wsgi_app() def closer(): db = getattr(config.registry, 'zodb_database', None) if db is not None: db.close() del config.registry.zodb_database site.close = closer return site