AI Slop Code RIsk Monitor

pyodide/pyodide

Pyodide is a Python distribution for the browser and Node.js based on WebAssembly

13.4 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for pyodide/pyodide, a Python project with 14,881 GitHub stars. SynthScan examined 103,543 lines of code across 462 source files, recording 908 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 13.4 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

13.4
Adjusted Signal
13.4
Raw Pattern Score
100%
Time Factor
2026-10-05
Last Push
14.9K
Stars
Python
Language
103.5K
Lines of Code
462
Files
908
Pattern Hits
2026-10-12
Scan Date
0.46
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 15.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 443 finding(s).

Hallucinated Dependency & Supply Chain Risk 33.3/100 · MEDIUM

Are imports declared and package/API names verified? 368 finding(s).

Agent Over-Engineering Ratio 19.9/100 · LOW

Are wrappers, guards, and repeated structures necessary? 463 finding(s).

PR Review Velocity Impact 62.4/100 · HIGH

Which changes need focused human review? 908 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 214MEDIUM 25LOW 669

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 908 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Cross-Language Confusion190 hits · 712 pts
SeverityFileLineSnippetContext
HIGHconftest.py314 return Array.from(pyodide._module.pyproxy_alloc_map.entries(), ([x, s]) => [x.type, x.toString(), "TraceCODE
HIGHsrc/py/_pyodide/_core_docs.py1434 result.push(convert(value.first))STRING
HIGHsrc/py/_pyodide/_core_docs.py1435 result.push(convert(value.second))STRING
HIGHsrc/py/_pyodide/_core_docs.py1579 >>> js_object.toString()STRING
HIGHsrc/py/_pyodide/_core_docs.py1638 result.push(convert(value.first))STRING
HIGHsrc/py/_pyodide/_core_docs.py1639 result.push(convert(value.second))STRING
HIGHsrc/py/pyodide/console.py253 >>> future = console.push("print('Hello, World!')") # doctest: +SKIPCODE
HIGHsrc/py/pyodide/console.py610 >>> future = console.push("import numpy as np; print(np.array([1, 2, 3]))") # doctest: +SKIPCODE
HIGHsrc/tests/test_streams.py140 stdout_codes.push(code);CODE
HIGHsrc/tests/test_streams.py211 null,CODE
HIGHsrc/tests/test_streams.py214 null,CODE
HIGHsrc/tests/test_streams.py249 null,CODE
HIGHsrc/tests/test_streams.py282 null,CODE
HIGHsrc/tests/test_streams.py313 null,CODE
HIGHsrc/tests/test_streams.py346 null,CODE
HIGHsrc/tests/test_streams.py433 this.writtenBuffers.push(buffer.slice());CODE
HIGHsrc/tests/test_streams.py610 result.push(new TextDecoder().decode(a));CODE
HIGHsrc/tests/test_streams.py59 stdoutStrings.push(s);STRING
HIGHsrc/tests/test_streams.py62 stderrStrings.push(s);STRING
HIGHsrc/tests/test_streams.py191 run_js("pyodide.setStdin({stdin: () => undefined})")STRING
HIGHsrc/tests/test_streams.py398 "read returned undefined; a correct implementation must return a number"STRING
HIGHsrc/tests/test_streams.py421 expected = "write returned undefined; a correct implementation must return a number"STRING
HIGH⚡src/tests/test_pyproxy.py563 assert(() => d.__getitem__.prototype === undefined);CODE
HIGH⚡src/tests/test_pyproxy.py567 assert(() => d.get.type === undefined);CODE
HIGH⚡src/tests/test_pyproxy.py568 assert(() => d.set.type === undefined);CODE
HIGH⚡src/tests/test_pyproxy.py1001 result.push(a.get(1));CODE
HIGH⚡src/tests/test_pyproxy.py1002 result.push(b.get(1));CODE
HIGH⚡src/tests/test_pyproxy.py2318 func = run_js("(a) => a.push(1, 2, 3)")CODE
HIGHsrc/tests/test_pyproxy.py93 pyproxy_to_string = run_js("(e) => e.toString()")CODE
HIGHsrc/tests/test_pyproxy.py591 assert(() => Test.prototype === undefined);CODE
HIGHsrc/tests/test_pyproxy.py713 assert(() => d.x === undefined);CODE
HIGHsrc/tests/test_pyproxy.py773 assert(() => t.prototype === undefined);CODE
HIGHsrc/tests/test_pyproxy.py818 assert(() => l.get.type === undefined);CODE
HIGHsrc/tests/test_pyproxy.py834 assert(() => l.length === 2 && l.get(1) === 7);CODE
HIGHsrc/tests/test_pyproxy.py1054 assertThrows(() => t.toString(), "PythonError", "");CODE
HIGHsrc/tests/test_pyproxy.py1111 assertThrows(() => t.toString(), "NoGilError", "");CODE
HIGHsrc/tests/test_pyproxy.py2526 const res = Object.fromEntries(Reflect.ownKeys(Function.prototype).map(k => [k.toString(), k in o]));CODE
HIGHsrc/tests/test_pyproxy.py2550 if(x && x.destroy) {CODE
HIGHsrc/tests/test_pyproxy.py2583 for (let i = 0; i < 100 && l.length < 3; i++) {CODE
HIGH⚡src/tests/test_pyproxy.py125 result.push(pyodide.globals.has("xxxxx"));STRING
HIGH⚡src/tests/test_pyproxy.py126 result.push(pyodide.globals.has("yyyyy"));STRING
HIGH⚡src/tests/test_pyproxy.py127 result.push(pyodide.globals.has("globals"));STRING
HIGH⚡src/tests/test_pyproxy.py128 result.push(pyodide.globals.has("open"));STRING
HIGH⚡src/tests/test_pyproxy.py1382 undefined,STRING
HIGH⚡src/tests/test_pyproxy.py1383 null,STRING
HIGH⚡src/tests/test_pyproxy.py1392 assert(() => JSON.stringify(fpy.apply(undefined, input)) === JSON.stringify(fjs.apply(undefined, input)));STRING
HIGH⚡src/tests/test_pyproxy.py1396 assertThrows(() => fjs.apply(undefined, error_input), "TypeError", "");STRING
HIGH⚡src/tests/test_pyproxy.py1397 assertThrows(() => fpy.apply(undefined, error_input), "TypeError", "");STRING
HIGH⚡src/tests/test_pyproxy.py1546 r.push(g.next());STRING
HIGH⚡src/tests/test_pyproxy.py1547 r.push(g.next(3));STRING
HIGH⚡src/tests/test_pyproxy.py1548 r.push(g.next(4));STRING
HIGH⚡src/tests/test_pyproxy.py1549 r.push(g.next(5));STRING
HIGH⚡src/tests/test_pyproxy.py1595 r.push(g.next());STRING
HIGH⚡src/tests/test_pyproxy.py1596 r.push(g.return(5));STRING
HIGH⚡src/tests/test_pyproxy.py1597 r.push(g.next());STRING
HIGH⚡src/tests/test_pyproxy.py1662 r.push(g.next());STRING
HIGH⚡src/tests/test_pyproxy.py1663 r.push(g.throw(new TypeError('hi')));STRING
HIGH⚡src/tests/test_pyproxy.py1664 r.push(g.next());STRING
HIGH⚡src/tests/test_pyproxy.py1712 r.push(await g.next());STRING
HIGH⚡src/tests/test_pyproxy.py1713 r.push(await g.next(3));STRING
130 more matches not shown…
Hyper-Verbose Identifiers357 hits · 235 pts
SeverityFileLineSnippetContext
LOWconftest.py175def pytest_collection_modifyitems(config, items):STRING
LOWconftest.py280def extra_checks_test_wrapper(browser, trace_hiwire_refs, trace_pyproxies, item):STRING
LOWtools/create_lockfile_diff.py42def get_lockfile_url_from_makefile(branch: str | None = None) -> str:CODE
LOWtools/pytest_wrapper.py10def remove_num_threads_option(args: list[str]) -> None:CODE
LOWtools/bump_version.py80def python_version_to_js_version(version: str) -> Constant:CODE
LOWtools/backport.py54def get_needs_backport_pr_numbers() -> tuple[int, ...]:CODE
LOWtools/backport.py65def get_needs_backport_prs_strings() -> tuple[str, ...]:CODE
LOWtools/backport.py456 def remove_release_notes_from_unreleased_section(CODE
LOWtools/docker_image_tag.py20def latest_version_of_firefox() -> str:CODE
LOWtools/create_xbuildenv.py30def _check_unisolated_packages_match_dist(CODE
LOWtools/create_xbuildenv.py100def _copy_xbuild_files_from_wheel(CODE
LOWtools/deploy_s3.py26def _validate_remote_prefix_to_remove(remote_prefix: Path) -> None:CODE
LOWtools/tests/test_create_xbuildenv.py26def test_check_unisolated_packages_match_dist(tmp_path):CODE
LOWtools/tests/test_create_xbuildenv.py34def test_check_unisolated_packages_mismatched(tmp_path):CODE
LOWtools/tests/test_create_xbuildenv.py45def test_check_unisolated_packages_normalizes_names(tmp_path):CODE
LOWtools/tests/test_create_xbuildenv.py51def test_check_unisolated_packages_missing_is_not_fatal(tmp_path, caplog):CODE
LOWtools/tests/test_create_xbuildenv.py62def test_check_unisolated_packages_no_lockfile(tmp_path):CODE
LOW⚡tools/tests/test_bump_version.py254def test_bump_version_dirty_working_tree(tmp_path):CODE
LOW⚡tools/tests/test_bump_version.py268def test_bump_version_updates_changelog_for_minor_release(tmp_path):CODE
LOWtools/tests/test_bump_version.py134def test_bump_version_dry_run(tmp_path):CODE
LOWtools/tests/test_bump_version.py153def test_bump_version_check_no_changes(tmp_path):CODE
LOWtools/tests/test_bump_version.py188def test_bump_version_check_with_changes(tmp_path):CODE
LOWtools/tests/test_bump_version.py198def test_bump_version_updates_files(tmp_path):CODE
LOWtools/tests/test_bump_version.py224def test_bump_version_dev_version(tmp_path):CODE
LOWtools/tests/test_bump_version.py237def test_bump_version_prerelease(tmp_path):CODE
LOWtools/tests/test_bump_version.py287def test_bump_version_does_not_update_changelog_for_patch_release(tmp_path):CODE
LOWtools/tests/test_bump_version.py301def test_bump_version_check_changelog_date(tmp_path):CODE
LOWtools/tests/test_bump_version.py318def test_bump_version_dry_run_does_not_update_changelog(tmp_path):CODE
LOWtools/tests/test_bump_version.py332def test_check_changelog_fails_with_unreleased(tmp_path):CODE
LOWtools/tests/test_bump_version.py343def test_check_changelog_fails_with_missing_version_header(tmp_path):CODE
LOWtools/tests/test_bump_version.py372def test_check_changelog_fails_with_no_blank_line_after_header(tmp_path):CODE
LOWtools/tests/test_bump_version.py400def test_check_changelog_fails_with_invalid_date_format(tmp_path):CODE
LOWtools/tests/test_bump_version.py429def test_update_changelog_fails_with_no_unreleased_section(tmp_path):CODE
LOWtools/tests/test_bump_version.py458def test_update_changelog_fails_when_version_already_exists(tmp_path):CODE
LOWtools/tests/test_make_ghr_release.py48def test_changelog_anchor_no_changelog(tmp_path):STRING
LOWtools/tests/test_make_ghr_release.py59def test_release_body_prerelease(changelog_path):STRING
LOWtools/tests/test_make_ghr_release.py122def test_changelog_anchor_current_changelog():STRING
LOWtools/tests/test_make_test_list.py27def test_update_tests_idempotent():CODE
LOWtools/tests/test_make_test_list.py39def test_update_tests_adds_and_removes():STRING
LOWtools/tests/test_make_test_list.py45def test_update_tests_preserves_annotations():STRING
LOWtools/tests/test_make_test_list.py63def test_update_tests_preserves_header_comment():STRING
LOWtools/tests/test_make_test_list.py77def test_update_tests_sorts_out_of_order_entry():STRING
LOWtools/tests/test_make_test_list.py104def test_update_tests_dedupes_duplicated_block():STRING
LOWtools/tests/test_backport.py180def test_add_backported_entries():CODE
LOWtools/tests/test_backport.py269def test_remove_backported_entries():CODE
LOWdocs/conf.py208def prevent_parens_after_js_class_xrefs():CODE
LOWdocs/conf.py220def calculate_pyodide_version(app):CODE
LOWdocs/conf.py348def prune_jsproxy_constructor_docs():CODE
LOWdocs/sphinx_pyodide/sphinx_pyodide/packages.py16def get_packages_summary_directive(app):CODE
LOWpackages/test-cpp-exceptions/test_cpp_exceptions.py5def test_uncaught_cpp_exceptions(selenium):CODE
LOWpackages/test-cpp-exceptions/test_cpp_exceptions.py35def test_cpp_exception_catching(selenium):CODE
LOWpackages/test-cpp-exceptions/test_cpp_exceptions.py72def test_cpp_exception_catching_invoke(selenium):CODE
LOWpackages/pytest-asyncio/inner_test_pytest_asyncio.py32def test_asyncio_marker_compatibility_with_xfail(pytester: Pytester):CODE
LOWpackages/pytest-asyncio/inner_test_pytest_asyncio.py53async def test_asyncio_marker_with_default_param(a_param=None):CODE
LOWpackages/numpy/test_numpy.py178def test_runpythonasync_numpy(selenium):STRING
LOWpackages/numpy/test_numpy.py259def test_get_buffer_roundtrip(selenium, arg):STRING
LOWpackages/numpy/test_numpy.py302def test_get_buffer_big_endian(selenium):STRING
LOWpackages/numpy/test_numpy.py329def test_get_buffer_error_messages(selenium):STRING
LOWpackages/micropip/test_micropip.py34def selenium_standalone_micropip(selenium_standalone_refresh):CODE
LOWpackages/micropip/test_micropip.py89def test_install_file_protocol_node(selenium_standalone_micropip):STRING
297 more matches not shown…
Unused Imports175 hits · 116 pts
SeverityFileLineSnippetContext
LOWsrc/py/ssl.py17CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/ssl.py19CODE
LOWsrc/py/_pyodide/_core_docs.py20CODE
LOWsrc/py/_pyodide/__init__.py10CODE
LOWsrc/py/_pyodide/__init__.py10CODE
LOWsrc/py/pyodide/code.py6CODE
LOWsrc/py/pyodide/code.py6CODE
LOWsrc/py/pyodide/code.py6CODE
LOWsrc/py/pyodide/code.py6CODE
LOWsrc/py/pyodide/code.py6CODE
LOWsrc/py/pyodide/__init__.py17CODE
LOWsrc/py/pyodide/_core.py1CODE
LOWsrc/py/pyodide/ffi/__init__.py5CODE
LOWsrc/py/pyodide/ffi/__init__.py6CODE
LOWsrc/py/pyodide/ffi/__init__.py6CODE
LOWsrc/py/pyodide/http/_pyfetch.py5CODE
LOWsrc/py/pyodide/http/_pyfetch.py22CODE
LOWsrc/py/pyodide/http/__init__.py5CODE
LOWsrc/py/pyodide/http/__init__.py6CODE
LOWsrc/py/pyodide/http/__init__.py6CODE
LOWsrc/py/pyodide/http/__init__.py6CODE
LOWsrc/py/pyodide/http/__init__.py11CODE
LOWsrc/py/pyodide/http/__init__.py11CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
LOWsrc/tests/test_ssl_stub.py23CODE
115 more matches not shown…
Empty Error Handlers22 hits · 110 pts
SeverityFileLineSnippetContext
HIGHconftest.py241except Exception:CODE
HIGHtools/pytest_wrapper.py31except subprocess.CalledProcessError:CODE
HIGHtools/backport.py519except ValueError:CODE
HIGHdocs/sphinx_pyodide/sphinx_pyodide/util.py16except Exception:CODE
HIGHpackages/scipy/scipy-conftest.py298except (ImportError, AttributeError):CODE
HIGHsrc/py/pyodide/console.py178except (TokenError, SyntaxError):CODE
HIGHsrc/py/pyodide/_nodesock_transport.py38except Exception:CODE
HIGHsrc/py/pyodide/_nodesock_transport.py42except Exception:CODE
HIGHsrc/py/pyodide/http/_pyfetch.py25except ImportError:CODE
HIGHsrc/py/pyodide/http/pyxhr.py32except ImportError:CODE
HIGHsrc/py/pyodide/http/__init__.py16except ImportError:CODE
HIGHsrc/tests/test_jsproxy.py3023except Exception:CODE
HIGHsrc/tests/test_jsproxy.py3057except Exception:CODE
HIGHsrc/tests/test_jsproxy.py3091except Exception:CODE
HIGHsrc/tests/test_webloop.py341except Exception:CODE
HIGHsrc/tests/test_webloop.py363except Exception:CODE
HIGHsrc/tests/test_webloop.py387except Exception:CODE
HIGHsrc/tests/test_webloop.py396except Exception:CODE
HIGHsrc/tests/test_webloop.py546except KeyboardInterrupt:CODE
HIGHsrc/tests/test_webloop.py567except SystemExit:CODE
HIGHsrc/tests/test_pyodide.py1727except ModuleNotFoundError:CODE
HIGHsrc/tests/test_python_socket.py612except OSError:CODE
Over-Commented Block43 hits · 43 pts
SeverityFileLineSnippetContext
LOWbenchmark/benchmarks/numpy_benchmarks/harris.py1# from: parakeet testbedCOMMENT
LOWtools/constraints.txt1# This file is used to track build constraints for packagesCOMMENT
LOW.circleci/config.yml421 npm run test:browserCOMMENT
LOWsrc/py/_pyodide/__init__.py1# _pyodide is imported at the very beginning of the initialization process so itCOMMENT
LOWsrc/py/_pyodide/__init__.py21 # sys.excepthook **except** traceback.print_exception uses the linecacheCOMMENT
LOWsrc/py/pyodide/__init__.py1# When the pyodide package is imported, both the js and the pyodide_js modulesCOMMENT
LOWsrc/core/jsproxy.c41#include "jsproxy.h"COMMENT
LOWsrc/core/jsproxy.c61#define IS_ARRAY (1 << 12)COMMENT
LOWsrc/core/jsproxy.c181// clang-format onCOMMENT
LOWsrc/core/jsproxy.c401// signature into one of these structs and return it. Then the call is routed toCOMMENT
LOWsrc/core/jsproxy.c3861 }COMMENT
LOWsrc/core/jsproxy.c4141 FAIL_IF_NULL(bases);COMMENT
LOWsrc/core/jsproxy_call.c1#define PY_SSIZE_T_CLEANCOMMENT
LOWsrc/core/jsproxy_call.c21//COMMENT
LOWsrc/core/jsproxy_call.c41 int posparams_nmandatory;COMMENT
LOWsrc/core/error_handling.c1// clang-format offCOMMENT
LOWsrc/core/error_handling.c161COMMENT
LOWsrc/core/python2js.c1#define PY_SSIZE_T_CLEANCOMMENT
LOWsrc/core/python2js.c141//COMMENT
LOWsrc/core/python2js.c161// V8, Apple Silicon, two purpose-built binaries differing only in this file)COMMENT
LOWsrc/core/python2js.c181// list.join("") and see if one is faster than the other.COMMENT
LOWsrc/core/python2js.c921 "pyproxies",COMMENT
LOWsrc/core/socket_syscalls.c1#include "emscripten.h"COMMENT
LOWsrc/core/jsbind.c1#define PY_SSIZE_T_CLEANCOMMENT
LOWsrc/core/pyproxy.h81COMMENT
LOWsrc/core/jsmemops.h1// Macros to access memory from JavaScriptCOMMENT
LOWsrc/core/jsmemops.h21#define DEREF_F64(addr, offset) HEAPF64[(addr >>> 3) + offset]COMMENT
LOWsrc/core/main.c1#define PY_SSIZE_T_CLEANCOMMENT
LOWsrc/core/error_handling.h1#ifndef ERROR_HANDLING_HCOMMENT
LOWsrc/core/error_handling.h81 } while (0)COMMENT
LOWsrc/core/python2js_buffer.c1#define PY_SSIZE_T_CLEANCOMMENT
LOWsrc/core/pyproxy.c1#define PY_SSIZE_T_CLEANCOMMENT
LOWsrc/core/pyproxy.c101#define HAS_SET (1 << 2)COMMENT
LOWsrc/core/pyproxy.c221COMMENT
LOWsrc/core/pyproxy.c321 }COMMENT
LOWsrc/core/pyproxy.c1001COMMENT
LOWsrc/core/stack_switching/pystate_pycore.c1// Note: This file manages the Python stack / thread state when stack switching.COMMENT
LOWsrc/core/stack_switching/pystate_pycore.c81 // _PyEval_SignalReceived and Py_AddPendingCall and related only ever add workCOMMENT
LOWsrc/core/stack_switching/pystate.c1// Note: This file manages the Python stack / thread state when stack switching.COMMENT
LOWsrc/core/stack_switching/pystate.c21// TODO: Perhaps aligning with greenlet could reduce the amount of effort toCOMMENT
LOWsrc/js/emscripten-settings.ts61 API,COMMENT
LOWsrc/js/types.ts41 export const HEAPU32: Uint32Array;COMMENT
LOWsrc/tests/python_tests.yaml1# This list is updated with tools/make_test_list.py script, which needsCOMMENT
Decorative Section Separators11 hits · 42 pts
SeverityFileLineSnippetContext
MEDIUMsrc/py/pyodide/_nodesock_transport.py54 # ------------------------------------------------------------------COMMENT
MEDIUMsrc/py/pyodide/_nodesock_transport.py56 # ------------------------------------------------------------------COMMENT
MEDIUM⚡src/py/pyodide/_nodesock_transport.py84 # ------------------------------------------------------------------COMMENT
MEDIUM⚡src/py/pyodide/_nodesock_transport.py86 # ------------------------------------------------------------------COMMENT
MEDIUM⚡src/py/pyodide/_nodesock_transport.py158 # ------------------------------------------------------------------COMMENT
MEDIUM⚡src/py/pyodide/_nodesock_transport.py160 # ------------------------------------------------------------------COMMENT
MEDIUMsrc/core/socket_syscalls.c15// ────────────COMMENT
MEDIUM⚡src/tests/test_python_socket.py850# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡src/tests/test_python_socket.py852# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/tests/test_python_socket.py1133# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/tests/test_python_socket.py1135# ---------------------------------------------------------------------------COMMENT
Excessive Try-Catch Wrapping38 hits · 36 pts
SeverityFileLineSnippetContext
LOWconftest.py241 except Exception:STRING
LOWconftest.py294 except Exception:STRING
MEDIUMtools/bump_version.py180 print("Error: No '## Unreleased' section found in changelog", file=sys.stderr)CODE
MEDIUMtools/bump_version.py183 print(f"Error: '{version_header}' section found in changelog", file=sys.stderr)CODE
LOWdocs/sphinx_pyodide/sphinx_pyodide/util.py16 except Exception:CODE
LOWdocs/sphinx_pyodide/sphinx_pyodide/packages.py34 except Exception:CODE
LOWpackages/test-buffer/test_buffer.py87 except Exception as e:CODE
LOWpackages/_tests/test_packages_common.py43 except Exception as e:CODE
MEDIUMpackages/_tests/test_packages_common.py40def load_lockfile() -> PyodideLockSpec:CODE
LOWsrc/py/pyodide/_nodesock_transport.py38 except Exception:CODE
LOWsrc/py/pyodide/_nodesock_transport.py42 except Exception:CODE
LOW⚡src/py/pyodide/_nodesock_transport.py149 except Exception as exc:CODE
LOWsrc/py/pyodide/_nodesock_transport.py183 except Exception as exc:CODE
MEDIUMsrc/py/pyodide/_nodesock_transport.py115def _read_loop(self) -> None:CODE
LOWsrc/py/pyodide/webloop.py126 except Exception as result_exception:CODE
LOWsrc/py/pyodide/webloop.py162 except Exception as e:CODE
LOWsrc/tests/test_console.py175 except Exception:CODE
MEDIUMsrc/tests/test_typeconversions.py27def no_hypothesis(x):CODE
LOWsrc/tests/test_typeconversions.py31 except Exception:CODE
LOW⚡src/tests/test_stdlib_fixes.py123 except Exception:CODE
LOW⚡src/tests/test_stdlib_fixes.py132 except Exception:CODE
LOWsrc/tests/test_filesystem.py75 except Exception as err:CODE
LOWsrc/tests/test_jsproxy.py3023 except Exception:CODE
LOWsrc/tests/test_jsproxy.py3057 except Exception:CODE
LOWsrc/tests/test_jsproxy.py3091 except Exception:CODE
MEDIUMsrc/tests/test_stack_switching.py295def f():CODE
LOWsrc/tests/test_stack_switching.py298 except Exception as e:CODE
LOWsrc/tests/test_webloop.py341 except Exception:STRING
LOWsrc/tests/test_webloop.py363 except Exception:STRING
LOWsrc/tests/test_webloop.py387 except Exception:STRING
LOWsrc/tests/test_webloop.py396 except Exception:STRING
LOWsrc/tests/test_pyodide.py1176 except Exception as e:CODE
LOWsrc/tests/test_pyodide.py1219 except Exception as ex:CODE
LOWsrc/tests/test_pyodide.py1277 except Exception as e:CODE
LOWsrc/tests/test_pyodide.py1370 except Exception as e:CODE
LOWsrc/tests/test_python_socket.py42 except Exception as e:CODE
LOWsrc/tests/test_python_socket.py1211 except Exception as e:CODE
LOWsrc/tests/test_python_socket.py1261 except Exception as e:CODE
Modern Structural Boilerplate25 hits · 27 pts
SeverityFileLineSnippetContext
LOW⚡tools/update_emscripten.py64def update_patches(newtag: str) -> None:CODE
LOW⚡tools/update_emscripten.py72def update_makefile_envs(oldtag: str, newtag: str) -> None:CODE
LOW⚡tools/update_emscripten.py80def update_struct_info() -> None:CODE
LOWdocs/sphinx_pyodide/sphinx_pyodide/mdn_xrefs.py229__all__ = ["add_mdn_xrefs"]CODE
LOWdocs/sphinx_pyodide/sphinx_pyodide/jsdoc.py13__all__ = ["ts_xref_formatter", "patch_sphinx_js"]CODE
LOWdocs/sphinx_pyodide/sphinx_pyodide/jsdoc.py149def set_kind(obj: TopLevel) -> None:CODE
LOWpackages/test-simd/src/test_simd/__init__.py17__all__ = [CODE
LOWsrc/py/webbrowser.py8__all__ = ["open", "open_new", "open_new_tab", "get", "register", "Error"]CODE
LOWsrc/py/_pyodide/_core_docs.py1817__all__ = [CODE
LOWsrc/py/_pyodide/__init__.py12__all__ = ["_base", "_importhook"]CODE
LOWsrc/py/_pyodide/docs_argspec.py30__all__ = ["docs_argspec"]CODE
LOWsrc/py/pyodide/console.py30__all__ = ["Console", "PyodideConsole", "BANNER", "repr_shorten", "ConsoleFuture"]CODE
LOWsrc/py/pyodide/code.py108__all__ = [CODE
LOW⚡src/py/pyodide/_nodesock_transport.py81 def set_protocol(self, protocol: asyncio.BaseProtocol) -> None:CODE
LOWsrc/py/pyodide/__init__.py15__all__ = ["__version__", "console", "code", "ffi", "http", "webloop"]CODE
LOWsrc/py/pyodide/_core.py3__all__ = ["IN_PYODIDE"]CODE
LOWsrc/py/pyodide/_state.py51__all__ = ["save_state", "restore_state"]CODE
LOWsrc/py/pyodide/webloop.py241 def set_debug(self, enabled: bool) -> None:CODE
LOWsrc/py/pyodide/webloop.py1118 def set_event_loop(self, loop: Any) -> None:CODE
LOWsrc/py/pyodide/webloop.py1159__all__ = ["WebLoop", "WebLoopPolicy", "PyodideFuture", "PyodideTask"]CODE
LOWsrc/py/pyodide/ffi/__init__.py34__all__ = [CODE
LOWsrc/py/pyodide/ffi/wrappers.py128__all__ = [CODE
LOWsrc/py/pyodide/http/pyxhr.py35__all__ = [CODE
LOWsrc/py/pyodide/http/__init__.py19__all__ = [CODE
LOWsrc/tests/test_pkg/__init__.py3__all__ = ["test1"]CODE
Self-Referential Comments7 hits · 22 pts
SeverityFileLineSnippetContext
MEDIUMtools/calculate_build_cache_key.py3# This file is a helper script to calculate the hash for cache keyCOMMENT
MEDIUM⚡tools/tests/test_bump_version.py258 # Create an uncommitted changeCOMMENT
MEDIUMtools/tests/test_bump_version.py347 # Create a changelog without the version we're checkingCOMMENT
MEDIUMtools/tests/test_bump_version.py376 # Create a changelog with version header but no blank line afterCOMMENT
MEDIUMtools/tests/test_bump_version.py404 # Create a changelog with invalid date formatCOMMENT
MEDIUMtools/tests/test_bump_version.py433 # Create a changelog without ## Unreleased sectionCOMMENT
MEDIUMtools/tests/test_bump_version.py462 # Create a changelog that already has the version we're trying to bump toCOMMENT
Deep Nesting18 hits · 17 pts
SeverityFileLineSnippetContext
LOWconftest.py222CODE
LOWconftest.py280CODE
LOWbenchmark/benchmark.py158CODE
LOWbenchmark/benchmarks/pystone_benchmarks/pystone.py210CODE
LOWbenchmark/benchmarks/numpy_benchmarks/growcut.py23CODE
LOWbenchmark/benchmarks/numpy_benchmarks/fdtd.py9CODE
LOWbenchmark/benchmarks/numpy_benchmarks/hyantes.py9CODE
LOWtools/create_lockfile_diff.py42CODE
LOWtools/backport.py330CODE
LOWtools/create_xbuildenv.py100CODE
LOWtools/deploy_s3.py62CODE
LOWsrc/py/ssl.py472CODE
LOWsrc/py/_pyodide/_base.py642CODE
LOWsrc/py/pyodide/_nodesock_transport.py115CODE
LOWsrc/py/pyodide/webloop.py881CODE
LOWsrc/tests/test_pyproxy.py420CODE
LOWsrc/tests/test_package_loading.py152CODE
LOWsrc/tests/test_package_loading.py177CODE
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHpackages/scipy/scipy-pytest.js41 print('Hoping scipy tests are included in the scipy wheel')CODE
HIGHpackages/scipy/scipy-pytest.js44 print(pkg_list)CODE
AI Structural Patterns9 hits · 8 pts
SeverityFileLineSnippetContext
LOWconftest.py168CODE
LOWtools/deploy_s3.py62CODE
LOWsrc/py/ssl.py567CODE
LOWsrc/py/_pyodide/_base.py128CODE
LOWsrc/py/_pyodide/_base.py427CODE
LOWsrc/py/_pyodide/_base.py543CODE
LOWsrc/py/_pyodide/_base.py268CODE
LOWsrc/py/pyodide/console.py364CODE
LOWsrc/py/pyodide/webloop.py881CODE
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
LOWsrc/py/pyodide/__init__.py11# pytest mocks for js or pyodide_js, so make sure to test "if IN_PYODIDE" beforeCOMMENT
LOWsrc/tests/test_ssl_stub.py20 # Guardrail to ensure we don't forget to update this test when Python version changesCOMMENT
LOWsrc/tests/test_ssl_stub.py20 # Guardrail to ensure we don't forget to update this test when Python version changesCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtools/check_compressed_size.py10# Usage:COMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWsrc/core/pyproxy.c1424 * The purpose of this function is to handle memory management when attachingCOMMENT
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
LOWsrc/tests/test_database_driver.py335# No extra server configuration needed — just pass ssl=True on the client.COMMENT
Redundant / Tautological Comments2 hits · 1 pts
SeverityFileLineSnippetContext
LOWconftest.py197 # Check if user explicitly wants to run long_running testsSTRING
LOWdocs/sphinx_pyodide/sphinx_pyodide/util.py50 # Set wrapper to be our fake functionSTRING
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtools/tests/test_bump_version.py34 run(["git", "config", "user.email", "test@test.com"], cwd=tmp_path)CODE
Dead Code1 hit · 1 pts
SeverityFileLineSnippetContext
MEDIUMsrc/tests/test_pyproxy.py294CODE
Overly Generic Function Names1 hit · 0 pts
SeverityFileLineSnippetContext
LOWsrc/tests/test_pyodide.py2055 def helper(selenium):STRING