A minimal, secure Python interpreter written in Rust for use by AI
This report summarizes scanner evidence for pydantic/monty, a Rust project with 8,615 GitHub stars. SynthScan examined 326,291 lines of code across 1353 source files, recording 2625 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 11.1 (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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2075 finding(s).
Are imports declared and package/API names verified? 110 finding(s).
Are wrappers, guards, and repeated structures necessary? 1280 finding(s).
Which changes need focused human review? 2625 finding(s).
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.
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.
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.
The scanner identified 2625 distinct pattern matches across 21 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 141 | # Unique, exclusively-created temp dirs (pool tests). | COMMENT |
| LOW | .macroscope/ignore.md | 1 | # Repository-wide Macroscope ignore (code review + any check-run agents). | COMMENT |
| LOW | crates/monty-alloc/src/lib.rs | 121 | /// machinery allocates. How it ends is the `exit-code` feature's choice; see the | COMMENT |
| LOW | crates/monty-types/src/format.rs | 1 | //! Pure CPython-compatible formatting helpers shared by the boundary types: | COMMENT |
| LOW | crates/monty-types/src/format.rs | 121 | f.write_char(quote) | COMMENT |
| LOW | crates/monty-types/src/format.rs | 141 | /// | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 21 | // target; every other target (native, WASI) keeps std, so the `web-time` | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 81 | /// the memory check can catch them. | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 101 | /// Maximum recursion depth exceeded. | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 141 | } | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 161 | pub max_feed_duration: Option<Duration>, | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 261 | COMMENT | |
| LOW | crates/monty-types/src/resource.rs | 281 | /// to hosts for telemetry — but is serialized so a loaded session keeps | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 361 | /// [`elapsed`](Self::elapsed), which reports the same clock over the | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 421 | COMMENT | |
| LOW | crates/monty-types/src/resource.rs | 541 | self.check_memory_time() | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 561 | COMMENT | |
| LOW | crates/monty-types/src/resource.rs | 621 | COMMENT | |
| LOW | crates/monty-types/src/resource.rs | 641 | #[must_use] | COMMENT |
| LOW | crates/monty-types/src/resource.rs | 681 | /// | COMMENT |
| LOW | crates/monty-types/src/os.rs | 21 | unstable::{self, PushValue}, | COMMENT |
| LOW | crates/monty-types/src/os.rs | 41 | Exists(MontyPath), | COMMENT |
| LOW | crates/monty-types/src/os.rs | 61 | #[strum(serialize = "Path.iterdir")] | COMMENT |
| LOW | crates/monty-types/src/os.rs | 81 | #[strum(serialize = "Path.append_bytes")] | COMMENT |
| LOW | crates/monty-types/src/os.rs | 101 | #[strum(serialize = "Path.rename")] | COMMENT |
| LOW | crates/monty-types/src/os.rs | 121 | Urandom(UrandomArgs), | COMMENT |
| LOW | crates/monty-types/src/os.rs | 141 | /// meanwhile. The answer's value is ignored: the sandbox keeps the | COMMENT |
| LOW | crates/monty-types/src/os.rs | 421 | Time, | COMMENT |
| LOW | crates/monty-types/src/os.rs | 541 | /// `PyTime_t` (nanoseconds in an `i64`) overflows. | COMMENT |
| LOW | crates/monty-types/src/os.rs | 661 | /// | COMMENT |
| LOW | crates/monty-types/src/os.rs | 681 | /// * `mode` - Directory permissions as octal. Common values: | COMMENT |
| LOW | crates/monty-types/src/builtins.rs | 1 | //! [`BuiltinsFunctions`] — the name-level identity of every interpreter-native | COMMENT |
| LOW | crates/monty-types/src/builtins.rs | 41 | // Breakpoint, | COMMENT |
| LOW | crates/monty-types/src/builtins.rs | 101 | // Appended out of alphabetical order: the discriminant is emitted as a | COMMENT |
| LOW | crates/monty-types/src/io.rs | 21 | /// A retained entry costs about 32 bytes in the vector plus its `String`'s own | COMMENT |
| LOW | crates/monty-types/src/io.rs | 41 | /// Provides common output modes as enum variants to avoid trait object overhead | COMMENT |
| LOW | crates/monty-types/src/io.rs | 61 | /// Write to standard output. | COMMENT |
| LOW | crates/monty-types/src/io.rs | 201 | /// The buffer behind [`PrintWriter::CollectStreams`]: `(stream, text)` entries | COMMENT |
| LOW | crates/monty-types/src/io.rs | 301 | /// or redirect print output from sandboxed Python code. | COMMENT |
| LOW | crates/monty-types/src/io.rs | 321 | COMMENT | |
| LOW | crates/monty-types/src/graph.rs | 1 | //! [`MontyGraph`], the flat node arena Python values cross the sandbox | COMMENT |
| LOW | crates/monty-types/src/object.rs | 1221 | /// The four `datetime` classes carry the qualified names the runtime | COMMENT |
| LOW | crates/monty-types/src/object.rs | 1301 | #[strum(serialize = "dict_valueiterator")] | COMMENT |
| LOW | crates/monty-types/src/object.rs | 1321 | #[strum(serialize = "itertools.cycle")] | COMMENT |
| LOW | crates/monty-types/src/object.rs | 1341 | Time, | COMMENT |
| LOW | crates/monty-types/src/object.rs | 1421 | pub month: u8, | COMMENT |
| LOW | crates/monty-types/src/object.rs | 1441 | COMMENT | |
| LOW | crates/monty-types/src/object.rs | 1501 | /// CPython requires an offset strictly inside ±24 hours. Shared with the wire | COMMENT |
| LOW | crates/monty-types/src/results.rs | 1 | //! Host-supplied results fed back into a suspended run: | COMMENT |
| LOW | crates/monty-types/src/run_options.rs | 1 | //! Compile-time configuration: [`CompileOptions`] and the | COMMENT |
| LOW | crates/monty-types/src/run_options.rs | 41 | /// Controls the pytest-style introspected `assert` failure messages of | COMMENT |
| LOW | crates/monty-types/src/uuid.rs | 1 | //! The 16-byte UUID carried on the wire for class and instance identity. | COMMENT |
| LOW | crates/monty-types/src/file_mode.rs | 1 | //! [`FileMode`] — the parsed, validated form of a Python `open()` mode | COMMENT |
| LOW | crates/monty-types/src/file_mode.rs | 21 | /// currently rejects them — properly modelling them needs read-position | COMMENT |
| LOW | crates/monty-types/src/exceptions.rs | 321 | ImportError, | COMMENT |
| LOW | crates/monty-types/src/exceptions.rs | 361 | // --- re module --- | COMMENT |
| LOW | crates/monty-types/src/exceptions.rs | 381 | /// `binascii.Incomplete` - a direct `Exception` subclass, not a `ValueError`. | COMMENT |
| LOW | crates/monty-types/src/exceptions.rs | 481 | match self { | COMMENT |
| LOW | crates/monty-types/src/exceptions.rs | 501 | #[derive(Debug, Clone, PartialEq, Hash, serde::Serialize, serde::Deserialize)] | COMMENT |
| LOW | crates/monty-types/src/exceptions.rs | 561 | reason: reason.to_owned(), | COMMENT |
| 1092 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/monty/test_cases/sequence__search_bounds.py | 129 | except ValueError: | CODE |
| HIGH | …nty/test_cases/refcount__re_pattern_sub_error_paths.py | 18 | except TypeError: | CODE |
| HIGH | …nty/test_cases/refcount__re_pattern_sub_error_paths.py | 24 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 392 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 425 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 560 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 653 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 833 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 936 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 200 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 418 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 574 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/itertools__adaptors.py | 811 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/ext_call__ext_exc.py | 62 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__ext_exc.py | 70 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__ext_exc.py | 99 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/mount_fs__ops.py | 147 | except (OSError, NotADirectoryError): | CODE |
| HIGH | …ty/test_cases/name_error__module_conditional_assign.py | 12 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/refcount__assert.py | 16 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/refcount__assert.py | 20 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/refcount__datetime_tzinfo.py | 37 | except (TypeError, ValueError): | CODE |
| HIGH | crates/monty/test_cases/async__ext_exc.py | 67 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/async__ext_exc.py | 74 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/async__ext_exc.py | 82 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/async__ext_exc.py | 111 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 93 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 173 | except KeyError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 185 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 199 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 238 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 253 | except KeyError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 278 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 169 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 194 | except: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 248 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/ext_call__try.py | 272 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/dataclass__repr_eq.py | 177 | except RecursionError: | CODE |
| HIGH | crates/monty/test_cases/dataclass__repr_eq.py | 183 | except RecursionError: | CODE |
| HIGH | crates/monty/test_cases/dataclass__repr_eq.py | 194 | except RecursionError: | CODE |
| HIGH | crates/monty/test_cases/dataclass__repr_eq.py | 204 | except RecursionError: | CODE |
| HIGH | crates/monty/test_cases/dataclass__repr_eq.py | 214 | except RecursionError: | CODE |
| HIGH | crates/monty/test_cases/re__basic.py | 291 | except re.PatternError: | CODE |
| HIGH | crates/monty/test_cases/dict__eq_self_referential.py | 10 | except RecursionError: | CODE |
| HIGH | crates/monty/test_cases/refcount__collections.py | 59 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/refcount__collections.py | 78 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/refcount__collections.py | 91 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/refcount__collections.py | 104 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/refcount__collections.py | 114 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/refcount__collections.py | 143 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/refcount__collections.py | 154 | except ValueError: | CODE |
| HIGH | crates/monty/test_cases/refcount__collections.py | 165 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/import__local_scope.py | 18 | except NameError: | CODE |
| HIGH | crates/monty/test_cases/import__local_scope.py | 36 | except NameError: | CODE |
| HIGH | crates/monty/test_cases/import__local_scope.py | 54 | except NameError: | CODE |
| HIGH | …ates/monty/test_cases/refcount__unknown_method_args.py | 29 | except AttributeError: | CODE |
| HIGH | crates/monty/test_cases/dict__views.py | 256 | except TypeError: | CODE |
| HIGH | crates/monty/test_cases/dict__views.py | 262 | except AttributeError: | CODE |
| HIGH | crates/monty/test_cases/itertools__groupby.py | 124 | except StopIteration: | CODE |
| HIGH | crates/monty/test_cases/bool__arithmetic.py | 283 | except ZeroDivisionError: | CODE |
| HIGH | crates/monty/test_cases/bool__arithmetic.py | 289 | except ZeroDivisionError: | CODE |
| 127 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty-js/ts/callbackContext.ts | 15 | export function setCallbackContextHandlers(value: CallbackContextHandlers): void { | CODE |
| LOW | crates/monty-js/ts/options.ts | 67 | export function encodeAssertMessageAnnotations(value: AssertMessageAnnotations | undefined): number | undefined { | CODE |
| LOW | crates/monty-js/ts/worker/poolOptions.ts | 20 | export function createWorkerPoolFromFactory( | CODE |
| 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/async__control_flow.py | 36 | async def continue_swallows_awaited_error(): | CODE |
| LOW | crates/monty/test_cases/async__control_flow.py | 144 | async def return_swallows_pending_failure(): | CODE |
| LOW | crates/monty/test_cases/async__control_flow.py | 156 | async def continue_swallows_pending_failures(): | 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 | 25 | def module_name_from_function(): | CODE |
| LOW | crates/monty/test_cases/lookup__mutation.py | 211 | def inserted_candidate_lookup(kind, calls): | CODE |
| LOW | crates/monty/test_cases/try_finally__control_flow.py | 62 | def raise_in_finally_during_return(): | CODE |
| LOW | crates/monty/test_cases/try_finally__control_flow.py | 194 | def bare_raise_in_inner_finally(): | CODE |
| LOW | crates/monty/test_cases/try_finally__control_flow.py | 246 | def exceptional_handler_cell_cleanup(): | CODE |
| LOW | crates/monty/test_cases/try_finally__control_flow.py | 361 | def return_through_exploding_exit(): | CODE |
| LOW | crates/monty/test_cases/try_finally__control_flow.py | 473 | def continue_from_handler_through_finally(): | CODE |
| LOW | crates/monty/test_cases/try_finally__control_flow.py | 738 | def return_call_short_circuit(): | CODE |
| LOW⚡ | crates/monty/test_cases/try_finally__control_flow.py | 769 | def return_indirect_call_except(): | CODE |
| LOW⚡ | crates/monty/test_cases/try_finally__control_flow.py | 779 | def return_call_and_fallthrough(): | CODE |
| LOW⚡ | crates/monty/test_cases/try_finally__control_flow.py | 789 | def return_call_ternary_fallthrough(): | CODE |
| LOW | crates/monty/test_cases/dataclass__init.py | 114 | def non_default_after_default(): | CODE |
| LOW | crates/monty/test_cases/decorator__function.py | 414 | def walrus_captured_by_closure(): | CODE |
| LOW | crates/monty/test_cases/comprehension__scope.py | 48 | def make_comprehension_closure(): | 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 | 175 | def finally_return_overrides_else_exc(): | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 604 | def _return_from_except_then_bare_raise_in_finally() -> None: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 624 | def _return_from_doubly_nested_except() -> None: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 647 | def _returns_from_except_no_finally() -> str: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 714 | def _callee_raises_and_handles(): | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 739 | def _return_through_inner_finally() -> str: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 781 | def _return_through_two_finallys() -> str: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 849 | def _identity_through_finally(): | CODE |
| LOW | crates/monty/test_cases/decorator__class.py | 206 | def lambda_in_decorator_position(): | CODE |
| LOW | crates/monty/test_cases/decorator__class.py | 219 | def lambda_passed_to_decorator_factory(): | CODE |
| LOW | crates/monty/test_cases/decorator__class.py | 327 | def walrus_captured_by_closure(): | CODE |
| LOW | crates/monty/test_cases/list__ops.py | 498 | def _make_list_unpack_closure(): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 159 | def test_repr_shows_eager_attrs(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 166 | def test_repr_empty_dataclass(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 174 | def test_repr_includes_attr_set_in_sandbox(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 209 | def test_private_attr_not_looked_up(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 217 | def test_lazy_attr_host_error_raised_in_sandbox(session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 225 | def test_lazy_attr_host_error_uncaught(session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 237 | def test_lazy_attr_host_error_bypasses_hasattr_getattr_defaults(session: MontySession, code: str): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 246 | def test_lazy_attr_convert_value_error_raised_in_sandbox(session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 253 | def test_lazy_attr_unconvertible_value_raised_in_sandbox(session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 262 | def test_lazy_attr_host_error_feed_start_resume_auto(session: MontySession): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 300 | def test_method_exception_propagates(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 309 | def test_method_exception_catchable_in_sandbox(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 315 | def test_private_method_not_dispatched(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 322 | def test_instance_call_method_dunder_call_rejected(): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 447 | def test_convert_value_override_method_return(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 453 | def test_convert_value_override_eager_attr(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 458 | def test_method_returning_dataclass_not_auto_wrapped(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 500 | def test_plain_class_eager_attrs(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 506 | def test_plain_class_method_call(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 511 | def test_plain_class_identity_round_trip(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 519 | def test_bare_dataclass_input_rejected(monty_run: RunMonty): | CODE |
| LOW⚡ | crates/monty-python/tests/test_class_instance.py | 527 | def test_bare_class_instance_input_rejected(monty_run: RunMonty): | CODE |
| 777 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 77 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 79 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 315 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 317 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 414 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 416 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 472 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 474 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 507 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 509 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 591 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 593 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 622 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 624 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 674 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 676 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 796 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 798 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 859 | # ===================================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/args__macro_errors.py | 861 | # ===================================================================== | 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 | 404 | # ============================================================================ | COMMENT |
| MEDIUM | crates/monty/test_cases/mount_fs__errors.py | 406 | # ============================================================================ | 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/test_cases/math__module.py | 1446 | # ========================================================== | COMMENT |
| MEDIUM | crates/monty/test_cases/math__module.py | 1448 | # ========================================================== | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 207 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 209 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 427 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 429 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 479 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 481 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 518 | # ============================================================================= | STRING |
| MEDIUM⚡ | crates/monty-python/tests/test_os_access_raw.py | 520 | # ============================================================================= | STRING |
| MEDIUM | crates/monty-python/tests/test_os_access_raw.py | 588 | # ============================================================================= | STRING |
| MEDIUM | crates/monty-python/tests/test_os_access_raw.py | 590 | # ============================================================================= | STRING |
| 145 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 | 4 | 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 | crates/monty/test_cases/import__dotted_error.py | 6 | CODE | |
| LOW | crates/monty/test_cases/import__dotted_error.py | 12 | CODE | |
| LOW | crates/monty/test_cases/import__dotted_error.py | 18 | CODE | |
| LOW | crates/monty/test_cases/import__dotted_error.py | 26 | CODE | |
| LOW | crates/monty/test_cases/import__dotted_error.py | 32 | CODE | |
| LOW | crates/monty/test_cases/import__dotted_error.py | 38 | CODE | |
| LOW | crates/monty/test_cases/import__dotted_error.py | 44 | CODE | |
| LOW | crates/monty/test_cases/import__dotted_error.py | 50 | CODE | |
| LOW | …tes/monty/test_cases/import__error_module_not_found.py | 1 | CODE | |
| LOW | crates/monty/test_cases/class__annotations.py | 8 | CODE | |
| LOW | …onty/test_cases/import__runtime_error_when_executed.py | 6 | CODE | |
| LOW | …tes/monty/test_cases/import__future_unknown_feature.py | 4 | 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/os_path__fs.py | 6 | 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 | …ates/monty/test_cases/import__relative_future_error.py | 4 | CODE | |
| LOW | crates/monty/test_cases/import__relative_error.py | 1 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/_cli.py | 12 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 1 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 9 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 43 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 43 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 44 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 44 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 44 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 44 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 44 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/__init__.py | 44 | CODE | |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty-js/__test__/limits.spec.ts | 171 | except Exception: | CODE |
| LOW | crates/monty/test_cases/async__sleep.py | 11 | except Exception as exc: | CODE |
| MEDIUM | crates/monty/test_cases/async__sleep.py | 7 | def check(fn, expected): | CODE |
| LOW | crates/monty/test_cases/str__format.py | 9 | except Exception as exc: | CODE |
| MEDIUM | crates/monty/test_cases/str__format.py | 6 | def capture_error(template, *args, **kwargs): | CODE |
| LOW | crates/monty/test_cases/str__format_long_int.py | 4 | except Exception as exc: | CODE |
| MEDIUM | crates/monty/test_cases/str__format_long_int.py | 1 | def capture_error(template, value): | CODE |
| LOW | crates/monty/test_cases/str__percent_format.py | 7 | except Exception as exc: | CODE |
| MEDIUM | crates/monty/test_cases/str__percent_format.py | 4 | def capture_error(template, args): | CODE |
| LOW | crates/monty/test_cases/set__ops.py | 407 | except Exception as exc: | CODE |
| LOW | crates/monty/test_cases/bytes__percent_format.py | 4 | except Exception as exc: | CODE |
| MEDIUM | crates/monty/test_cases/bytes__percent_format.py | 1 | def capture_error(template, args): | CODE |
| LOW | crates/monty/test_cases/time__module.py | 11 | except Exception as exc: | CODE |
| MEDIUM | crates/monty/test_cases/time__module.py | 7 | def check(fn, expected): | CODE |
| LOW | crates/monty/test_cases/time__struct_time.py | 10 | except Exception as exc: | CODE |
| MEDIUM | crates/monty/test_cases/time__struct_time.py | 6 | def check(fn, expected): | CODE |
| LOW | crates/monty/test_cases/binascii__all.py | 465 | except Exception as exc: | CODE |
| MEDIUM | crates/monty/test_cases/try_except__all.py | 118 | def try_return_finally(): | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 104 | except Exception: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 443 | except Exception: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 454 | except Exception: | CODE |
| LOW | crates/monty/test_cases/try_except__all.py | 464 | except Exception: | CODE |
| LOW | crates/monty/tests/binary_serde.rs | 638 | except Exception: | STRING |
| LOW | crates/monty/tests/abort.rs | 41 | except Exception: | CODE |
| LOW | crates/monty/tests/abort.rs | 69 | except Exception: | CODE |
| LOW | crates/monty/tests/abort.rs | 120 | except Exception: | CODE |
| MEDIUM | crates/monty/tests/abort.rs | 117 | def main(): | CODE |
| LOW | crates/monty-python/exercise.py | 48 | except Exception as e: | CODE |
| LOW | crates/monty-python/tests/test_async.py | 560 | except Exception as e: | STRING |
| LOW | crates/monty-python/tests/test_limits.py | 115 | except Exception: | CODE |
| 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 | 195 | 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 | 74 | 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 |
|---|---|---|---|---|
| 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__control_flow.py | 8 | # round-trip at every suspension in the test harness). | 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/test_cases/async__with_args.py | 35 | # `__qualname__` (here the harness's wrapping function), which Monty | COMMENT |
| MEDIUM | crates/monty/test_cases/datetime__core.py | 145 | # on Windows because the harness cannot set its zone there | COMMENT |
| MEDIUM | crates/monty/test_cases/os_path__fs.py | 64 | # a dangling symlink is what tells lexists from exists; the harness creates | COMMENT |
| MEDIUM | crates/monty/test_cases/time__module.py | 46 | # skips CPython on Windows because the harness cannot set its zone there | COMMENT |
| MEDIUM | crates/monty/test_cases/datetime__zone_default.py | 3 | # harness puts the CPython side in UTC to match. Windows has no `time.tzset`, so the | COMMENT |
| MEDIUM | crates/monty/test_cases/datetime__zone_default.py | 4 | # harness cannot move CPython there and only the Monty side of this case runs. | COMMENT |
| MEDIUM | crates/monty/tests/resource_limits.rs | 647 | /// generous budget keeps the timing assertion robust on loaded CI. | COMMENT |
| MEDIUM | crates/monty/src/value.rs | 2498 | /// Wraps a `StaticStrings` variant to leverage its string conversion capabilities. | COMMENT |
| MEDIUM | scripts/run_traceback.py | 92 | raise # the harness reports the watchdog interrupt itself | CODE |
| LOW | scripts/test_fixtures.py | 319 | # For virtual paths, just return as-is (already absolute) | COMMENT |
| MEDIUM | scripts/branch_diff.py | 74 | # tests, benchmarks, the crates that only exist to run them and the scripts the test harness imports | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 175 | # not depend on `monty` at all), the subprocess stack and the docs harness. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/monty-python/python/pydantic_monty/os_access.py | 356 | 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 | 376 | 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 | 396 | 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 | 417 | 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 | 496 | 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 | 512 | 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__/class_instance.spec.ts | 772 | 'def probe(f):\n try:\n f()\n except AttributeError as e:\n return str(e)\n return None\n' | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 159 | print("Count", i) | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 196 | print(f"Hello, {name}!") | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 210 | print("Inside inner function") | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 224 | print(f"Count: {i}") | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 238 | print("hello") | CODE |
| HIGH | crates/monty-js/__test__/print.spec.ts | 239 | print(func()) | 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]} | CODE |
| HIGH⚡ | crates/monty-python/tests/test_feed_start.py | 632 | # no entry for `missing` in the (empty) lookup — the name stays undefined, | COMMENT |
| 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/test_cases/collections__deque.py | 4 | # This file is dual-run against CPython and Monty, so both must agree exactly. | 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 | 678 | # 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 | 317 | # 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 | 781 | CODE | |
| LOW | crates/monty-python/exercise.py | 20 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/os_access.py | 998 | CODE | |
| LOW | crates/monty-python/python/pydantic_monty/os_access.py | 1115 | CODE | |
| LOW | …s/monty-python/python/pydantic_monty/class_instance.py | 363 | CODE | |
| LOW | crates/monty-python/tests/test_websocket.py | 180 | CODE | |
| LOW | crates/monty-python/tests/test_telemetry.py | 378 | CODE | |
| LOW | crates/monty-python/tests/test_telemetry.py | 531 | CODE | |
| LOW | crates/monty-typeshed/update.py | 265 | CODE | |
| LOW | scripts/complete_tests.py | 19 | CODE | |
| LOW | scripts/bench_json.py | 68 | CODE | |
| LOW | scripts/run_traceback.py | 23 | 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-fs/tests/fs_security.rs | 1976 | // Step 1: Rename the symlink within the mount. | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 902 | # Step 1: LLM explores what's available | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 906 | # Step 2: LLM filters by category | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 912 | # Step 3: LLM computes stats | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 923 | # Step 4: LLM also checks electronics | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 929 | # 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-fs/tests/fs_security.rs | 1976 | // Step 1: Rename the symlink within the mount. | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 902 | # Step 1: LLM explores what's available | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 906 | # Step 2: LLM filters by category | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 912 | # Step 3: LLM computes stats | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 923 | # Step 4: LLM also checks electronics | COMMENT |
| LOW⚡ | crates/monty-python/tests/test_async.py | 929 | # 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 |
|---|---|---|---|---|
| LOW | crates/monty/src/builtins/hasattr.rs | 28 | /// 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 | 106 | # Check if directory is empty | COMMENT |
| LOW | crates/monty-typeshed/update.py | 211 | # 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 | 365 | # Check if parent exists | COMMENT |
| LOW⚡ | scripts/test_fixtures.py | 487 | # Check if already patched (happens when module is re-executed in same interpreter) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/monty/README.md | 7 | The core interpreter crate of [Monty](https://github.com/pydantic/monty) — a secure Python sandbox written in Rust for c | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty/test_cases/async__ext_call.py | 96 | async def helper(future): | CODE |
| LOW | crates/monty/test_cases/decorator__function.py | 314 | def helper(): | CODE |
| LOW⚡ | crates/monty-python/tests/test_feed_start.py | 233 | session.feed_run('def helper(n):\n return fetch(n)') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tes/monty/test_cases/refcount__gather_nested_cancel.py | 15 | CODE | |
| LOW | crates/monty-python/tests/conftest.py | 22 | CODE | |
| LOW | crates/monty-python/tests/conftest.py | 64 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/monty-python/python/pydantic_monty/os_access.py | 1271 | 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 | 66 | # make sure to use relative durations: | COMMENT |