A minimal, secure Python interpreter written in Rust for use by AI
This report presents the forensic synthetic code analysis of pydantic/monty, a Rust project with 7,879 GitHub stars. SynthScan v2.0 examined 187,168 lines of code across 963 source files, recording 1777 pattern matches distributed across 19 syntactic categories. The overall adjusted score of 11.0 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).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
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.
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.
The scanner identified 1777 distinct pattern matches across 19 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 81 | # recently (re)assigned code points. | COMMENT |
| LOW | crates/monty-cpython/tests/stdio_session.rs | 1 | //! Drives the CPython child over an in-memory transport that plays the parent: | COMMENT |
| LOW | crates/monty-cpython/tests/pep_723.rs | 21 | COMMENT | |
| LOW | crates/monty-cpython/src/session.rs | 1 | //! The protocol state machine: turns `pb::ParentRequest`s into `pb::ChildEvent`s | COMMENT |
| LOW | crates/monty-cpython/src/runner.py | 1 | import ast | COMMENT |
| LOW | crates/monty-cpython/src/traceback.rs | 1 | //! Rebuilding a Monty traceback from an embedded-CPython exception. | COMMENT |
| LOW | crates/monty-cpython/src/traceback.rs | 21 | COMMENT | |
| LOW | crates/monty-cpython/src/transport.rs | 21 | }; | COMMENT |
| LOW | crates/monty-cpython/src/install.rs | 1 | //! Installing third-party Python packages into a session's virtualenv with `uv`. | COMMENT |
| LOW | crates/monty-cpython/src/install.rs | 41 | COMMENT | |
| LOW | crates/monty-cpython/src/pep_723.rs | 1 | //! Extracting PEP 723 inline script-metadata dependencies from fed code. | COMMENT |
| LOW | crates/monty-cpython/src/pyexec.rs | 1 | //! Running fed snippets in embedded CPython, and the namespace the sandbox runs | COMMENT |
| LOW | crates/monty-cpython/src/pyexec.rs | 101 | /// | COMMENT |
| LOW | crates/monty-cpython/src/pyexec.rs | 281 | /// A proxy for a host **function**, returned by [`SandboxGlobals::__missing__`] when | COMMENT |
| LOW | crates/monty-proto/tests/differential.rs | 1 | //! Differential tests proving the hand-written `WireObject` codec | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 1 | // @generated by `make generate-proto` from proto/monty/v1/monty.proto — DO NOT EDIT. | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 61 | #[prost(message, tag = "14")] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 81 | BuiltinFunction(::prost::alloc::string::String), | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 121 | #[derive(Clone, PartialEq, ::prost::Message)] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 161 | #[prost(uint32, tag = "2")] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 181 | #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 201 | #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 221 | #[derive(Clone, PartialEq, ::prost::Message)] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 241 | pub struct Function { | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 261 | pub struct RaisedException { | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 281 | #[prost(oneof = "exc_data::Kind", tags = "1, 2")] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 301 | #[prost(string, tag = "1")] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 321 | #[prost(bytes, tag = "2")] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 361 | pub start: ::core::option::Option<CodeLoc>, | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 381 | pub struct ResourceLimits { | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 401 | /// Host-native directory path. | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 421 | /// The call returned this value. | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 481 | /// Configures the REPL session this child will serve until `Reset`, sent once | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 501 | /// deployed in lockstep, so a mismatch is a hard, fail-fast error rather | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 541 | /// The name resolves to this value. | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 561 | /// Restores state produced by `Dump`. Valid only from no session. If | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 581 | #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 601 | /// executing bytecode — never while suspended waiting on the parent or idle | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 661 | /// when `method_call` is true — the instance is then the first arg). Answer | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 681 | /// NOTE: an OsCall re-announced after `Load` carries only `call_id` and | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 701 | /// Suspension: the sandbox read an undefined name — typically probing whether | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 721 | } | COMMENT |
| LOW | crates/monty-proto/tests/oracle/monty.v1.rs | 741 | #[prost(bytes = "vec", tag = "1")] | COMMENT |
| LOW | crates/monty-proto/src/requirement.rs | 1 | //! Validation for Python package requirement strings carried by the protocol. | COMMENT |
| LOW | crates/monty-proto/src/worker.rs | 1 | //! The transport-agnostic Monty protocol-child state machine. | COMMENT |
| LOW | crates/monty-proto/src/worker.rs | 41 | /// payload]` where tag 0 is a `MontyRepl` (idle session) and tag 1 a | COMMENT |
| LOW | crates/monty-proto/src/worker.rs | 61 | /// transport. | COMMENT |
| LOW | crates/monty-proto/src/worker.rs | 121 | COMMENT | |
| LOW | crates/monty-proto/src/worker.rs | 181 | enum SessionState { | COMMENT |
| LOW | crates/monty-proto/src/worker.rs | 201 | pending_snippet: Option<String>, | COMMENT |
| LOW | crates/monty-proto/src/worker.rs | 241 | /// Drive it by reading framed [`pb::ParentRequest`]s from the host transport | COMMENT |
| LOW | crates/monty-proto/src/worker.rs | 301 | }; | COMMENT |
| LOW | crates/monty-proto/src/worker.rs | 361 | let mut event = fatal_error_event(message); | COMMENT |
| LOW | crates/monty-proto/src/frame.rs | 1 | //! Length-prefixed framing for protocol messages over byte streams. | COMMENT |
| LOW | crates/monty-proto/src/frame.rs | 21 | COMMENT | |
| LOW | crates/monty-proto/src/frame.rs | 41 | /// single per-element value is transient at any moment. The host *peak* is | COMMENT |
| LOW | crates/monty-proto/src/wire.rs | 1 | //! Hand-written [`prost::Message`] implementation for [`MontyObject`]. | COMMENT |
| LOW | crates/monty-proto/src/wire.rs | 101 | } | COMMENT |
| LOW | crates/monty-proto/src/wire.rs | 1221 | COMMENT | |
| LOW | crates/monty-proto/src/wire.rs | 1241 | /// | COMMENT |
| 788 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 20 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 22 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 197 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 199 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 296 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 298 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 354 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 356 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 389 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 391 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/function__kwargs_unpacking.py | 71 | # ============================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/function__kwargs_unpacking.py | 73 | # ============================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/function__kwargs_unpacking.py | 126 | # ============================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/function__kwargs_unpacking.py | 128 | # ============================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 12 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 14 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 53 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 55 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 175 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 177 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 233 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 235 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 286 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 288 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 310 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 312 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 327 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 329 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 343 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 345 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 414 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 416 | # ============================================================================ | COMMENT |
| MEDIUM | …ates/monty/test_cases/method__args_kwargs_unpacking.py | 126 | # ============================================================ | COMMENT |
| MEDIUM | …ates/monty/test_cases/method__args_kwargs_unpacking.py | 128 | # ============================================================ | COMMENT |
| MEDIUM | …ates/monty/test_cases/method__args_kwargs_unpacking.py | 223 | # ============================================================ | COMMENT |
| MEDIUM | …ates/monty/test_cases/method__args_kwargs_unpacking.py | 225 | # ============================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/math__module.py | 1271 | # ========================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/math__module.py | 1273 | # ========================================================== | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 206 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 208 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 409 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 411 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 461 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 463 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 500 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 502 | # ============================================================================= | STRING |
| MEDIUM | crates/monty-python/tests/test_os_access_raw.py | 570 | # ============================================================================= | STRING |
| MEDIUM | crates/monty-python/tests/test_os_access_raw.py | 572 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 81 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 83 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 238 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 240 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 303 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 305 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 360 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 362 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 389 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 391 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 633 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access.py | 635 | # ============================================================================= | COMMENT |
| 123 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty/test_cases/closure__multi_hop_capture.py | 74 | def nonlocal_through_pass_through(): | CODE |
| LOW | …ates/monty/test_cases/global__error_assigned_before.py | 37 | def from_import_as_then_global(): | CODE |
| LOW | …ates/monty/test_cases/global__error_assigned_before.py | 53 | def nested_def_read_then_global(): | CODE |
| LOW | crates/monty/test_cases/import__local_scope.py | 41 | def test_aliased_import_local(): | CODE |
| LOW | crates/monty/test_cases/module__dunders.py | 18 | def module_name_from_function(): | CODE |
| LOW | crates/monty/test_cases/lambda__all.py | 138 | def test_inner_lambda_capture(): | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 151 | def finally_return_overrides_handler_exc(): | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 179 | def finally_return_overrides_else_exc(): | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 610 | def _return_from_except_then_bare_raise_in_finally() -> None: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 630 | def _return_from_doubly_nested_except() -> None: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 653 | def _returns_from_except_no_finally() -> str: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 720 | def _callee_raises_and_handles(): | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 745 | def _return_through_inner_finally() -> str: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 787 | def _return_through_two_finallys() -> str: | CODE |
| LOW | crates/monty/test_cases/list__ops.py | 498 | def _make_list_unpack_closure(): | CODE |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 136 | def test_type_check_default_allows_run_with_inputs(pool: Monty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 145 | def test_monty_typing_error_is_monty_error_subclass(tc_session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 154 | def test_monty_typing_error_caught_as_monty_error(tc_session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 160 | def test_monty_typing_error_repr(tc_session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 343 | def test_type_check_accumulated_function(tc_session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 420 | def test_type_check_function_define_then_call(tc_session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 565 | def test_type_check_stubs_and_accumulated_together(pool: Monty): | CODE |
| LOW | crates/monty-python/tests/test_type_check.py | 27 | def test_type_check_no_errors(tc_session: MontySession): | CODE |
| LOW | crates/monty-python/tests/test_type_check.py | 32 | def test_type_check_with_errors(tc_session: MontySession): | CODE |
| LOW | crates/monty-python/tests/test_type_check.py | 64 | def test_type_check_stubs_not_leaked_to_later_session(pool: Monty): | CODE |
| LOW | crates/monty-python/tests/test_type_check.py | 195 | def test_type_check_stubs_with_external_function(pool: Monty): | CODE |
| LOW | crates/monty-python/tests/test_type_check.py | 543 | def test_type_check_function_calling_prior_function(tc_session: MontySession): | CODE |
| LOW | crates/monty-python/tests/test_type_check.py | 636 | def test_skip_type_check_does_not_accumulate(tc_session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 129 | def test_type_check_disabled_by_default(pool: Monty): | STRING |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 337 | def test_type_check_accumulated(tc_session: MontySession): | STRING |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 352 | def test_type_check_accumulated_catches_type_mismatch(tc_session: MontySession): | STRING |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 412 | def test_type_check_multiple_snippets_sequence(tc_session: MontySession): | STRING |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 429 | def test_type_check_function_define_then_call_wrong_type(tc_session: MontySession): | STRING |
| LOW⚡ | crates/monty-python/tests/test_type_check.py | 556 | def test_type_check_variable_used_across_many_snippets(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 50 | def test_type_check_no_cross_session_state_leak(pool: Monty): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 82 | def test_type_check_function_return_type(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 103 | def test_type_check_undefined_variable(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 118 | def test_type_check_valid_function(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 178 | def test_monty_typing_error_display_matches_str(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 209 | def test_type_check_stubs_wrong_arg_type(pool: Monty): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 236 | def test_type_check_stubs_invalid(pool: Monty): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 255 | def test_type_check_stubs_without_trailing_newline(pool: Monty): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 370 | def test_type_check_line_numbers(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 390 | def test_type_check_line_numbers_multiline(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 455 | def test_type_check_function_return_type_used(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 479 | def test_type_check_redefine_function(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 495 | def test_type_check_redefine_function_then_call_later(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 533 | def test_type_check_redefine_variable_type(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 587 | def test_type_check_multiple_functions_interacting(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 604 | def test_type_check_script_name(pool: Monty): | STRING |
| LOW | crates/monty-python/tests/test_type_check.py | 654 | def test_type_check_runtime_error_does_not_pollute_state(tc_session: MontySession): | STRING |
| LOW | crates/monty-python/tests/test_external_async.py | 18 | async def test_async_external_function_raises_surfaces_as_monty_runtime_error(): | CODE |
| LOW | crates/monty-python/tests/test_external_async.py | 33 | async def test_async_external_function_return_lone_surrogate_catchable_inside_monty(): | CODE |
| LOW | crates/monty-python/tests/test_external_async.py | 51 | async def test_async_external_function_return_unconvertible_catchable_inside_monty(): | STRING |
| LOW | crates/monty-python/tests/test_external_async.py | 69 | async def test_async_external_lookup_name_conversion_error_discards_session(): | STRING |
| LOW⚡ | crates/monty-python/tests/test_os_access_raw.py | 211 | def test_abstract_filesystem_exists(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_os_access_raw.py | 221 | def test_abstract_filesystem_exists_missing(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_os_access_raw.py | 230 | def test_abstract_os_date_today(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_os_access_raw.py | 239 | def test_abstract_os_datetime_now_with_timezone(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_os_access_raw.py | 343 | def test_abstract_filesystem_read_text_missing(monty_run: RunMonty): | CODE |
| 517 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty/test_cases/import__star_error.py | 2 | CODE | |
| LOW | crates/monty/test_cases/mount_fs__ops.py | 3 | CODE | |
| LOW | …ates/monty/test_cases/global__error_assigned_before.py | 20 | CODE | |
| LOW | …ates/monty/test_cases/global__error_assigned_before.py | 26 | CODE | |
| LOW | …ates/monty/test_cases/global__error_assigned_before.py | 32 | CODE | |
| LOW | …ates/monty/test_cases/global__error_assigned_before.py | 38 | CODE | |
| LOW | …tes/monty/test_cases/import__error_module_not_found.py | 1 | CODE | |
| LOW | …onty/test_cases/import__runtime_error_when_executed.py | 6 | CODE | |
| LOW | crates/monty/test_cases/import__error_cannot_import.py | 1 | CODE | |
| LOW | …s/monty/test_cases/import__relative_no_module_error.py | 1 | CODE | |
| LOW | crates/monty/test_cases/import__type_checking_guard.py | 7 | CODE | |
| LOW | crates/monty/test_cases/import__type_checking_guard.py | 8 | CODE | |
| LOW | crates/monty/test_cases/import__type_checking_guard.py | 17 | CODE | |
| LOW | crates/monty/test_cases/import__type_checking_guard.py | 27 | CODE | |
| LOW | crates/monty/test_cases/import__type_checking_guard.py | 35 | CODE | |
| LOW | crates/monty/test_cases/import__relative_error.py | 1 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 1 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 8 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 35 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 35 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 35 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 35 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 35 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/os_access.py | 1 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/_binary.py | 8 | CODE | |
| LOW | crates/monty-python/tests/test_type_check.py | 7 | CODE | |
| LOW | crates/monty-python/tests/test_basic.py | 1 | CODE | |
| LOW | crates/monty-python/tests/conftest.py | 3 | CODE | |
| LOW | crates/monty-python/tests/test_inputs.py | 1 | CODE | |
| LOW | crates/monty-python/tests/test_os_calls.py | 8 | CODE | |
| LOW | crates/monty-python/tests/test_print.py | 3 | CODE | |
| LOW | crates/monty-python/tests/test_threading.py | 4 | CODE | |
| LOW | crates/monty-python/tests/test_async.py | 7 | CODE | |
| LOW | crates/monty-python/tests/test_websocket.py | 11 | CODE | |
| LOW | crates/monty-python/tests/test_install_dependencies.py | 9 | CODE | |
| LOW | crates/monty-python/tests/test_exceptions.py | 3 | CODE | |
| LOW | crates/monty-python/tests/test_repl.py | 3 | CODE | |
| LOW | crates/monty-python/tests/test_feed_start.py | 3 | CODE | |
| LOW | crates/monty-python/tests/test_limits.py | 3 | CODE | |
| LOW | crates/monty-python/tests/test_re.py | 1 | CODE | |
| LOW | crates/monty-python/tests/test_pool.py | 3 | CODE | |
| LOW | crates/monty-python/tests/test_types.py | 1 | CODE | |
| LOW | examples/web_scraper/example_code.py | 1 | CODE | |
| LOW | examples/web_scraper/browser.py | 1 | CODE | |
| LOW | examples/web_scraper/sub_agent.py | 1 | CODE | |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/monty-python/python/pydantic_monty/os_access.py | 300 | Read the contents of a file as text. Args: path: The path to the file, either as a `PurePosixPath` | STRING |
| HIGH | crates/monty-python/python/pydantic_monty/os_access.py | 320 | Read the contents of a file as bytes. Args: path: The path to the file, either as a `PurePosixPath` | STRING |
| HIGH | crates/monty-python/python/pydantic_monty/os_access.py | 340 | Write text data to a file. Args: path: The path to the file, either as a `PurePosixPath` (from | STRING |
| HIGH | crates/monty-python/python/pydantic_monty/os_access.py | 361 | Write binary data to a file. Args: path: The path to the file, either as a `PurePosixPath` (from | STRING |
| HIGH | crates/monty-python/python/pydantic_monty/os_access.py | 440 | List the contents of a directory. Args: path: The path to the directory. Returns: | STRING |
| HIGH | crates/monty-python/python/pydantic_monty/os_access.py | 456 | Get file status information. Use file_stat(), dir_stat(), or symlink_stat() helpers to create the return value. | STRING |
| HIGH | crates/monty-python/tests/test_os_access_compat.py | 43 | Run Python code and return the result. The code can use Path('relative/path') and it will be resolved to the | STRING |
| HIGH | examples/sql_playground/external_functions.py | 24 | Execute SQL query on a CSV file using DuckDB. Args: filepath: Path to the CSV file in the virtual f | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/monty-js/__test__/print.spec.ts | 90 | print("Count", i) | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 127 | print(f"Hello, {name}!") | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 141 | print("Inside inner function") | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 155 | print(f"Count: {i}") | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 169 | print("hello") | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 170 | print(func()) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty-cpython/src/runner.py | 118 | except Exception: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 104 | except Exception: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 449 | except Exception: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 460 | except Exception: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 470 | except Exception: | CODE |
| MEDIUM | crates/monty/test_cases/try_except__all.py | 118 | def try_return_finally(): | CODE |
| LOW | crates/monty-python/exercise.py | 43 | except Exception as e: | CODE |
| LOW | crates/monty-python/tests/test_async.py | 525 | except Exception as e: | STRING |
| LOW | crates/monty-python/tests/test_re.py | 88 | except Exception as e: | CODE |
| LOW | scripts/complete_tests.py | 61 | except Exception as e: | CODE |
| LOW | scripts/bench_json.py | 89 | except Exception as e: | STRING |
| MEDIUM | scripts/run_traceback.py | 192 | print(f'Error: File not found: {file_path}', file=sys.stderr) | CODE |
| MEDIUM | scripts/codecov_diff.py | 201 | print(f'Error: {repository.get("message", "Repository not found")}', file=sys.stderr) | CODE |
| MEDIUM | scripts/codecov_diff.py | 206 | print('Error: Pull request not found', file=sys.stderr) | CODE |
| MEDIUM | scripts/codecov_diff.py | 310 | print(f'Error: Could not fetch coverage for {org}/{repo} PR #{pr_number}') | CODE |
| MEDIUM | scripts/codecov_diff.py | 398 | print('Error: Could not detect repository. Use --org and --repo.', file=sys.stderr) | CODE |
| MEDIUM | scripts/codecov_diff.py | 405 | print('Error: Could not detect PR number. Provide PR number as argument.', file=sys.stderr) | CODE |
| LOW | scripts/run_nasty_code.py | 75 | except Exception as exc: | CODE |
| MEDIUM⚡ | scripts/check_imports.py | 109 | print('Error: Found local `use` statements inside function bodies:', file=sys.stderr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/monty/test_cases/json__module.py | 11 | assert json.loads('{"a": 1, "b": [true, null]}') == { | CODE |
| HIGH | crates/monty/test_cases/json__module.py | 17 | assert json.loads(b'{"a":[1,true,null]}') == {'a': [1, True, None]}, 'loads bytes object input' | CODE |
| HIGH⚡ | crates/monty-python/tests/test_feed_start.py | 414 | # no entry for `missing` in the (empty) lookup — the name stays undefined, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/monty/test_cases/class__name_error.py | 6 | # line, which Monty does not implement; the traceback harness strips that | COMMENT |
| MEDIUM | …ates/monty/test_cases/global__error_assigned_before.py | 9 | # the harness verifies through the `# Raise=` comment. | COMMENT |
| MEDIUM | crates/monty/test_cases/async__ext_call.py | 91 | # CPython the test harness now returns an already-resolved `asyncio.Future`, | COMMENT |
| MEDIUM | crates/monty/src/value.rs | 2436 | /// Wraps a `StaticStrings` variant to leverage its string conversion capabilities. | COMMENT |
| MEDIUM | crates/monty-python/Cargo.toml | 38 | # Forwards `monty`'s `test-hooks` feature for test harness builds. | COMMENT |
| LOW | scripts/test_fixtures.py | 307 | # For virtual paths, just return as-is (already absolute) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty/tests/fs_security.rs | 1090 | // Step 1: Rename the symlink within the mount. | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 867 | # Step 1: LLM explores what's available | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 871 | # Step 2: LLM filters by category | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 877 | # Step 3: LLM computes stats | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 888 | # Step 4: LLM also checks electronics | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 894 | # Step 5: LLM builds final summary from accumulated state | COMMENT |
| LOW | examples/sql_playground/sandbox_code.py | 15 | # Step 1: Query top 10 customers by total purchases | COMMENT |
| LOW | examples/sql_playground/sandbox_code.py | 27 | # Step 2: Get their Twitter handles from the survey data | STRING |
| LOW⚡ | examples/sql_playground/sandbox_code.py | 41 | # Step 3: Load all tweets | STRING |
| LOW⚡ | examples/sql_playground/sandbox_code.py | 47 | # Step 4: For each customer, find their tweets and analyze sentiment | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty/tests/fs_security.rs | 1090 | // Step 1: Rename the symlink within the mount. | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 867 | # Step 1: LLM explores what's available | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 871 | # Step 2: LLM filters by category | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 877 | # Step 3: LLM computes stats | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 888 | # Step 4: LLM also checks electronics | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 894 | # Step 5: LLM builds final summary from accumulated state | COMMENT |
| LOW | examples/sql_playground/sandbox_code.py | 15 | # Step 1: Query top 10 customers by total purchases | COMMENT |
| LOW | examples/sql_playground/sandbox_code.py | 27 | # Step 2: Get their Twitter handles from the survey data | STRING |
| LOW⚡ | examples/sql_playground/sandbox_code.py | 41 | # Step 3: Load all tweets | STRING |
| LOW⚡ | examples/sql_playground/sandbox_code.py | 47 | # Step 4: For each customer, find their tweets and analyze sentiment | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/monty-python/tests/test_external_async.py | 0 | try: get_str() result = 'no error' except valueerror: result = 'caught' result | STRING |
| HIGH | crates/monty-python/tests/test_async.py | 0 | try: get_str() result = 'no error' except valueerror: result = 'caught' result | STRING |
| HIGH | crates/monty-python/tests/test_external.py | 0 | try: get_str() result = 'no error' except valueerror: result = 'caught' result | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 3 | # This file is the source of truth for every error path the macro (and | COMMENT |
| MEDIUM | crates/monty-type-checking/tests/bad_types.py | 1 | # This file contains intentional type errors to test the type checker. | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_type_check.py | 572 | # Define a helper that references the stub function — type checking passes | STRING |
| MEDIUM | crates/monty-python/tests/test_os_access_compat.py | 167 | # Create a mock os module with our environ | COMMENT |
| MEDIUM | crates/monty-typeshed/update.py | 263 | # Create a new If node with filtered contents | STRING |
| MEDIUM | examples/web_scraper/example_code.py | 42 | # Create a dictionary for this model | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/monty/test_cases/loop__break_nested_except_clears.py | 21 | CODE | |
| LOW | …onty/test_cases/loop__continue_nested_except_clears.py | 23 | CODE | |
| LOW | crates/monty/test_cases/try_except__all.py | 787 | CODE | |
| LOW | crates/monty-python/exercise.py | 20 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/os_access.py | 855 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/os_access.py | 972 | CODE | |
| LOW | crates/monty-typeshed/update.py | 211 | CODE | |
| LOW | scripts/complete_tests.py | 19 | CODE | |
| LOW | scripts/bench_json.py | 68 | CODE | |
| LOW | scripts/run_traceback.py | 22 | CODE | |
| LOW | scripts/codecov_diff.py | 236 | CODE | |
| LOW | scripts/codecov_diff.py | 304 | CODE | |
| LOW | scripts/check_imports.py | 123 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty/src/builtins/hasattr.rs | 26 | /// hasattr(obj, 'x') # Check if obj.x exists | COMMENT |
| LOW | crates/monty-python/example.py | 28 | # Print output is forwarded to Python stdout | COMMENT |
| LOW | crates/monty-python/tests/test_os_access_raw.py | 105 | # Check if directory is empty | COMMENT |
| LOW | crates/monty-typeshed/update.py | 176 | # Check if already at the right commit | STRING |
| LOW | examples/web_scraper/example_code.py | 53 | # Print the results | COMMENT |
| LOW | examples/expense_analysis/main.py | 61 | # Check if they exceeded standard budget | STRING |
| LOW | examples/expense_analysis/main.py | 71 | # Check if they exceeded their actual budget (standard or custom) | STRING |
| LOW | examples/sql_playground/main.py | 23 | # Read file contents | COMMENT |
| LOW | scripts/test_fixtures.py | 353 | # Check if parent exists | COMMENT |
| LOW⚡ | scripts/test_fixtures.py | 475 | # Check if already patched (happens when module is re-executed in same interpreter) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tes/monty/test_cases/refcount__gather_nested_cancel.py | 14 | CODE | |
| LOW | crates/monty-python/tests/conftest.py | 23 | CODE | |
| LOW | crates/monty-python/tests/conftest.py | 60 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty-python/python/pydantic_monty/os_access.py | 1128 | def _update_paths_recursive(self, tree: Tree, old_prefix: PurePosixPath, new_prefix: PurePosixPath) -> None: | CODE |
| LOW | crates/monty-python/tests/test_os_access_compat.py | 69 | def set_environ(self, environ: dict[str, str]) -> None: | CODE |
| LOW | crates/monty-python/tests/test_os_access_compat.py | 92 | def set_environ(self, environ: dict[str, str]) -> None: | CODE |
| LOW | crates/monty-python/tests/test_os_access_compat.py | 147 | def set_environ(self, environ: dict[str, str]) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 47 | # make sure to use relative durations: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty/test_cases/async__ext_call.py | 96 | async def helper(future): | CODE |