class LibraryServer(TestServer): def __init__(self, library_path, libraries=(), plugins=(), **kwargs): Thread.__init__(self, name='ServerMain') from calibre.srv.opts import Options from calibre.srv.loop import ServerLoop from calibre.srv.handler import Handler from calibre.srv.http_response import create_http_handler self.setup_defaults(kwargs) opts = Options(**kwargs) self.libraries = libraries or (library_path, ) self.handler = Handler(self.libraries, opts, testing=True) self.loop = ServerLoop( create_http_handler(self.handler.dispatch), opts=opts, plugins=plugins, log=ServerLog(level=ServerLog.DEBUG), ) self.log = self.loop.log self.handler.set_log(self.log) def __exit__(self, *args): try: self.loop.stop() except Exception as e: self.log.error('Failed to stop server with error:', e) self.handler.close() self.join(self.loop.opts.shutdown_timeout) self.loop.close_control_connection()
class LibraryServer(TestServer): def __init__(self, library_path, libraries=(), plugins=(), specialize=lambda x: None, **kwargs): Thread.__init__(self, name='ServerMain') from calibre.srv.opts import Options from calibre.srv.loop import ServerLoop from calibre.srv.handler import Handler from calibre.srv.http_response import create_http_handler self.setup_defaults(kwargs) opts = Options(**kwargs) self.libraries = libraries or (library_path, ) self.handler = Handler(self.libraries, opts, testing=True) self.loop = ServerLoop( create_http_handler(self.handler.dispatch), opts=opts, plugins=plugins, log=ServerLog(level=ServerLog.WARN), ) self.handler.set_log(self.loop.log) specialize(self) def __exit__(self, *args): self.loop.stop() self.handler.close() self.join(self.loop.opts.shutdown_timeout)
class LibraryServer(TestServer): def __init__(self, library_path, libraries=(), plugins=(), specialize=lambda x:None, **kwargs): Thread.__init__(self, name='ServerMain') from calibre.srv.opts import Options from calibre.srv.loop import ServerLoop from calibre.srv.handler import Handler from calibre.srv.http_response import create_http_handler self.setup_defaults(kwargs) opts = Options(**kwargs) self.libraries = libraries or (library_path,) self.handler = Handler(self.libraries, opts, testing=True) self.loop = ServerLoop( create_http_handler(self.handler.dispatch), opts=opts, plugins=plugins, log=ServerLog(level=ServerLog.WARN), ) self.handler.set_log(self.loop.log) specialize(self) def __exit__(self, *args): self.loop.stop() self.handler.close() self.join(self.loop.opts.shutdown_timeout)