Repository Analysis

qutebrowser/qutebrowser

A keyboard-driven, vim-like browser based on Python and Qt.

9.3 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of qutebrowser/qutebrowser, a Python project with 11,594 GitHub stars. SynthScan v2.0 examined 167,580 lines of code across 726 source files, recording 1249 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 9.3 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

9.3
Adjusted Score
9.3
Raw Score
100%
Time Factor
2026-07-13
Last Push
11.6K
Stars
Python
Language
167.6K
Lines of Code
726
Files
1.2K
Pattern Hits
2026-07-14
Scan Date
0.09
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 62MEDIUM 12LOW 1175

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1249 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers732 hits · 719 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py168def pytest_collection_modifyitems(config, items):CODE
LOWtests/conftest.py414def pytest_runtest_makereport(item, call):CODE
LOWtests/unit/test_qt_machinery.py54def test_importerror_exceptions(exception: Exception, base: type[Exception]):CODE
LOWtests/unit/test_qt_machinery.py59def test_selectioninfo_set_module_error():CODE
LOWtests/unit/test_qt_machinery.py69def test_selectioninfo_use_wrapper():CODE
LOWtests/unit/test_qt_machinery.py121def test_selectioninfo_str_wrapper_precedence(order: list[str]):CODE
LOWtests/unit/test_qt_machinery.py346 def test_autoselect_by_default(CODE
LOWtests/unit/test_qt_machinery.py417 def test_none_available_implicit(CODE
LOWtests/unit/test_qt_machinery.py441 def test_none_available_explicit(CODE
LOWtests/unit/misc/test_ipc.py187 def test_windows_broken_getpass(self, monkeypatch):CODE
LOWtests/unit/misc/test_ipc.py356 def test_atime_update_no_name(self, qtbot, caplog, ipc_server):CODE
LOWtests/unit/misc/test_ipc.py363 def test_atime_shutdown_typeerror(self, qtbot, ipc_server):CODE
LOWtests/unit/misc/test_ipc.py369 def test_vanished_runtime_file(self, qtbot, caplog, ipc_server):CODE
LOWtests/unit/misc/test_ipc.py431 def test_disconnected_immediately(self, ipc_server, caplog):CODE
LOWtests/unit/misc/test_ipc.py447 def test_read_line_immediately(self, qtbot, ipc_server, caplog):CODE
LOWtests/unit/misc/test_ipc.py473def test_disconnected_without_data(qtbot, connected_socket,CODE
LOWtests/unit/misc/test_ipc.py582 def test_not_disconnected_immediately(self):CODE
LOWtests/unit/misc/test_ipc.py586 def test_socket_error_no_server(self):CODE
LOWtests/unit/misc/test_ipc.py610def test_ipcserver_socket_none_readyread(ipc_server, caplog):CODE
LOWtests/unit/misc/test_ipc.py620def test_ipcserver_socket_none_error(ipc_server, caplog):CODE
LOWtests/unit/misc/test_ipc.py709 def test_address_in_use_error(self, qlocalserver_mock, qlocalsocket_mock,CODE
LOWtests/unit/misc/test_ipc.py754 def test_error_while_listening(self, qlocalserver_mock, caplog, args):CODE
LOWtests/unit/misc/test_ipc.py804def test_socket_options_address_in_use_problem(qlocalserver, short_tmpdir):CODE
LOWtests/unit/misc/test_checkpyver.py45def test_patched_no_errwindow(capfd, monkeypatch):CODE
LOWtests/unit/misc/test_split.py92def _parse_split_test_data_str():STRING
LOWtests/unit/misc/test_miscwidgets.py58 def test_selection_cursor_left(self, qtbot, cmd_edit):CODE
LOWtests/unit/misc/test_miscwidgets.py159 def test_cycle_focus_no_inspector(self, splitter):CODE
LOWtests/unit/misc/test_miscwidgets.py185 def test_cycle_focus_hidden_inspector(self, splitter, fake_inspector):CODE
LOWtests/unit/misc/test_wmname.py21def test_load_libwayland_client():CODE
LOWtests/unit/misc/test_wmname.py29def test_load_libwayland_client_error(mocker: pytest_mock.MockerFixture):CODE
LOWtests/unit/misc/test_wmname.py65def test_pid_from_fd_getsockopt_error(CODE
LOWtests/unit/misc/test_wmname.py77def test_pid_from_fd_no_so_peercred(monkeypatch: pytest.MonkeyPatch):CODE
LOWtests/unit/misc/test_wmname.py84def test_process_name_from_pid():CODE
LOWtests/unit/misc/test_wmname.py91def test_process_name_from_pid_invalid():CODE
LOWtests/unit/misc/test_wmname.py124def test_wayland_display_error(libwayland_client_mock: unittest.mock.Mock):CODE
LOWtests/unit/misc/test_wmname.py150def test_wayland_get_fd_error(CODE
LOWtests/unit/misc/test_utilcmds.py15def test_cmd_repeat_last_initial(mocker, mode_manager):CODE
LOWtests/unit/misc/test_pastebin.py61def test_paste_without_parent(data, pbclient):CODE
LOWtests/unit/misc/test_pastebin.py97def test_client_success_invalid_http(http, pbclient, qtbot):CODE
LOWtests/unit/misc/test_sessions.py196 def test_last_window_session_none(self, caplog, sess_man, tmp_path):CODE
LOWtests/unit/misc/test_earlyinit.py15def test_init_faulthandler_stderr_none(monkeypatch, attr):CODE
LOWtests/unit/misc/test_keyhints.py108def test_suggestions_with_count(keyhint, config_stub, monkeypatch, stubs):CODE
LOWtests/unit/misc/test_cmdhistory.py107def test_nextitem_previtem_chain(hist):CODE
LOWtests/unit/misc/test_cmdhistory.py115def test_nextitem_index_error(hist):CODE
LOWtests/unit/misc/test_cmdhistory.py122def test_previtem_index_error(hist):CODE
LOWtests/unit/misc/test_cmdhistory.py146def test_append_empty_history(hist):CODE
LOWtests/unit/misc/test_guiprocess.py142def test_start_output_message(proc, qtbot, caplog, message_mock, py_proc,CODE
LOWtests/unit/misc/test_guiprocess.py235def test_live_messages_output(qtbot, proc, py_proc, message_mock,CODE
LOWtests/unit/misc/test_guiprocess.py317def test_start_detached_error(fake_proc, message_mock, caplog):CODE
LOWtests/unit/misc/test_guiprocess.py339def test_double_start_finished(qtbot, proc, py_proc):CODE
LOWtests/unit/misc/test_guiprocess.py479def test_exit_unsuccessful_output(qtbot, proc, caplog, py_proc, stream):STRING
LOWtests/unit/misc/test_guiprocess.py494def test_exit_successful_output(qtbot, proc, py_proc, stream):STRING
LOWtests/unit/misc/test_guiprocess.py508def test_stdout_not_decodable(proc, qtbot, message_mock, py_proc):STRING
LOWtests/unit/misc/test_sql.py131 def test_sqlite_error_codes_reverse(self):CODE
LOWtests/unit/misc/test_sql.py215def test_insert_batch_replace(qtbot, database):CODE
LOWtests/unit/misc/test_sql.py402 def test_run_batch_missing_binding(self, database):CODE
LOWtests/unit/misc/test_sql.py413 def test_num_rows_affected_not_active(self, database):CODE
LOWtests/unit/misc/test_sql.py418 def test_num_rows_affected_select(self, database):CODE
LOWtests/unit/misc/test_sql.py440 def test_successful_transaction(self, database):CODE
LOWtests/unit/misc/test_throttle.py55def test_delayed_immediate_delayed(throttled, func, qtbot):CODE
672 more matches not shown…
Cross-Language Confusion40 hits · 238 pts
SeverityFileLineSnippetContext
HIGHtests/unit/misc/test_ipc.py496 (b'{"args": [], "target_arg": null, "protocol_version": ' + OLD_VERSION +CODE
HIGHtests/unit/misc/test_ipc.py498 (b'{"args": [], "target_arg": null, "protocol_version": ' + NEW_VERSION +CODE
HIGHtests/unit/misc/test_ipc.py500 (b'{"args": [], "target_arg": null, "protocol_version": "foo"}\n',CODE
HIGHtests/unit/misc/test_ipc.py502 (b'{"args": [], "target_arg": null}\n', 'invalid version'),CODE
HIGHtests/unit/misc/test_ipc.py521 '{{"args": ["two"], "target_arg": null,'CODE
HIGHtests/unit/utils/test_version.py886 // Initializing PDFJS global object (if still undefined)COMMENT
HIGHtests/unit/browser/test_qutescheme.py35 ids=lambda url: url.toString(),CODE
HIGHtests/unit/browser/webkit/network/test_pac.py149 return null;CODE
HIGHtests/unit/components/test_hostblock.py217 blocklist1.toString(),CODE
HIGHtests/unit/components/test_hostblock.py218 blocklist2.toString(),CODE
HIGHtests/unit/components/test_hostblock.py219 blocklist3.toString(),CODE
HIGHtests/unit/components/test_hostblock.py220 blocklist4.toString(),CODE
HIGHtests/unit/components/test_hostblock.py221 blocklist5.toString(),CODE
HIGHtests/unit/components/test_hostblock.py365 hosts_to_block = generic_blocklists(tmp_path) + [dl_fail_blocklist.toString()]CODE
HIGHtests/unit/components/test_hostblock.py403 config_stub.val.content.blocking.hosts.lists = [url.toString()]CODE
HIGHtests/unit/components/test_hostblock.py502 config_stub.val.content.blocking.hosts.lists = [blocklist.toString()]CODE
HIGHtests/unit/javascript/test_greasemonkey.py386 result.push(window.$);CODE
HIGHtests/unit/javascript/test_greasemonkey.py387 result.push($);CODE
HIGHtests/unit/javascript/test_greasemonkey.py392 result.push(window.$);CODE
HIGHtests/unit/javascript/test_greasemonkey.py393 result.push($);CODE
HIGHtests/unit/javascript/test_greasemonkey.py407 result.push(window.$);CODE
HIGHtests/unit/javascript/test_greasemonkey.py408 result.push($);CODE
HIGHtests/unit/javascript/stylesheet/test_stylesheet_js.py49 "window.getComputedStyle({document}, null)"CODE
HIGHqutebrowser/mainwindow/tabbedbrowser.py550 first_tab_urlstr = first_tab_url.toString().rstrip('/')CODE
HIGHqutebrowser/utils/qtlog.py104 ('QObject::connect: Cannot connect (null)::stateChanged('CODE
HIGHqutebrowser/utils/urlutils.py65 QUrl.FormattingOptions values, i.e. can be passed to QUrl.toString().STRING
HIGHqutebrowser/utils/urlutils.py452 mimetype, _encoding = mimetypes.guess_type(url.toString())CODE
HIGHqutebrowser/browser/webkit/webkittab.py482 (!position && sel.anchorOffset < sel.focusOffset ||CODE
HIGHqutebrowser/browser/webkit/webkittab.py495 } else if (aElm && aElm !== document.body) {CODE
HIGHqutebrowser/browser/webkit/webkitelem.py82 """Raise an exception if the element vanished (is null)."""STRING
HIGHqutebrowser/browser/webkit/webkitelem.py110 val = self._elem.evaluateJavaScript('this.isContentEditable || false')CODE
HIGHqutebrowser/browser/webkit/webkitelem.py163 event.initTextEvent("textInput", true, true, null, text);CODE
HIGHqutebrowser/browser/network/pac.py164 raise EvalProxyError(err.format(ret.toString()))CODE
HIGHqutebrowser/browser/network/pac.py190 raise EvalProxyError(err.format(self._resolver.toString()))CODE
HIGHqutebrowser/browser/network/pac.py221 result_str = result.toString()CODE
HIGHqutebrowser/components/braveadblock.py204 request_url.toString(),CODE
HIGHqutebrowser/components/braveadblock.py205 first_party_url.toString(),CODE
HIGHscripts/dev/update_version.py95 print("* git checkout main && git cherry-pick -x v{v} && "CODE
HIGHscripts/dev/update_version.py102 print("* Linux: git fetch && git checkout v{v} && "CODE
HIGHscripts/dev/update_version.py108 print("* macOS: git fetch && git checkout v{v} && "CODE
Unused Imports154 hits · 152 pts
SeverityFileLineSnippetContext
LOWsetup.py11CODE
LOWtests/conftest.py19CODE
LOWtests/conftest.py20CODE
LOWtests/conftest.py21CODE
LOWtests/conftest.py22CODE
LOWtests/conftest.py30CODE
LOWtests/conftest.py302CODE
LOWtests/conftest.py315CODE
LOWtests/conftest.py395CODE
LOWtests/conftest.py304CODE
LOWtests/conftest.py320CODE
LOWtests/unit/misc/test_checkpyver.py65CODE
LOWtests/unit/config/test_configfiles.py177CODE
LOWtests/unit/config/test_configdata.py14CODE
LOWtests/unit/browser/test_notification.py18CODE
LOWtests/end2end/conftest.py21CODE
LOWtests/end2end/conftest.py22CODE
LOWtests/end2end/conftest.py22CODE
LOWtests/end2end/conftest.py22CODE
LOWtests/end2end/conftest.py22CODE
LOWtests/end2end/conftest.py23CODE
LOWtests/end2end/conftest.py23CODE
LOWtests/end2end/conftest.py23CODE
LOWtests/end2end/conftest.py23CODE
LOWtests/end2end/conftest.py23CODE
LOWtests/end2end/conftest.py29CODE
LOWtests/end2end/features/test_caret_bdd.py8CODE
LOWtests/helpers/testutils.py270CODE
LOWqutebrowser/app.py61CODE
LOWqutebrowser/app.py62CODE
LOWqutebrowser/misc/utilcmds.py22CODE
LOWqutebrowser/misc/backendproblem.py202CODE
LOWqutebrowser/misc/backendproblem.py202CODE
LOWqutebrowser/misc/backendproblem.py211CODE
LOWqutebrowser/misc/backendproblem.py211CODE
LOWqutebrowser/misc/objects.py14CODE
LOWqutebrowser/misc/objects.py15CODE
LOWqutebrowser/misc/objects.py16CODE
LOWqutebrowser/misc/earlyinit.py209CODE
LOWqutebrowser/misc/earlyinit.py316CODE
LOWqutebrowser/mainwindow/windowundo.py18CODE
LOWqutebrowser/config/config.py22CODE
LOWqutebrowser/config/config.py22CODE
LOWqutebrowser/config/config.py23CODE
LOWqutebrowser/config/configcommands.py22CODE
LOWqutebrowser/config/configcommands.py22CODE
LOWqutebrowser/config/configfiles.py30CODE
LOWqutebrowser/config/configutils.py23CODE
LOWqutebrowser/config/qtargs.py56CODE
LOWqutebrowser/qt/webenginewidgets.py24CODE
LOWqutebrowser/qt/webenginewidgets.py26CODE
LOWqutebrowser/qt/webenginewidgets.py28CODE
LOWqutebrowser/qt/webenginecore.py24CODE
LOWqutebrowser/qt/webenginecore.py26CODE
LOWqutebrowser/qt/webenginecore.py27CODE
LOWqutebrowser/qt/webenginecore.py27CODE
LOWqutebrowser/qt/webenginecore.py27CODE
LOWqutebrowser/qt/webenginecore.py27CODE
LOWqutebrowser/qt/webenginecore.py27CODE
LOWqutebrowser/qt/webenginecore.py27CODE
94 more matches not shown…
Deep Nesting122 hits · 120 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py359CODE
LOWtests/unit/misc/test_ipc.py545CODE
LOWtests/unit/config/test_configfiles.py390CODE
LOWtests/unit/config/test_configtypes.py173CODE
LOWtests/unit/config/test_config.py524CODE
LOWtests/unit/config/test_configinit.py106CODE
LOWtests/unit/utils/test_version.py1365CODE
LOWtests/unit/utils/test_urlutils.py409CODE
LOWtests/unit/utils/test_jinja.py19CODE
LOWtests/unit/utils/test_jinja.py21CODE
LOWtests/unit/components/test_hostblock.py73CODE
LOWtests/end2end/conftest.py70CODE
LOWtests/end2end/conftest.py154CODE
LOWtests/end2end/features/conftest.py191CODE
LOWtests/helpers/stubs.py707CODE
LOWqutebrowser/app.py218CODE
LOWqutebrowser/misc/quitter.py66CODE
LOWqutebrowser/misc/crashsignal.py106CODE
LOWqutebrowser/misc/backendproblem.py171CODE
LOWqutebrowser/misc/backendproblem.py248CODE
LOWqutebrowser/misc/split.py42CODE
LOWqutebrowser/misc/guiprocess.py132CODE
LOWqutebrowser/mainwindow/tabwidget.py439CODE
LOWqutebrowser/mainwindow/tabwidget.py543CODE
LOWqutebrowser/mainwindow/tabwidget.py844CODE
LOWqutebrowser/mainwindow/mainwindow.py401CODE
LOWqutebrowser/mainwindow/tabbedbrowser.py259CODE
LOWqutebrowser/mainwindow/tabbedbrowser.py447CODE
LOWqutebrowser/mainwindow/tabbedbrowser.py479CODE
LOWqutebrowser/mainwindow/tabbedbrowser.py687CODE
LOWqutebrowser/mainwindow/prompt.py545CODE
LOWqutebrowser/mainwindow/prompt.py695CODE
LOWqutebrowser/mainwindow/statusbar/command.py255CODE
LOWqutebrowser/mainwindow/statusbar/bar.py202CODE
LOWqutebrowser/mainwindow/statusbar/bar.py238CODE
LOWqutebrowser/mainwindow/statusbar/bar.py284CODE
LOWqutebrowser/mainwindow/statusbar/bar.py322CODE
LOWqutebrowser/config/configtypes.py841CODE
LOWqutebrowser/config/configdata.py158CODE
LOWqutebrowser/config/configfiles.py156CODE
LOWqutebrowser/config/configfiles.py878CODE
LOWqutebrowser/config/configexc.py80CODE
LOWqutebrowser/config/websettings.py160CODE
LOWqutebrowser/config/qtargs.py81CODE
LOWqutebrowser/config/qtargs.py178CODE
LOWqutebrowser/config/qtargs.py404CODE
LOWqutebrowser/completion/completionwidget.py180CODE
LOWqutebrowser/completion/completionwidget.py299CODE
LOWqutebrowser/utils/version.py109CODE
LOWqutebrowser/utils/version.py254CODE
LOWqutebrowser/utils/version.py453CODE
LOWqutebrowser/utils/debug.py43CODE
LOWqutebrowser/utils/debug.py57CODE
LOWqutebrowser/utils/urlutils.py300CODE
LOWqutebrowser/utils/urlutils.py390CODE
LOWqutebrowser/utils/javascript.py40CODE
LOWqutebrowser/utils/standarddir.py307CODE
LOWqutebrowser/extensions/loader.py130CODE
LOWqutebrowser/keyinput/modeparsers.py163CODE
LOWqutebrowser/keyinput/modeparsers.py265CODE
62 more matches not shown…
Cross-File Repetition19 hits · 95 pts
SeverityFileLineSnippetContext
HIGHtests/unit/config/test_configtypes.py0patch the cmdutils module to provide fake commands.STRING
HIGHtests/unit/completion/test_models.py0patch the cmdutils module to provide fake commands.STRING
HIGHtests/unit/completion/test_completer.py0patch the cmdutils module to provide fake commands.STRING
HIGHtests/unit/commands/test_parser.py0patch the cmdutils module to provide fake commands.STRING
HIGHtests/unit/completion/test_listcategory.py0validate the filtering and sorting results of set_pattern.STRING
HIGHtests/unit/completion/test_histcategory.py0validate the filtering and sorting results of set_pattern.STRING
HIGHtests/unit/completion/test_completionmodel.py0validate the filtering and sorting results of set_pattern.STRING
HIGHqutebrowser/qt/webenginewidgets.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/webenginecore.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/dbus.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/core.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/test.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/widgets.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/opengl.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/network.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/printsupport.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/sql.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/qml.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
HIGHqutebrowser/qt/gui.py0wrapped qt imports for qt gui. all code in qutebrowser should use this module instead of importing from pyqt/pyside direSTRING
Fake / Example Data44 hits · 57 pts
SeverityFileLineSnippetContext
LOWtests/unit/misc/userscripts/test_qute_lastpass.py80 'fake-key \\j\\o\\h\\n\\.<less><less>\\d\\o\\e<greater><greater>\\@'CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py158 call('fake-key \\f\\a\\k\\e\\@\\f\\a\\k\\e\\.\\c\\o\\m'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py159 call('fake-key <Tab>'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py160 call('fake-key \\f\\o\\o\\b\\a\\r'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py206 call('fake-key \\f\\a\\k\\e\\@\\f\\a\\k\\e\\.\\c\\o\\m'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py220 call('fake-key \\f\\o\\o\\b\\a\\r'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py259 'fake-key \\j\\o\\h\\n\\.\\d\\o\\e\\@\\f\\a\\k\\e\\.\\c\\o\\m'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py260 call('fake-key <Tab>'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py261 call('fake-key \\b\\a\\r\\f\\o\\o'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py330 'fake-key \\j\\o\\h\\n\\.\\d\\o\\e\\@\\f\\a\\k\\e\\.\\c\\o\\m'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py331 call('fake-key <Tab>'),CODE
LOWtests/unit/misc/userscripts/test_qute_lastpass.py332 call('fake-key \\b\\a\\r\\f\\o\\o'),CODE
LOWtests/unit/config/test_configtypes.py1863 ({'placeholder': True}, '[foo, "{}", bar]', ['foo', '{}', 'bar']),CODE
LOWtests/unit/config/test_configtypes.py1864 ({'placeholder': True}, '["foo{}bar"]', ['foo{}bar']),CODE
LOWtests/unit/config/test_configtypes.py1865 ({'placeholder': True}, '[foo, "bar {}"]', ['foo', 'bar {}']),CODE
LOWtests/unit/config/test_configtypes.py1866 ({'placeholder': True}, '[f, "{file}", b]', ['f', '{file}', 'b']),CODE
LOWtests/unit/config/test_configtypes.py1867 ({'placeholder': True}, '["f{file}b"]', ['f{file}b']),CODE
LOWtests/unit/config/test_configtypes.py1868 ({'placeholder': True}, '[f, "b {file}"]', ['f', 'b {file}']),CODE
LOWtests/unit/config/test_configtypes.py1876 ({'placeholder': True}, '[foo, bar]'),CODE
LOWtests/unit/config/test_configtypes.py1877 ({'placeholder': True}, '[foo, "{", "}", bar'),CODE
LOWtests/unit/config/test_configtypes.py1878 ({'placeholder': True}, '[foo, "{fi", "le}", bar'),CODE
LOWtests/unit/config/test_configtypes.py1881 ({'placeholder': True}, '[f, "{wrong}", b]'),CODE
LOWtests/unit/config/test_configtypes.py1882 ({'placeholder': True}, '["f{wrong}b"]'),CODE
LOWtests/unit/config/test_configtypes.py1883 ({'placeholder': True}, '[f, "b {wrong}"]'),CODE
LOW…/unit/javascript/position_caret/scrolled_down_img.html3 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dCODE
LOW…/unit/javascript/position_caret/scrolled_down_img.html3 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dCODE
LOWtests/unit/javascript/position_caret/scrolled_down.html3 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dCODE
LOWtests/unit/javascript/position_caret/scrolled_down.html3 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dCODE
LOWtests/end2end/data/hints/html/zoom_precision.html12 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWtests/end2end/data/hints/html/zoom_precision.html12 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWtests/end2end/data/hints/html/wrapped.html12 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWtests/end2end/data/hints/html/wrapped.html12 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWtests/end2end/data/hints/html/wrapped_button.html12 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWtests/end2end/data/hints/html/wrapped_button.html12 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWtests/manual/hints/find_implementation.html11 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWtests/manual/hints/find_implementation.html11 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolorCODE
LOWqutebrowser/config/configdata.yml3883 <Shift-Escape>: fake-key <Escape>CODE
LOWqutebrowser/browser/hints.py1085 "placeholder": lambda elem: elem["placeholder"],CODE
LOWqutebrowser/browser/hints.py1094 "input": ["name", "placeholder"],CODE
LOWqutebrowser/browser/hints.py1095 "textarea": ["name", "placeholder"],CODE
LOWqutebrowser/browser/commands.py1772 def fake_key(self, keystring, global_=False):CODE
LOWqutebrowser/browser/commands.py1775 :fake-key xy - sends the keychain 'xy'STRING
LOWqutebrowser/browser/commands.py1776 :fake-key <Ctrl-x> - sends Ctrl-xSTRING
LOWqutebrowser/browser/commands.py1777 :fake-key <Escape> - sends the escape keySTRING
Modern Structural Boilerplate42 hits · 43 pts
SeverityFileLineSnippetContext
LOWqutebrowser/misc/throttle.py83 def set_delay(self, delay_ms: int) -> None:CODE
LOWqutebrowser/mainwindow/tabwidget.py337 def update_tab_favicon(self, tab: browsertab.AbstractTab) -> None:CODE
LOWqutebrowser/mainwindow/tabbedbrowser.py124 def update_size(self) -> None:CODE
LOWqutebrowser/mainwindow/messageview.py80 def update_from_info(self, info: message.MessageInfo) -> None:CODE
LOWqutebrowser/mainwindow/statusbar/searchmatch.py20 def set_match(self, search_match: browsertab.SearchMatch) -> None:CODE
LOWqutebrowser/config/configtypes.py1215 def set_defaults(cls, default_family: list[str], default_size: str) -> None:CODE
LOWqutebrowser/config/configinit.py84def _update_font_defaults(setting: str) -> None:CODE
LOWqutebrowser/config/config.py537 def update_mutables(self, *, save_yaml: bool = False) -> None:CODE
LOWqutebrowser/config/configfiles.py137 def _set_changed_attributes(self) -> None:CODE
LOWqutebrowser/config/configfiles.py156 def _set_qutebrowser_changed_attribute(self) -> None:CODE
LOWqutebrowser/config/configfiles.py181 def _set_chromium_changed_attribute(self) -> None:CODE
LOWqutebrowser/config/websettings.py105 def set_attribute(self, name: str, value: Any) -> None:CODE
LOWqutebrowser/config/websettings.py126 def set_font_size(self, name: str, value: Union[int, usertypes.Unset]) -> None:CODE
LOWqutebrowser/config/websettings.py155 def set_default_text_encoding(self, encoding: Union[str, usertypes.Unset]) -> None:CODE
LOWqutebrowser/config/websettings.py160 def _update_setting(self, setting: str, value: Any) -> None:CODE
LOWqutebrowser/config/websettings.py175 def update_setting(self, setting: str) -> None:CODE
LOWqutebrowser/config/websettings.py180 def update_for_url(self, url: QUrl) -> None:CODE
LOWqutebrowser/qt/machinery.py112 def set_module_error(self, name: str, error: Exception) -> None:CODE
LOWqutebrowser/qt/machinery.py236def _set_globals(info: SelectionInfo) -> None:CODE
LOWqutebrowser/completion/completionwidget.py383 def set_pattern(self, pattern: str) -> None:CODE
LOWqutebrowser/completion/models/filepathcategory.py66 def set_pattern(self, val: str) -> None:CODE
LOWqutebrowser/utils/log.py451 def update_from(self, other: 'LogFilter') -> None:CODE
LOWqutebrowser/utils/utils.py518def set_clipboard(data: str, selection: bool = False) -> None:CODE
LOWqutebrowser/keyinput/modeparsers.py111 def set_inhibited_timeout(self, timeout: int) -> None:CODE
LOWqutebrowser/browser/browsertab.py477 def _set_factor_internal(self, factor: float) -> None:CODE
LOWqutebrowser/browser/browsertab.py480 def set_factor(self, factor: float, *, fuzzyval: bool = True) -> None:CODE
LOWqutebrowser/browser/browsertab.py848 def set_muted(self, muted: bool, override: bool = False) -> None:CODE
LOWqutebrowser/browser/browsertab.py1068 def _set_widget(self, widget: _WidgetType) -> None:CODE
LOWqutebrowser/browser/browsertab.py1096 def _set_load_status(self, val: usertypes.LoadStatus) -> None:CODE
LOWqutebrowser/browser/browsertab.py1197 def _update_load_status(self, ok: bool) -> None:CODE
LOWqutebrowser/browser/browsertab.py1297 def set_pinned(self, pinned: bool) -> None:CODE
LOWqutebrowser/browser/inspector.py98 def _set_widget(self, widget: _WidgetType) -> None:CODE
LOWqutebrowser/browser/inspector.py131 def set_position(self, position: Optional[Position]) -> None:CODE
LOWqutebrowser/browser/webelem.py116 def set_value(self, value: JsValueType) -> None:CODE
LOWqutebrowser/browser/hints.py106 def update_text(self, matched: str, unmatched: str) -> None:CODE
LOWqutebrowser/browser/webengine/webenginesettings.py234 def _set_js_clipboard(self, value: Union[str, usertypes.Unset]) -> None:CODE
LOWqutebrowser/browser/webengine/webengineelem.py132 def set_value(self, value: webelem.JsValueType) -> None:CODE
LOWqutebrowser/browser/webengine/webenginetab.py855 def set_muted(self, muted: bool, override: bool = False) -> None:CODE
LOWqutebrowser/browser/webkit/webkittab.py815 def set_muted(self, muted: bool, override: bool = False) -> None:CODE
LOWqutebrowser/browser/webkit/webkitelem.py120 def set_value(self, value: webelem.JsValueType) -> None:CODE
LOWqutebrowser/components/hostblock.py276 def update_files(self) -> None:CODE
LOWqutebrowser/components/braveadblock.py292 def update_files(self) -> None:CODE
Excessive Try-Catch Wrapping29 hits · 32 pts
SeverityFileLineSnippetContext
LOWtests/unit/utils/test_error.py34 except Exception as e:CODE
LOWqutebrowser/misc/utilcmds.py156 except Exception:CODE
LOWqutebrowser/misc/utilcmds.py162 except Exception:CODE
LOWqutebrowser/misc/crashsignal.py129 except Exception:CODE
LOWqutebrowser/misc/crashsignal.py198 except Exception as e:CODE
LOWqutebrowser/misc/crashsignal.py204 except Exception as e:CODE
LOWqutebrowser/misc/crashsignal.py210 except Exception:CODE
LOWqutebrowser/misc/crashsignal.py268 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py175 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py232 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py236 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py241 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py245 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py282 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py301 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py308 except Exception as e:CODE
LOWqutebrowser/misc/crashdialog.py416 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py452 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py512 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py527 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py591 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py642 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py647 except Exception:CODE
LOWqutebrowser/misc/crashdialog.py660 except Exception:CODE
LOWqutebrowser/config/configfiles.py990 except Exception as e:CODE
LOWqutebrowser/components/misccommands.py410 except Exception as e:CODE
LOWscripts/dev/misc_checks.py157 except Exception:CODE
LOWscripts/dev/misc_checks.py334 except Exception:CODE
LOWscripts/dev/misc_checks.py413 except Exception:CODE
Over-Commented Block27 hits · 26 pts
SeverityFileLineSnippetContext
LOWpytest.ini61 # Qt 6.5 debug buildCOMMENT
LOWmisc/requirements/README.md21#@ replace: foo barCOMMENT
LOWtests/unit/config/test_configfiles.py1421 # you prefer, you can also configure qutebrowser using theCOMMENT
LOWtests/unit/config/test_configfiles.py1501COMMENT
LOWtests/unit/browser/webkit/test_webkitelem.py541 elems: webkitelem.WebKitElementCOMMENT
LOWtests/unit/browser/webkit/test_webkitelem.py621 0, 0 300, 0COMMENT
LOWqutebrowser/misc/earlyinit.py101COMMENT
LOWqutebrowser/config/qtargs.py101 flag = flag.removeprefix(_DISABLE_FEATURES)COMMENT
LOWqutebrowser/config/qtargs.py121 #COMMENT
LOWqutebrowser/qt/__init__.py1# SPDX-FileCopyrightText: Freya Bruhin (The Compiler) <mail@qutebrowser.org>COMMENT
LOWqutebrowser/utils/version.py821 parsed = utils.VersionNumber.parse(pyqt_webengine_version)COMMENT
LOWqutebrowser/utils/qtlog.py61 qtcore.QtMsgType.QtFatalMsg: logging.CRITICAL,COMMENT
LOWqutebrowser/browser/browsertab.py1001 #: Signal emitted before load starts (URL as QUrl)COMMENT
LOWqutebrowser/browser/downloads.py501 total=total, errmsg=errmsg))COMMENT
LOWqutebrowser/browser/webengine/webenginesettings.py541 if not config.val.content.site_specific_quirks.enabled:COMMENT
LOWqutebrowser/browser/webengine/notification.py1081 # Or in the words of dunst:COMMENT
LOWqutebrowser/browser/webengine/tabhistory.py21COMMENT
LOWqutebrowser/browser/webengine/tabhistory.py41COMMENT
LOWqutebrowser/browser/webkit/network/networkmanager.py61 # https://en.wikipedia.org/wiki/Data_Encryption_Standard#Security_and_cryptanalysisCOMMENT
LOWqutebrowser/components/readlinecommands.py101 is_boundary = text[target_position - 1] in delimCOMMENT
LOWqutebrowser/components/readlinecommands.py121 # trying to delete 7 chars:COMMENT
LOWqutebrowser/api/config.py1# SPDX-FileCopyrightText: Freya Bruhin (The Compiler) <mail@qutebrowser.org>COMMENT
LOWqutebrowser/javascript/.eslintrc.yaml1# qutebrowser's way of using eslint is perhaps a bit untypical: We turn on *all*COMMENT
LOWdoc/extapi/conf.py1# -*- coding: utf-8 -*-COMMENT
LOWdoc/extapi/conf.py61#COMMENT
LOWdoc/extapi/conf.py81COMMENT
LOWdoc/extapi/conf.py161# -- Options for Epub output -------------------------------------------------COMMENT
Dead Code8 hits · 16 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/config/test_configutils.py359CODE
MEDIUMtests/unit/config/test_configutils.py360CODE
MEDIUMtests/unit/config/test_configutils.py361CODE
MEDIUMtests/unit/config/test_configutils.py363CODE
MEDIUMtests/unit/config/test_configutils.py367CODE
MEDIUMtests/unit/config/test_configutils.py368CODE
MEDIUMtests/unit/config/test_configutils.py369CODE
MEDIUMtests/unit/config/test_configutils.py373CODE
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/conftest.py275Select the backend for running tests. The backend is auto-selected in the following manner: 1. Use QtWebKit if STRING
HIGHqutebrowser/misc/lineparser.py70Open self._configfile for reading. Args: mode: The mode to use ('a'/'r'/'w') Raises: STRING
HIGHqutebrowser/commands/userscripts.py372Search userscript directories for given command. Raises: NotFoundError if the command could not be found. STRING
Redundant / Tautological Comments8 hits · 14 pts
SeverityFileLineSnippetContext
LOWtests/unit/utils/usertypes/test_timer.py78 # Check if there are any stray timers still alive.COMMENT
LOWtests/unit/browser/test_hints.py94 # Check if hints are uniqueCOMMENT
LOWtests/unit/browser/test_hints.py97 # Check if any hints are shorter than min_lenCOMMENT
LOWtests/unit/browser/test_hints.py106 # Check if hint_lens are more than 1 apartCOMMENT
LOWtests/unit/browser/test_hints.py116 # Check if we have any unique prefixes. For example, 'la'COMMENT
LOWtests/unit/scripts/test_check_coverage.py85 # Check if coverage plugin is availableSTRING
LOWqutebrowser/utils/urlmatch.py265 # Check if the test host is a subdomain of our host.COMMENT
LOWqutebrowser/browser/webengine/webenginetab.py242 # Check if the match count change is opposite to the search directionCOMMENT
AI Structural Patterns12 hits · 12 pts
SeverityFileLineSnippetContext
LOWsetup.py56CODE
LOWtests/unit/browser/webkit/test_webkitelem.py26CODE
LOWtests/helpers/stubs.py245CODE
LOWqutebrowser/app.py117CODE
LOWqutebrowser/misc/sessions.py574CODE
LOWqutebrowser/config/configtypes.py400CODE
LOWqutebrowser/qt/_core_pyqtproperty.py36CODE
LOWqutebrowser/browser/commands.py285CODE
LOWqutebrowser/browser/webkit/webkittab.py846CODE
LOWqutebrowser/commands/command.py65CODE
LOWscripts/dev/update_3rdparty.py176CODE
LOWscripts/dev/run_pylint_on_tests.py74CODE
Self-Referential Comments4 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/utils/test_standarddir.py303 # This file is a cache directory tag created by qutebrowser.COMMENT
MEDIUMqutebrowser/utils/standarddir.py360 f.write("# This file is a cache directory tag created by "CODE
MEDIUMscripts/dev/recompile_requirements.py290 elif line[1:].startswith('# This file is automatically'):CODE
MEDIUMscripts/dev/recompile_requirements.py375 f.write("# This file is automatically generated by "CODE
AI Slop Vocabulary5 hits · 8 pts
SeverityFileLineSnippetContext
LOWtests/unit/completion/test_completer.py217 # open has maxsplit=0, so all args just set the pattern, not the modelCOMMENT
LOWqutebrowser/browser/qtnetworkdownloads.py553 # User doesn't want to be asked, so just use the download_dirCOMMENT
LOWqutebrowser/browser/webengine/webenginedownloads.py293 # User doesn't want to be asked, so just use the download_dirCOMMENT
LOWqutebrowser/browser/webengine/webenginetab.py1145 # make sure we replace existing scripts, not just add new ones.COMMENT
LOWqutebrowser/browser/webengine/webenginequtescheme.py107 # We can't just use the QBuffer constructor taking a QByteArray,COMMENT