def main(): """Regenerate all documentation.""" utils.change_cwd() loader.load_components(skip_hooks=True) print("Generating manpage...") regenerate_manpage('doc/qutebrowser.1.asciidoc') print("Generating settings help...") generate_settings('doc/help/settings.asciidoc') print("Generating command help...") generate_commands('doc/help/commands.asciidoc') if '--cheatsheet' in sys.argv: print("Regenerating cheatsheet .pngs") regenerate_cheatsheet() if '--html' in sys.argv: asciidoc2html.main()
def init(args, crash_handler): """Initialize everything. Args: args: The argparse namespace. crash_handler: The CrashHandler instance. """ log.init.debug("Starting init...") crash_handler.init_faulthandler() q_app.setQuitOnLastWindowClosed(False) _init_icon() loader.init() loader.load_components() try: _init_modules(args, crash_handler) except (OSError, UnicodeDecodeError, browsertab.WebTabError) as e: error.handle_fatal_exc(e, args, "Error while initializing!", pre_text="Error while initializing") sys.exit(usertypes.Exit.err_init) log.init.debug("Initializing eventfilter...") event_filter = EventFilter(q_app) q_app.installEventFilter(event_filter) objreg.register('event-filter', event_filter) log.init.debug("Connecting signals...") q_app.focusChanged.connect(on_focus_changed) _process_args(args) QDesktopServices.setUrlHandler('http', open_desktopservices_url) QDesktopServices.setUrlHandler('https', open_desktopservices_url) QDesktopServices.setUrlHandler('qute', open_desktopservices_url) log.init.debug("Init done!") crash_handler.raise_crashdlg()
def init(*, args: argparse.Namespace, crash_handler: crashsignal.CrashHandler, quitter: 'Quitter'): """Initialize everything.""" log.init.debug("Starting init...") crash_handler.init_faulthandler() q_app.setQuitOnLastWindowClosed(False) quitter.shutting_down.connect(QApplication.closeAllWindows) _init_icon() loader.init() loader.load_components() try: _init_modules(args=args, crash_handler=crash_handler, quitter=quitter) except (OSError, UnicodeDecodeError, browsertab.WebTabError) as e: error.handle_fatal_exc(e, args, "Error while initializing!", pre_text="Error while initializing") sys.exit(usertypes.Exit.err_init) log.init.debug("Initializing eventfilter...") event_filter = EventFilter(q_app) event_filter.install() quitter.shutting_down.connect(event_filter.shutdown) log.init.debug("Connecting signals...") q_app.focusChanged.connect(on_focus_changed) # type: ignore _process_args(args) for scheme in ['http', 'https', 'qute']: QDesktopServices.setUrlHandler( scheme, open_desktopservices_url) # type: ignore log.init.debug("Init done!") crash_handler.raise_crashdlg()
def init(*, args: argparse.Namespace) -> None: """Initialize everything.""" log.init.debug("Starting init...") crashsignal.crash_handler.init_faulthandler() objects.qapp.setQuitOnLastWindowClosed(False) quitter.instance.shutting_down.connect(QApplication.closeAllWindows) _init_icon() _init_pulseaudio() loader.init() loader.load_components() try: _init_modules(args=args) except (OSError, UnicodeDecodeError, browsertab.WebTabError) as e: error.handle_fatal_exc(e, "Error while initializing!", no_err_windows=args.no_err_windows, pre_text="Error while initializing") sys.exit(usertypes.Exit.err_init) log.init.debug("Initializing eventfilter...") eventfilter.init() log.init.debug("Connecting signals...") objects.qapp.focusChanged.connect(on_focus_changed) _process_args(args) for scheme in ['http', 'https', 'qute']: QDesktopServices.setUrlHandler( scheme, open_desktopservices_url) log.init.debug("Init done!") crashsignal.crash_handler.raise_crashdlg()
def whitelist_generator(): # noqa: C901 """Generator which yields lines to add to a vulture whitelist.""" loader.load_components(skip_hooks=True) # qutebrowser commands for cmd in objects.commands.values(): yield utils.qualname(cmd.handler) # pyPEG2 classes for name, member in inspect.getmembers(rfc6266, inspect.isclass): for attr in ['grammar', 'regex']: if hasattr(member, attr): yield 'qutebrowser.browser.webkit.rfc6266.{}.{}'.format( name, attr) # PyQt properties yield 'qutebrowser.mainwindow.statusbar.bar.StatusBar.color_flags' yield 'qutebrowser.mainwindow.statusbar.url.UrlText.urltype' # Not used yet, but soon (or when debugging) yield 'qutebrowser.utils.debug.log_events' yield 'qutebrowser.utils.debug.log_signals' yield 'qutebrowser.utils.debug.qflags_key' yield 'qutebrowser.utils.qtutils.QtOSError.qt_errno' yield 'scripts.utils.bg_colors' yield 'qutebrowser.misc.sql.SqliteErrorCode.CONSTRAINT' yield 'qutebrowser.misc.throttle.Throttle.set_delay' # Qt attributes yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().baseUrl' yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().content' yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().encoding' yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().fileNames' yield 'PyQt5.QtWidgets.QStyleOptionViewItem.backgroundColor' ## qute://... handlers for name in qutescheme._HANDLERS: # pylint: disable=protected-access name = name.replace('-', '_') yield 'qutebrowser.browser.qutescheme.qute_' + name # Other false-positives yield 'qutebrowser.completion.models.listcategory.ListCategory().lessThan' yield 'qutebrowser.utils.jinja.Loader.get_source' yield 'qutebrowser.utils.log.QtWarningFilter.filter' yield 'qutebrowser.browser.pdfjs.is_available' yield 'qutebrowser.misc.guiprocess.spawn_output' yield 'qutebrowser.utils.usertypes.ExitStatus.reserved' yield 'QEvent.posted' yield 'log_stack' # from message.py yield 'propagate' # logging.getLogger('...).propagate = False # vulture doesn't notice the hasattr() and thus thinks netrc_used is unused # in NetworkManager.on_authentication_required yield 'PyQt5.QtNetwork.QNetworkReply.netrc_used' yield 'qutebrowser.browser.downloads.last_used_directory' yield 'PaintContext.clip' # from completiondelegate.py yield 'logging.LogRecord.log_color' # from logging.py yield 'scripts.utils.use_color' # from asciidoc2html.py for attr in ['pyeval_output', 'log_clipboard', 'fake_clipboard']: yield 'qutebrowser.misc.utilcmds.' + attr for attr in ['fileno', 'truncate', 'closed', 'readable']: yield 'qutebrowser.utils.qtutils.PyQIODevice.' + attr for attr in ['msgs', 'priority', 'visit_attribute']: yield 'scripts.dev.pylint_checkers.config.' + attr for attr in ['visit_call', 'process_module']: yield 'scripts.dev.pylint_checkers.modeline.' + attr for name, _member in inspect.getmembers(configtypes, inspect.isclass): yield 'qutebrowser.config.configtypes.' + name yield 'qutebrowser.config.configexc.ConfigErrorDesc.traceback' yield 'qutebrowser.config.configfiles.ConfigAPI.load_autoconfig' yield 'types.ModuleType.c' # configfiles:read_config_py for name in ['configdir', 'datadir']: yield 'qutebrowser.config.configfiles.ConfigAPI.' + name yield 'include_aliases' for attr in [ '_get_default_metavar_for_optional', '_get_default_metavar_for_positional', '_metavar_formatter' ]: yield 'scripts.dev.src2asciidoc.UsageFormatter.' + attr for dist in version.Distribution: yield 'qutebrowser.utils.version.Distribution.{}'.format(dist.name) # attrs yield 'qutebrowser.browser.webkit.network.networkmanager.ProxyId.hostname' yield 'qutebrowser.command.command.ArgInfo._validate_exclusive' yield 'scripts.get_coredumpctl_traces.Line.uid' yield 'scripts.get_coredumpctl_traces.Line.gid' yield 'scripts.importer.import_moz_places.places.row_factory' # component hooks yield 'qutebrowser.components.hostblock.on_lists_changed' yield 'qutebrowser.components.braveadblock.on_lists_changed' yield 'qutebrowser.components.hostblock.on_method_changed' yield 'qutebrowser.components.braveadblock.on_method_changed' # used in type comments yield 'pending_download_type' yield 'world_id_type' yield 'ParserDictType' yield 'qutebrowser.config.configutils.Values._VmapKeyType'
def whitelist_generator(): # noqa """Generator which yields lines to add to a vulture whitelist.""" loader.load_components(skip_hooks=True) # qutebrowser commands for cmd in objects.commands.values(): yield utils.qualname(cmd.handler) # pyPEG2 classes for name, member in inspect.getmembers(rfc6266, inspect.isclass): for attr in ['grammar', 'regex']: if hasattr(member, attr): yield 'qutebrowser.browser.webkit.rfc6266.{}.{}'.format(name, attr) # PyQt properties yield 'qutebrowser.mainwindow.statusbar.bar.StatusBar.color_flags' yield 'qutebrowser.mainwindow.statusbar.url.UrlText.urltype' # Not used yet, but soon (or when debugging) yield 'qutebrowser.utils.debug.log_events' yield 'qutebrowser.utils.debug.log_signals' yield 'qutebrowser.utils.debug.qflags_key' yield 'qutebrowser.utils.qtutils.QtOSError.qt_errno' yield 'scripts.utils.bg_colors' yield 'qutebrowser.misc.sql.SqliteErrorCode.CONSTRAINT' # Qt attributes yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().baseUrl' yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().content' yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().encoding' yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().fileNames' yield 'PyQt5.QtWidgets.QStyleOptionViewItem.backgroundColor' ## qute://... handlers for name in qutescheme._HANDLERS: # pylint: disable=protected-access name = name.replace('-', '_') yield 'qutebrowser.browser.qutescheme.qute_' + name # Other false-positives yield 'qutebrowser.completion.models.listcategory.ListCategory().lessThan' yield 'qutebrowser.utils.jinja.Loader.get_source' yield 'qutebrowser.utils.log.QtWarningFilter.filter' yield 'qutebrowser.browser.pdfjs.is_available' yield 'qutebrowser.misc.guiprocess.spawn_output' yield 'qutebrowser.utils.usertypes.ExitStatus.reserved' yield 'QEvent.posted' yield 'log_stack' # from message.py yield 'propagate' # logging.getLogger('...).propagate = False # vulture doesn't notice the hasattr() and thus thinks netrc_used is unused # in NetworkManager.on_authentication_required yield 'PyQt5.QtNetwork.QNetworkReply.netrc_used' yield 'qutebrowser.browser.downloads.last_used_directory' yield 'PaintContext.clip' # from completiondelegate.py yield 'logging.LogRecord.log_color' # from logging.py yield 'scripts.utils.use_color' # from asciidoc2html.py for attr in ['pyeval_output', 'log_clipboard', 'fake_clipboard']: yield 'qutebrowser.misc.utilcmds.' + attr for attr in ['fileno', 'truncate', 'closed', 'readable']: yield 'qutebrowser.utils.qtutils.PyQIODevice.' + attr for attr in ['msgs', 'priority', 'visit_attribute']: yield 'scripts.dev.pylint_checkers.config.' + attr for attr in ['visit_call', 'process_module']: yield 'scripts.dev.pylint_checkers.modeline.' + attr for name, _member in inspect.getmembers(configtypes, inspect.isclass): yield 'qutebrowser.config.configtypes.' + name yield 'qutebrowser.config.configexc.ConfigErrorDesc.traceback' yield 'qutebrowser.config.configfiles.ConfigAPI.load_autoconfig' yield 'types.ModuleType.c' # configfiles:read_config_py for name in ['configdir', 'datadir']: yield 'qutebrowser.config.configfiles.ConfigAPI.' + name yield 'include_aliases' for attr in ['_get_default_metavar_for_optional', '_get_default_metavar_for_positional', '_metavar_formatter']: yield 'scripts.dev.src2asciidoc.UsageFormatter.' + attr # attrs yield 'qutebrowser.browser.webkit.network.networkmanager.ProxyId.hostname' yield 'qutebrowser.command.command.ArgInfo._validate_exclusive' yield 'scripts.get_coredumpctl_traces.Line.uid' yield 'scripts.get_coredumpctl_traces.Line.gid' yield 'scripts.importer.import_moz_places.places.row_factory' # component hooks yield 'qutebrowser.components.adblock.on_config_changed'