def __init__( self, # Logging. If None, uses a default log, which does not output # debugging info log=None, # Receives a string and returns True/False. By default, returns # True for all strings confirm_callback=None, # Prompt callback. Receives a msg string and a default value # string. Should return the user input value or None if the user # canceled the prompt. By default returns None. prompt_callback=None, # User agent to be used user_agent=USER_AGENT, # The size (in MB) of the on disk cache. Note that because the disk # cache cannot be shared between different instances, we currently # use a temporary dir for the cache, which is deleted on # program exit. Set to zero to disable cache. disk_cache_size=50, # Enable Inspect element functionality enable_developer_tools=False, # Verbosity verbosity=0, # The default timeout (in seconds) default_timeout=30, # If True, do not connect to the X server on linux headless=True): must_use_qt(headless=headless) QObject.__init__(self) FormsMixin.__init__(self) if log is None: log = ThreadSafeLog() if verbosity: log.filter_level = log.DEBUG self.log = log self.default_timeout = default_timeout self.page = WebPage(log, confirm_callback=confirm_callback, prompt_callback=prompt_callback, user_agent=user_agent, enable_developer_tools=enable_developer_tools, parent=self) self.nam = NetworkAccessManager(log, disk_cache_size=disk_cache_size, parent=self) self.page.setNetworkAccessManager(self.nam)
def __init__(self, # Logging. If None, uses a default log, which does not output # debugging info log=None, # Receives a string and returns True/False. By default, returns # True for all strings confirm_callback=None, # Prompt callback. Receives a msg string and a default value # string. Should return the user input value or None if the user # canceled the prompt. By default returns None. prompt_callback=None, # User agent to be used user_agent=USER_AGENT, # The size (in MB) of the on disk cache. Note that because the disk # cache cannot be shared between different instances, we currently # use a temporary dir for the cache, which is deleted on # program exit. Set to zero to disable cache. disk_cache_size=50, # Enable Inspect element functionality enable_developer_tools=False, # Verbosity verbosity=0, # The default timeout (in seconds) default_timeout=30, # If True, do not connect to the X server on linux headless=True ): must_use_qt(headless=headless) QObject.__init__(self) FormsMixin.__init__(self) if log is None: log = ThreadSafeLog() if verbosity: log.filter_level = log.DEBUG self.log = log self.default_timeout = default_timeout self.page = WebPage(log, confirm_callback=confirm_callback, prompt_callback=prompt_callback, user_agent=user_agent, enable_developer_tools=enable_developer_tools, parent=self) self.nam = NetworkAccessManager(log, disk_cache_size=disk_cache_size, parent=self) self.page.setNetworkAccessManager(self.nam)
def __init__( self, # Logging. If None, uses a default log, which does not output # debugging info log=None, # Receives a string and returns True/False. By default, returns # True for all strings confirm_callback=None, # Prompt callback. Receives a msg string and a default value # string. Should return the user input value or None if the user # canceled the prompt. By default returns None. prompt_callback=None, # User agent to be used user_agent=USER_AGENT, # If True a disk cache is used use_disk_cache=True, # Enable Inspect element functionality enable_developer_tools=False, # Verbosity verbosity=0, # The default timeout (in seconds) default_timeout=30): must_use_qt() QObject.__init__(self) FormsMixin.__init__(self) if log is None: log = ThreadSafeLog() if verbosity: log.filter_level = log.DEBUG self.log = log self.default_timeout = default_timeout self.page = WebPage(log, confirm_callback=confirm_callback, prompt_callback=prompt_callback, user_agent=user_agent, enable_developer_tools=enable_developer_tools, parent=self) self.nam = NetworkAccessManager(log, use_disk_cache=use_disk_cache, parent=self) self.page.setNetworkAccessManager(self.nam)
def __init__(self, # Logging. If None, uses a default log, which does not output # debugging info log=None, # Receives a string and returns True/False. By default, returns # True for all strings confirm_callback=None, # Prompt callback. Receives a msg string and a default value # string. Should return the user input value or None if the user # canceled the prompt. By default returns None. prompt_callback=None, # User agent to be used user_agent=USER_AGENT, # If True a disk cache is used use_disk_cache=True, # Enable Inspect element functionality enable_developer_tools=False, # Verbosity verbosity=0, # The default timeout (in seconds) default_timeout=30 ): must_use_qt() QObject.__init__(self) FormsMixin.__init__(self) if log is None: log = ThreadSafeLog() if verbosity: log.filter_level = log.DEBUG self.log = log self.default_timeout = default_timeout self.page = WebPage(log, confirm_callback=confirm_callback, prompt_callback=prompt_callback, user_agent=user_agent, enable_developer_tools=enable_developer_tools, parent=self) self.nam = NetworkAccessManager(log, use_disk_cache=use_disk_cache, parent=self) self.page.setNetworkAccessManager(self.nam)
def __init__( self, handler, opts=None, plugins=(), # A calibre logging object. If None, a default log that logs to # stdout is used log=None, # A calibre logging object for access logging, by default no access # logging is performed access_log=None): self.ready = False self.handler = handler self.opts = opts or Options() if self.opts.trusted_ips: self.opts.trusted_ips = tuple( parse_trusted_ips(self.opts.trusted_ips)) self.log = log or ThreadSafeLog(level=ThreadSafeLog.DEBUG) self.jobs_manager = JobsManager(self.opts, self.log) self.access_log = access_log ba = (self.opts.listen_on, int(self.opts.port)) if not ba[0]: # AI_PASSIVE does not work with host of '' or None ba = ('0.0.0.0', ba[1]) self.bind_address = ba self.bound_address = None self.connection_map = {} self.ssl_context = None if self.opts.ssl_certfile is not None and self.opts.ssl_keyfile is not None: self.ssl_context = ssl.create_default_context( ssl.Purpose.CLIENT_AUTH) self.ssl_context.load_cert_chain(certfile=self.opts.ssl_certfile, keyfile=self.opts.ssl_keyfile) self.ssl_context.set_servername_callback(self.on_ssl_servername) self.pre_activated_socket = None if self.opts.allow_socket_preallocation: from calibre.srv.pre_activated import pre_activated_socket self.pre_activated_socket = pre_activated_socket() if self.pre_activated_socket is not None: set_socket_inherit(self.pre_activated_socket, False) self.bind_address = self.pre_activated_socket.getsockname() self.create_control_connection() self.pool = ThreadPool(self.log, self.job_completed, count=self.opts.worker_count) self.plugin_pool = PluginPool(self, plugins)
def create_log(ostream=None): from calibre.utils.logging import ThreadSafeLog, FileStream log = ThreadSafeLog(level=ThreadSafeLog.DEBUG) log.outputs = [FileStream(ostream)] return log