AI Slop Code RIsk Monitor

astral-sh/ruff

An extremely fast Python linter and code formatter, written in Rust.

4.8 Low pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for astral-sh/ruff, a Rust project with 49,983 GitHub stars. SynthScan examined 1,208,705 lines of code across 4038 source files, recording 5646 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 4.8 (Low 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.

4.8
Adjusted Signal
4.8
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
50.0K
Stars
Rust
Language
1.2M
Lines of Code
4.0K
Files
5.6K
Pattern Hits
2026-10-12
Scan Date
0.01
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 19.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.8/100 · LOW

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

Agent Over-Engineering Ratio 5.0/100 · LOW

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

PR Review Velocity Impact 22.2/100 · LOW

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

What These Metrics Mean

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

Pattern-Signal History

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

Severity Breakdown

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

CRITICAL 0HIGH 49MEDIUM 84LOW 5513

Directory Score Breakdown

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

Pattern Findings

The scanner identified 5646 distinct pattern matches across 25 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.

Over-Commented Block4207 hits · 3984 pts
SeverityFileLineSnippetContext
LOWCargo.toml361# Reduce complexity of a parser function that would trigger a locals limit in a wasm tool.COMMENT
LOW.markdownlint.yaml21MD024:COMMENT
LOWcrates/ty_site_packages/src/version.rs21 /// Value loaded from the `pyvenv.cfg` file of the virtual environment.COMMENT
LOWcrates/ty_site_packages/src/lib.rs41/// available, however. Ephemeral environments created with `uv` inCOMMENT
LOWcrates/ty_site_packages/src/lib.rs681 }COMMENT
LOWcrates/ty_site_packages/src/lib.rs961pub(crate) enum CondaEnvironmentKind {COMMENT
LOWcrates/ty_site_packages/src/lib.rs1221COMMENT
LOWcrates/ty_site_packages/src/lib.rs1641 system.dyn_clone(),COMMENT
LOWcrates/ty_site_packages/src/lib.rs1661 // some installers appear to do [some strange things on Fedora] that mean that `.py`COMMENT
LOWcrates/ty_site_packages/src/lib.rs2041 inner: path.to_path_buf(),COMMENT
LOWcrates/ty_site_packages/src/lib.rs2141 /// The `sys.prefix` path came from the `VIRTUAL_ENV` environment variableCOMMENT
LOWcrates/ty_site_packages/src/lib.rs2241/// consistent among all mainstream creators of Python virtualCOMMENT
LOWcrates/ruff/tests/analyze_graph.rs821 let root = ChildPath::new(tempdir.path());COMMENT
LOWcrates/ruff/tests/cli/lint.rs3961/// │ └── __init__.pyCOMMENT
LOWcrates/ruff/tests/cli/lint.rs4481#[test_case::test_case("json")]COMMENT
LOWcrates/ruff/tests/cli/lint.rs4521 "input.py",COMMENT
LOWcrates/ruff/tests/cli/main.rs21mod show_settings;COMMENT
LOWcrates/ruff/tests/cli/main.rs41/// ```rust,no_runCOMMENT
LOWcrates/ruff/tests/cli/main.rs201 /// - The correct ruff binary pathCOMMENT
LOWcrates/ruff/src/cache.rs61/// `Cache` holds everything required to display the diagnostics for a singleCOMMENT
LOWcrates/ruff/src/cache.rs321/// On disk representation of a cache of a package.COMMENT
LOWcrates/ruff/src/args.rs61 /// Ignore all configuration files.COMMENT
LOWcrates/ruff/src/args.rs121)]COMMENT
LOWcrates/ruff/src/args.rs201 /// file to files that it depends on. Use `--direction dependents` to generate a map from fileCOMMENT
LOWcrates/ruff/src/args.rs221 python: Option<PathBuf>,COMMENT
LOWcrates/ruff/src/args.rs241 #[clap(long, overrides_with("fix"), hide = true)]COMMENT
LOWcrates/ruff/src/args.rs261 watch: bool,COMMENT
LOWcrates/ruff/src/args.rs401 /// Enforce exclusions, even for paths passed to Ruff directly on the command-line.COMMENT
LOWcrates/ruff/src/args.rs521COMMENT
LOWcrates/ruff/src/args.rs581 #[clap(long, overrides_with("force_exclude"), hide = true)]COMMENT
LOWcrates/ruff/src/args.rs601 no_preview: bool,COMMENT
LOWcrates/ruff/src/args.rs621COMMENT
LOWcrates/ruff/src/args.rs941#[derive(Debug)]COMMENT
LOWcrates/ruff/src/args.rs961 Self::InvalidToml(_) => "The supplied argument is not valid TOML",COMMENT
LOWcrates/ruff_python_literal/src/format.rs201/// ```pythonCOMMENT
LOWcrates/ruff_python_literal/src/escape.rs61 pub fn with_preferred_quote(source: &'a str, quote: Quote) -> Self {COMMENT
LOWcrates/ruff_python_trivia/src/textwrap.rs1//! Functions related to adding and removing indentation from lines ofCOMMENT
LOWcrates/ruff_python_trivia/src/textwrap.rs21///COMMENT
LOWcrates/ruff_python_trivia/src/textwrap.rs41/// assert_eq!(indent("foo = 123\n\nprint(foo)\n", "# "),COMMENT
LOWcrates/ruff_python_trivia/src/textwrap.rs81/// ```COMMENT
LOWcrates/ruff_python_trivia/src/textwrap.rs141/// ```COMMENT
LOWcrates/ruff_python_trivia/src/textwrap.rs181 result.push_str(&line.as_full_str()[prefix_len..]);COMMENT
LOWcrates/ruff_python_trivia/src/textwrap.rs201/// removed and the formfeeds reinstatedCOMMENT
LOWcrates/ruff_python_trivia/src/pragmas.rs1/// Returns `true` if a comment appears to be a pragma comment.COMMENT
LOWcrates/ruff_python_trivia/src/pragmas.rs41COMMENT
LOWcrates/ruff_python_trivia/src/comments.rs61 position.is_own_line() && matches!(Self::from_comment(slice), Some(Self::Off))COMMENT
LOWcrates/ruff_python_trivia/src/comments.rs81COMMENT
LOWcrates/ruff_python_trivia/src/name_matcher.rs1use memchr::memmem::Finder;COMMENT
LOWcrates/ruff_python_trivia/src/comment_ranges.rs121 source.line_end(node.end())COMMENT
LOWcrates/ruff_python_trivia/src/comment_ranges.rs141 /// # even though it is indentedCOMMENT
LOWcrates/ruff_index/src/vec.rs181// not the phantom data.COMMENT
LOWcrates/ruff_workspace/src/options.rs41use ruff_macros::{CacheKey, CombineOptions, OptionsMetadata};COMMENT
LOWcrates/ruff_workspace/src/options.rs61 /// This setting will override even the `RUFF_CACHE_DIR` environmentCOMMENT
LOWcrates/ruff_workspace/src/options.rs81 /// rules are discarded; if the child configuration omits `lint.select`,COMMENT
LOWcrates/ruff_workspace/src/options.rs101 #[option(COMMENT
LOWcrates/ruff_workspace/src/options.rs201 /// - Single-path patterns, like `.mypy_cache` (to exclude any directoryCOMMENT
LOWcrates/ruff_workspace/src/options.rs221COMMENT
LOWcrates/ruff_workspace/src/options.rs261 pub extend_include: Option<Vec<String>>,COMMENT
LOWcrates/ruff_workspace/src/options.rs281COMMENT
LOWcrates/ruff_workspace/src/options.rs301COMMENT
4147 more matches not shown…
Hyper-Verbose Identifiers954 hits · 886 pts
SeverityFileLineSnippetContext
LOWty.schema.json1409 "description": "## What it does\n\nDetects boolean conditions where the condition can be statically inferred tCODE
LOWty.schema.json1629 "description": "## What it does\n\nDetects `return` statements that unsoundly return a type that is not a [subCODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py9def positional_parameters_with_default_values(a, b=20, c=30):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py17def positional_only_and_positional_parameters(a, /, b, c):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py21def pos_args_with_defaults_and_varargs_and_kwargs(a, b=20, /, c=30, *args, **kwargs):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py29def keyword_only_parameters_with_defaults(*, a, b=20, c=30):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py33def kw_only_args_with_defaults_and_varargs(*args, a, b=20, c=30):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py37def kw_only_args_with_defaults_and_kwargs(*, a, b=20, c=30, **kwargs):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py41def kw_only_args_with_defaults_and_varargs_and_kwargs(*args, a, b=20, c=30, **kwargs):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py49def pos_and_kw_only_args_with_defaults(a, b, /, c, *, d, e=20, f=30):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py53def pos_and_kw_only_args_with_defaults_and_varargs(a, b, /, c, *args, d, e=20, f=30):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py57def pos_and_kw_only_args_with_defaults_and_kwargs(CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py63def pos_and_kw_only_args_with_defaults_and_varargs_and_kwargs(CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py69def positional_and_keyword_parameters(a, b, c, *, d, e, f):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py73def positional_and_keyword_parameters_with_defaults(a, b, c, *, d, e=20, f=30):CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py77def positional_and_keyword_parameters_with_defaults_and_varargs(CODE
LOW⚡…ff_python_parser/resources/valid/statement/function.py83def positional_and_keyword_parameters_with_defaults_and_varargs_and_kwargs(CODE
LOWcrates/ty_ide/src/rename.rs417class DataProcessor:CODE
LOWcrates/ty_ide/src/semantic_tokens.rs3110def function_with_annotations(param1: int, param2: str) -> Optional[List[str]]:CODE
LOWcrates/ty_ide/src/find_references.rs1271class DataProcessor:CODE
LOWcrates/ty_ide/src/find_references.rs1288 4 | class DataProcessor:CODE
LOW…val/truth/import-deprioritizes-type_check_only/main.py28 def declared_in_type_checking_block() -> None:CODE
LOW⚡crates/ruff_benchmark/resources/large/dataset.py424def test_select_multiple_items_by_index(ds3):CODE
LOW⚡crates/ruff_benchmark/resources/large/dataset.py434def test_select_multiple_items_by_slice(ds3):CODE
LOW⚡crates/ruff_benchmark/resources/large/dataset.py444def test_select_item_by_iteminfo():CODE
LOW⚡crates/ruff_benchmark/resources/large/dataset.py986def test_int_is_valid_type_info():CODE
LOW⚡crates/ruff_benchmark/resources/large/dataset.py995def test_int_is_valid_unit_info():CODE
LOW⚡crates/ruff_benchmark/resources/large/dataset.py1003def test_default_unit_from_type():CODE
LOW⚡crates/ruff_benchmark/resources/large/dataset.py1312def test_concat_by_time_inconsistent_shape_not_possible():CODE
LOW⚡crates/ruff_benchmark/resources/large/dataset.py1320def test_concat_by_time_no_time():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py57def test_create_wrong_data_type_error():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py169def test_index_with_attribute():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py228def test_getitem_multi_indexing_attempted(ds3):CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py277def test_select_subset_isel_axis_out_of_range_error(ds2):CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py294def test_select_temporal_subset_by_idx():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py314def test_temporal_subset_fancy():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py343def test_subset_with_datetime():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py401def test_select_multiple_items_by_name():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py463def test_select_subset_isel_multiple_idxs():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py511def test_create_named_undefined():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py528def test_to_dataframe_single_timestep():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py562def test_multidimensional_to_dataframe_no_supported():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py610def test_interp_time_to_other_dataset():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py673def test_extrapolate_not_allowed():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py719def test_modify_selected_variable():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py764def test_aggregation_workflows(tmpdir):CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py782def test_aggregation_dataset_no_time():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py813def test_to_dfs_extension_validation(tmpdir):CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py895def test_aggregate_across_items():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py914def test_aggregate_selected_items_dfsu_save_to_new_file(tmpdir):CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1021def test_default_name_from_type():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1036def test_iteminfo_string_type_should_fail_with_helpful_message():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1152def test_create_infer_name_from_eum():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1177def test_add_inconsistent_dataset(ds1):CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1269def test_concat_dataarray_by_time():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1350def test_renamed_dataset_has_updated_attributes(ds1: mikeio.Dataset):CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1458def test_merge_same_name_error():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1469def test_incompatible_data_not_allowed():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1535def test_create_dataset_with_many_items():CODE
LOWcrates/ruff_benchmark/resources/large/dataset.py1552def test_create_array_with_defaults_from_dataset():CODE
894 more matches not shown…
Unused Imports142 hits · 142 pts
SeverityFileLineSnippetContext
LOW…ruff_python_parser/resources/valid/statement/import.py1CODE
LOW…ruff_python_parser/resources/valid/statement/import.py2CODE
LOW…ruff_python_parser/resources/valid/statement/import.py3CODE
LOW…ruff_python_parser/resources/valid/statement/import.py4CODE
LOW…ruff_python_parser/resources/valid/statement/import.py4CODE
LOW…ruff_python_parser/resources/valid/statement/import.py4CODE
LOW…ruff_python_parser/resources/valid/statement/import.py5CODE
LOW…ruff_python_parser/resources/valid/statement/import.py5CODE
LOW…python_parser/resources/valid/statement/from_import.py1CODE
LOW…python_parser/resources/valid/statement/from_import.py2CODE
LOW…python_parser/resources/valid/statement/from_import.py3CODE
LOW…python_parser/resources/valid/statement/from_import.py3CODE
LOW…python_parser/resources/valid/statement/from_import.py4CODE
LOW…python_parser/resources/valid/statement/from_import.py5CODE
LOW…python_parser/resources/valid/statement/from_import.py6CODE
LOW…python_parser/resources/valid/statement/from_import.py7CODE
LOW…python_parser/resources/valid/statement/from_import.py8CODE
LOW…python_parser/resources/valid/statement/from_import.py8CODE
LOW…python_parser/resources/valid/statement/from_import.py8CODE
LOW…python_parser/resources/valid/statement/from_import.py9CODE
LOW…n_parser/resources/inline/ok/import_stmt_terminator.py1CODE
LOW…n_parser/resources/inline/ok/import_stmt_terminator.py1CODE
LOW…n_parser/resources/inline/ok/import_stmt_terminator.py2CODE
LOW…n_parser/resources/inline/ok/import_stmt_terminator.py2CODE
LOW…hon_parser/resources/inline/ok/valid_future_feature.py1CODE
LOW…er/resources/inline/ok/simple_stmts_with_semicolons.py1CODE
LOW…er/resources/inline/ok/simple_stmts_with_semicolons.py1CODE
LOW…hon_parser/resources/inline/ok/from_import_no_space.py1CODE
LOW…hon_parser/resources/inline/ok/from_import_no_space.py2CODE
LOW…thon_parser/resources/inline/ok/debug_rename_import.py1CODE
LOW…thon_parser/resources/inline/ok/debug_rename_import.py2CODE
LOW…thon_parser/resources/inline/ok/debug_rename_import.py3CODE
LOW…r/resources/inline/ok/dotted_name_normalized_spaces.py1CODE
LOW…r/resources/inline/ok/dotted_name_normalized_spaces.py2CODE
LOW…ser/resources/inline/ok/import_as_name_soft_keyword.py1CODE
LOW…ser/resources/inline/ok/import_as_name_soft_keyword.py2CODE
LOW…ser/resources/inline/ok/import_as_name_soft_keyword.py3CODE
LOW…ser/resources/inline/ok/import_as_name_soft_keyword.py4CODE
LOW…rces/inline/ok/from_import_soft_keyword_module_name.py1CODE
LOW…rces/inline/ok/from_import_soft_keyword_module_name.py2CODE
LOW…rces/inline/ok/from_import_soft_keyword_module_name.py3CODE
LOW…rces/inline/ok/from_import_soft_keyword_module_name.py4CODE
LOW…rces/inline/ok/from_import_soft_keyword_module_name.py5CODE
LOW…_python_parser/resources/inline/ok/import_from_star.py1CODE
LOW…ser/resources/inline/ok/from_import_stmt_terminator.py1CODE
LOW…ser/resources/inline/ok/from_import_stmt_terminator.py1CODE
LOW…ser/resources/inline/ok/from_import_stmt_terminator.py2CODE
LOW…ser/resources/inline/ok/from_import_stmt_terminator.py2CODE
LOW…ser/resources/inline/ok/from_import_stmt_terminator.py3CODE
LOW…ser/resources/inline/ok/from_import_stmt_terminator.py3CODE
LOW…ser/resources/inline/ok/from_import_stmt_terminator.py4CODE
LOW…ser/resources/inline/ok/from_import_stmt_terminator.py4CODE
LOW…rces/inline/ok/lazy_import_soft_keyword_split_py315.py3CODE
LOW…rces/inline/ok/lazy_import_soft_keyword_split_py315.py6CODE
LOW…hon_parser/resources/inline/err/debug_shadow_import.py1CODE
LOW…hon_parser/resources/inline/err/debug_shadow_import.py2CODE
LOW…hon_parser/resources/inline/err/debug_shadow_import.py3CODE
LOW…hon_parser/resources/inline/err/debug_shadow_import.py4CODE
LOW…_parser/resources/inline/err/invalid_future_feature.py1CODE
LOW…_parser/resources/inline/err/invalid_future_feature.py2CODE
82 more matches not shown…
Excessive Try-Catch Wrapping85 hits · 112 pts
SeverityFileLineSnippetContext
LOW…es/ruff_python_parser/resources/valid/statement/try.py15except Exception as e:CODE
LOW⚡…esources/inline/ok/except_stmt_as_name_soft_keyword.py2except Exception as match: ...CODE
LOW⚡…esources/inline/ok/except_stmt_as_name_soft_keyword.py3except Exception as case: ...CODE
LOW⚡…esources/inline/ok/except_stmt_as_name_soft_keyword.py4except Exception as type: ...CODE
LOW…python_parser/resources/inline/err/debug_shadow_try.py2except Exception as __debug__: ...CODE
LOWcrates/ruff_python_formatter/src/comments/mod.rs729except Exception as ex:CODE
LOWcrates/ruff_python_formatter/src/comments/mod.rs756 except Exception as ex:CODE
MEDIUMcrates/ruff_python_formatter/src/comments/mod.rs751def test():CODE
LOW…es/ty_python_core/src/builder/loop_bindings_visitor.rs357 except Exception as exc_var:CODE
LOWcrates/ty_ide/src/semantic_tokens.rs4705except Exception as e:CODE
MEDIUMcrates/ty_ide/src/find_references.rs475 print(f'Error: {err}')CODE
MEDIUMcrates/ty_ide/src/find_references.rs491 5 | print(f'Error: {err}')CODE
LOWcrates/ruff_python_codegen/src/generator.rs1826except Exception as e:CODE
LOWcrates/ruff_benchmark/resources/numpy/ctypeslib.py305 except Exception as e:CODE
LOWcrates/ruff_benchmark/benches/ty.rs2241 except Exception:CODE
LOW…python_semantic/resources/corpus/62_try_except_cond.py3except Exception as exc:CODE
LOW…thon_semantic/resources/corpus/62_try_except_return.py4 except Exception as e:CODE
MEDIUM…thon_semantic/resources/corpus/62_try_except_return.py1def foo():CODE
LOW…ython_semantic/resources/mdtest/pep695_type_aliases.md263except Exception:CODE
LOWcrates/ty_python_semantic/resources/mdtest/with/sync.md497 except Exception:CODE
LOWcrates/ty_python_semantic/resources/mdtest/with/sync.md513 except Exception:CODE
LOW…tes/ty_python_semantic/resources/mdtest/cycle/basic.md496except Exception:CODE
LOW…resources/mdtest/diagnostics/semantic_syntax_errors.md581 except Exception:CODE
LOW…resources/mdtest/diagnostics/semantic_syntax_errors.md659 except Exception:CODE
MEDIUM…resources/mdtest/diagnostics/semantic_syntax_errors.md578def i(a):CODE
MEDIUM…resources/mdtest/diagnostics/semantic_syntax_errors.md656def i(a):CODE
MEDIUM…on_semantic/resources/mdtest/exception/control_flow.md65def fallback() -> None:CODE
MEDIUM…on_semantic/resources/mdtest/exception/control_flow.md82def incompatible_fallback() -> None:CODE
MEDIUM…on_semantic/resources/mdtest/exception/control_flow.md112def no_previous_binding() -> None:CODE
MEDIUM…on_semantic/resources/mdtest/exception/control_flow.md199def shadowed_builtin() -> None:CODE
LOW⚡…on_semantic/resources/mdtest/exception/control_flow.md943 except Exception:CODE
LOW⚡…on_semantic/resources/mdtest/exception/control_flow.md957 except Exception:CODE
LOW…on_semantic/resources/mdtest/exception/control_flow.md68 except Exception:CODE
LOW…on_semantic/resources/mdtest/exception/control_flow.md85 except Exception:CODE
LOW…on_semantic/resources/mdtest/exception/control_flow.md97 except Exception:CODE
LOW…on_semantic/resources/mdtest/exception/control_flow.md109 except Exception:CODE
LOW…on_semantic/resources/mdtest/exception/control_flow.md115 except Exception:CODE
LOW…on_semantic/resources/mdtest/exception/control_flow.md127 except Exception:CODE
LOW…on_semantic/resources/mdtest/exception/control_flow.md144 except Exception:CODE
LOW…thon_semantic/src/types/ide_support/unused_bindings.rs284 except Exception as dead_exc:CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md136def bad_yield_in_finally_not_last():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md172def bad_yield_in_except_with_cleanup():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md190def bad_yield_in_else_with_cleanup():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md336def good_async_try_finally():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md354def good_nested_try_finally():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md384def good_try_except_with_else():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md394def good_yield_in_except_no_finally():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md402def good_yield_in_except_with_finally():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md412def good_yield_in_else_with_finally():CODE
MEDIUM…nter/resources/mdtest/ruff/fallible-context-manager.md424def good_yield_in_finally():CODE
LOW⚡…nter/resources/mdtest/ruff/fallible-context-manager.md379 except Exception:CODE
LOW⚡…nter/resources/mdtest/ruff/fallible-context-manager.md387 except Exception:CODE
LOW⚡…nter/resources/mdtest/ruff/fallible-context-manager.md397 except Exception:CODE
LOW⚡…nter/resources/mdtest/ruff/fallible-context-manager.md405 except Exception:CODE
LOW⚡…nter/resources/mdtest/ruff/fallible-context-manager.md415 except Exception:CODE
LOW⚡…nter/resources/mdtest/ruff/fallible-context-manager.md444 except Exception:CODE
LOW…nter/resources/mdtest/ruff/fallible-context-manager.md157 except Exception:CODE
LOW…nter/resources/mdtest/ruff/fallible-context-manager.md175 except Exception:CODE
LOW…nter/resources/mdtest/ruff/fallible-context-manager.md193 except Exception:CODE
LOW…nter/resources/mdtest/ruff/fallible-context-manager.md347 except Exception:CODE
25 more matches not shown…
Empty Error Handlers21 hits · 105 pts
SeverityFileLineSnippetContext
HIGH…esources/inline/ok/except_stmt_as_name_soft_keyword.py2except Exception as match: ...CODE
HIGH…esources/inline/ok/except_stmt_as_name_soft_keyword.py3except Exception as case: ...CODE
HIGH…esources/inline/ok/except_stmt_as_name_soft_keyword.py4except Exception as type: ...CODE
HIGH…python_parser/resources/inline/ok/except_star_py311.py3except* ValueError: ...CODE
HIGH…python_parser/resources/inline/err/debug_shadow_try.py2except Exception as __debug__: ...CODE
HIGH…ython_parser/resources/inline/err/except_star_py310.py3except* ValueError: ...CODE
HIGH…ython_parser/resources/inline/err/except_star_py310.py4except* KeyError: ...CODE
HIGH…ython_parser/resources/inline/err/except_star_py310.py5except * Error: ...CODE
HIGHcrates/ruff_benchmark/resources/tomllib/_parser.py236except IndexError:CODE
HIGHcrates/ruff_benchmark/resources/numpy/ctypeslib.py321except KeyError:CODE
HIGHcrates/ruff_benchmark/resources/pydantic/types.py701except ValueError:CODE
HIGH…ources/corpus/except_handler_with_Any_bound_typevar.py6except x:CODE
HIGH…/ty_python_semantic/resources/corpus/cyclic_lambdas.py20except* 0:CODE
HIGH…s/corpus/62_try_except_double_nested_inside_if_else.py7except:CODE
HIGH…s/corpus/62_try_except_double_nested_inside_if_else.py5except:CODE
HIGH…mantic/resources/corpus/invalid_typevar_constraints.py5except foo:CODE
HIGH…on_semantic/resources/corpus/cyclic_pep695_typevars.py4except name_2:CODE
HIGH…ntic/resources/corpus/classliteral_decorators_cycle.py8except* 0:CODE
HIGH…/resources/corpus/abstract_methods_cycle_regression.py7except* 0 as name_1:CODE
HIGH…/resources/corpus/ty_4080_fuzzed_reachability_cycle.py13except* 0:CODE
HIGH…tic/resources/corpus/cyclic_symbol_in_comprehension.py14except* 0:CODE
Decorative Section Separators27 hits · 76 pts
SeverityFileLineSnippetContext
MEDIUM…resources/valid/statement/ambiguous_lpar_with_items.py10# ------------------------COMMENT
MEDIUM…resources/valid/statement/ambiguous_lpar_with_items.py43# ------------------------COMMENT
MEDIUM…resources/valid/statement/ambiguous_lpar_with_items.py71# ----------------COMMENT
MEDIUM…resources/valid/statement/ambiguous_lpar_with_items.py99# ----------------------------------COMMENT
MEDIUM⚡crates/ruff_annotate_snippets/src/renderer/render.rs1185 // │ ┏━━━━━┛ │ │ < We are writing these linesCOMMENT
MEDIUM⚡crates/ruff_annotate_snippets/src/renderer/render.rs1186 // │ ┃┌───────┘ │ < by reverting the "depth" ofCOMMENT
MEDIUM⚡crates/ruff_annotate_snippets/src/renderer/render.rs1187 // │ ┃│┌─────────┘ < their multiline spans.COMMENT
MEDIUM⚡crates/ruff_annotate_snippets/src/renderer/render.rs1191 // │ ┃└─────│──┤COMMENT
MEDIUM⚡crates/ruff_annotate_snippets/src/renderer/render.rs1192 // │ ┗━━━━━━┥ `Y` is a good letter tooCOMMENT
MEDIUMcrates/ruff_annotate_snippets/src/renderer/mod.rs363 // bottom_left > ┗━━━━━┥ < bottom_right_with_textCOMMENT
MEDIUM⚡crates/ty_python_semantic/src/types/typevar.rs173/// # ╰─────╰─────────── [2]COMMENT
MEDIUM⚡crates/ty_python_semantic/src/types/typevar.rs173/// # ╰─────╰─────────── [2]COMMENT
MEDIUM⚡crates/ty_python_semantic/src/types/typevar.rs174/// # ╰─────────────────────── [1]COMMENT
MEDIUM⚡crates/ty_python_semantic/src/types/typevar.rs174/// # ╰─────────────────────── [1]COMMENT
MEDIUMcrates/ruff_unicode_names2/data/NameAliases.txt70#-----------------------------------------------------------------COMMENT
MEDIUMcrates/ruff_python_ast/generate.py96# ------------------------------------------------------------------------------COMMENT
MEDIUMcrates/ruff_python_ast/generate.py107# ------------------------------------------------------------------------------COMMENT
MEDIUMcrates/ruff_python_ast/generate.py306# ------------------------------------------------------------------------------COMMENT
MEDIUMcrates/ruff_python_ast/generate.py320# ------------------------------------------------------------------------------STRING
MEDIUMcrates/ruff_python_ast/generate.py523# ------------------------------------------------------------------------------STRING
MEDIUMcrates/ruff_python_ast/generate.py616# ------------------------------------------------------------------------------STRING
MEDIUMcrates/ruff_python_ast/generate.py789# ------------------------------------------------------------------------------STRING
MEDIUMcrates/ruff_python_ast/generate.py1016# ------------------------------------------------------------------------------STRING
MEDIUMcrates/ruff_python_ast/generate.py1061# ------------------------------------------------------------------------------STRING
MEDIUMcrates/ruff_python_ast/generate.py1112# ------------------------------------------------------------------------------STRING
MEDIUMcrates/ruff_python_ast/generate.py1182# ------------------------------------------------------------------------------STRING
MEDIUMcrates/ruff_python_ast/generate.py1204# ------------------------------------------------------------------------------STRING
Docstring Block Structure13 hits · 65 pts
SeverityFileLineSnippetContext
HIGH…/ruff_linter/src/rules/pydocstyle/rules/not_missing.rs313Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// timeSTRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs47Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// STRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs68Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// timeSTRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs235Calculate speed as distance divided by time. /// /// args: /// distance: Distance traveled. /// timeSTRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs256Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// timeSTRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs321Calculate speed as distance divided by time. /// /// Parameters: /// ----------- /// distance : float /// STRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs1132Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// timeSTRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs1200Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// /// RetuSTRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs1220Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// timeSTRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs1285Calculate speed as distance divided by time. /// /// Args: /// /// distance: Distance traveled. /// STRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs1307Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// timeSTRING
HIGH…ff_linter/src/rules/pydoclint/rules/check_docstring.rs355Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// timeSTRING
HIGH…ff_linter/src/rules/pydoclint/rules/check_docstring.rs411Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// timeSTRING
Self-Referential Comments17 hits · 52 pts
SeverityFileLineSnippetContext
MEDIUM…resources/valid/statement/ambiguous_lpar_with_items.py6# The following sections basically separates between which node does theCOMMENT
MEDIUM…s/invalid/statements/with/ambiguous_lpar_with_items.py1# This file contains test cases where the with items has an ambiguous left parenthesis.COMMENT
MEDIUM…c/rules/flake8_bugbear/rules/loop_iterator_mutation.rs34/// # Create an infinite loop by appending to the list.COMMENT
MEDIUM…s/ruff_linter/src/rules/flake8_comprehensions/fixes.rs873 // # The above code will be converted to:COMMENT
MEDIUMcrates/ruff_python_ast/ast.toml1# This file is used by generate.py to autogenerate our Python AST data model.COMMENT
MEDIUMplayground/ruff/src/constants.ts4 "# Define a function that takes an integer n and returns the nth number in the Fibonacci\n" +CODE
MEDIUMscripts/update_schemastore.py100 # Create a new branch tagged with the current ruff commit up to date with the latestCOMMENT
MEDIUMscripts/add_plugin.py61 # Create the test fixture folder.COMMENT
MEDIUMscripts/add_plugin.py66 # Create the Plugin rules module.COMMENT
MEDIUMscripts/add_plugin.py101 # Create a subdirectory for rules and create a `mod.rs` placeholderCOMMENT
MEDIUMscripts/add_plugin.py107 # Create the snapshots subdirectoryCOMMENT
MEDIUMscripts/add_rule.py71 # Create a test fixture.COMMENT
MEDIUM⚡scripts/ty_benchmark/src/benchmark/lsp_client.py18 # Define a union type that cattrs struggles with.COMMENT
MEDIUM.github/workflows/release.yml416 # Create a GitHub Release while uploading all files to itCOMMENT
MEDIUM.github/workflows/release.yml443 # Create a GitHub Release while uploading all files to itCOMMENT
MEDIUM.github/workflows/build-docker.yml231 # Initialize a variable to store all tag docker metadata patternsCOMMENT
MEDIUM.github/workflows/sync_typeshed.yaml306 # Create the PR on a separate runner to the job that updates the snapshots.COMMENT
Cross-File Repetition10 hits · 50 pts
SeverityFileLineSnippetContext
HIGH…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs0lorem ipsum dolor sit amet. lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.STRING
HIGH…ff_linter/src/rules/pycodestyle/rules/line_too_long.rs0lorem ipsum dolor sit amet. lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.STRING
HIGHdocs/linter.md0lorem ipsum dolor sit amet. lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.STRING
HIGH…/ruff_linter/src/rules/pydocstyle/rules/not_missing.rs0calculate speed as distance divided by time. /// /// args: /// /// distance: distance traveled. /// time: time spent traSTRING
HIGH…tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs0calculate speed as distance divided by time. /// /// args: /// /// distance: distance traveled. /// time: time spent traSTRING
HIGH…ff_linter/src/rules/pydoclint/rules/check_docstring.rs0calculate speed as distance divided by time. /// /// args: /// /// distance: distance traveled. /// time: time spent traSTRING
HIGH…rules/pydocstyle/rules/newline_after_last_paragraph.rs0return a sorted copy of the list. /// /// sort the list in ascending order and return a copy of the result using the bubSTRING
HIGH…src/rules/pydocstyle/rules/multi_line_summary_start.rs0return a sorted copy of the list. /// /// sort the list in ascending order and return a copy of the result using the bubSTRING
HIGHcrates/ruff_linter/src/rules/pydocstyle/rules/indent.rs0return a sorted copy of the list. /// /// sort the list in ascending order and return a copy of the result using the bubSTRING
HIGH…nter/src/rules/pydocstyle/rules/blank_after_summary.rs0return a sorted copy of the list. /// /// sort the list in ascending order and return a copy of the result using the bubSTRING
Fake / Example Data31 hits · 48 pts
SeverityFileLineSnippetContext
LOWcrates/ty_ide/src/hover.rs5298 """Lorem ipsum dolor sit amet.<CURSOR>"""STRING
LOWcrates/ty_ide/src/hover.rs5298 """Lorem ipsum dolor sit amet.<CURSOR>"""STRING
LOW…pets/tests/color/highlight_source_multi_width_chars.rs7 let source = r#"[lorem ipsum](表意文字)"#;CODE
LOW…ython_semantic/resources/mdtest/external/sqlalchemy.md28user = User(name="John Doe")CODE
LOW…/ty_python_semantic/resources/mdtest/external/attrs.md22user = User(id=1, name="John Doe")CODE
LOW…/ty_python_semantic/resources/mdtest/external/attrs.md38user = User(id=1, name="John Doe")CODE
LOW…_python_semantic/resources/mdtest/external/pydantic.md25user = User(id=1, name="John Doe")CODE
LOW…_python_semantic/resources/mdtest/external/sqlmodel.md21user = User(id=1, name="John Doe")CODE
LOW…_linter/src/rules/ruff/rules/invalid_pyproject_toml.rs32/// { name = "Ferris the Crab", email = "ferris@example.org" }COMMENT
LOW⚡…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs44/// """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis auctor purus ut ex fermentum, at maximus est heCOMMENT
LOW⚡…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs44/// """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis auctor purus ut ex fermentum, at maximus est heCOMMENT
LOW⚡…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs51/// Lorem ipsum dolor sit amet, consectetur adipiscing elit.COMMENT
LOW⚡…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs51/// Lorem ipsum dolor sit amet, consectetur adipiscing elit.COMMENT
LOW⚡…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs63/// """Lorem ipsum dolor sit amet.COMMENT
LOW⚡…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs63/// """Lorem ipsum dolor sit amet.COMMENT
LOW⚡…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs65/// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.COMMENT
LOW⚡…inter/src/rules/pycodestyle/rules/doc_line_too_long.rs65/// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.COMMENT
LOW⚡…ff_linter/src/rules/pycodestyle/rules/line_too_long.rs60/// """Lorem ipsum dolor sit amet.COMMENT
LOW⚡…ff_linter/src/rules/pycodestyle/rules/line_too_long.rs60/// """Lorem ipsum dolor sit amet.COMMENT
LOW⚡…ff_linter/src/rules/pycodestyle/rules/line_too_long.rs62/// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.COMMENT
LOW⚡…ff_linter/src/rules/pycodestyle/rules/line_too_long.rs62/// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.COMMENT
LOW⚡docs/linter.md499"""Lorem ipsum dolor sit amet.STRING
LOW⚡docs/linter.md499"""Lorem ipsum dolor sit amet.STRING
LOW⚡docs/linter.md501Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.STRING
LOW⚡docs/linter.md501Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.STRING
LOW⚡docs/linter.md591VALUE_1 = "Lorem ipsum dolor sit amet ..."CODE
LOW⚡docs/linter.md591VALUE_1 = "Lorem ipsum dolor sit amet ..."CODE
LOW⚡docs/linter.md592VALUE_2 = "Lorem ipsum dolor sit amet ..."CODE
LOW⚡docs/linter.md592VALUE_2 = "Lorem ipsum dolor sit amet ..."CODE
LOW⚡docs/linter.md593VALUE_3 = "Lorem ipsum dolor sit amet ..."CODE
LOW⚡docs/linter.md593VALUE_3 = "Lorem ipsum dolor sit amet ..."CODE
Verbosity Indicators32 hits · 45 pts
SeverityFileLineSnippetContext
LOWcrates/ty_python_semantic/src/types/member.rs103 // Otherwise, we need to check if the symbol has bindingsCOMMENT
LOWcrates/ty_python_semantic/src/types/class.rs2462 // Step 3: If the return type of the `__new__` evaluates to a type that is not a subclass of this class,COMMENT
LOWcrates/ty_python_semantic/src/types/call/bind.rs3867 // Step 1: Check the result of the arity check which is done by `match_parameters`COMMENT
LOWcrates/ty_python_semantic/src/types/call/bind.rs3906 // Step 2: Evaluate each remaining overload as a regular (non-overloaded) call to determineCOMMENT
LOWcrates/ty_python_semantic/src/types/call/bind.rs3974 // Step 3: Perform "argument type expansion". Reference:COMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs1764 // Step 3: Clean-upCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs1766 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2472 // Step 2: TraversalCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2475 // Step 3: Clean-upCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2485 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2492 // Step 1: Binding.COMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2499 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2504 // Step 1: Binding.COMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2514 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2519 // Step 1: BindingCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2540 // Step 2: TraversalCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2543 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2548 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2551 // Step 2: TraversalCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1049 // Step 0: Pre-processingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1131 // Step 1: BindingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1336 // Step 2: TraversalCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1784 // Step 0: Pre-processingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1836 // Step 1: BindingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1871 // Step 2: TraversalCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2411 // Step 3: Clean-upCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2424 // Step 4: AnalysisCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2444 // Step 1: BindingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2569 // Step 1: BindingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2582 // Step 2: TraversalCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2716 // Step 4: AnalysisCOMMENT
LOW…_linter/src/rules/refurb/rules/isinstance_type_none.rs87 // the union operator, so we need to check if we're in a union.COMMENT
Structural Annotation Overuse30 hits · 42 pts
SeverityFileLineSnippetContext
LOWcrates/ty_python_semantic/src/types/class.rs2462 // Step 3: If the return type of the `__new__` evaluates to a type that is not a subclass of this class,COMMENT
LOWcrates/ty_python_semantic/src/types/call/bind.rs3867 // Step 1: Check the result of the arity check which is done by `match_parameters`COMMENT
LOWcrates/ty_python_semantic/src/types/call/bind.rs3906 // Step 2: Evaluate each remaining overload as a regular (non-overloaded) call to determineCOMMENT
LOWcrates/ty_python_semantic/src/types/call/bind.rs3974 // Step 3: Perform "argument type expansion". Reference:COMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs1764 // Step 3: Clean-upCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs1766 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2472 // Step 2: TraversalCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2475 // Step 3: Clean-upCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2485 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2492 // Step 1: Binding.COMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2499 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2504 // Step 1: Binding.COMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2514 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2519 // Step 1: BindingCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2540 // Step 2: TraversalCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2543 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2548 // Step 4: AnalysisCOMMENT
LOW⚡crates/ruff_linter/src/checkers/ast/mod.rs2551 // Step 2: TraversalCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1049 // Step 0: Pre-processingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1131 // Step 1: BindingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1336 // Step 2: TraversalCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1784 // Step 0: Pre-processingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1836 // Step 1: BindingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs1871 // Step 2: TraversalCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2411 // Step 3: Clean-upCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2424 // Step 4: AnalysisCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2444 // Step 1: BindingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2569 // Step 1: BindingCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2582 // Step 2: TraversalCOMMENT
LOWcrates/ruff_linter/src/checkers/ast/mod.rs2716 // Step 4: AnalysisCOMMENT
AI Slop Vocabulary11 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMty.schema.json1409 "description": "## What it does\n\nDetects boolean conditions where the condition can be statically inferred tCODE
MEDIUMcrates/ruff/src/commands/format.rs806 // a snippet to measure. If we commit to staying on our fork, a more robust way ofCOMMENT
MEDIUMcrates/ty_python_core/src/predicate.rs379/// will be visible from all control-flow paths or not. Essentially, we model `importer.py` asCOMMENT
MEDIUMcrates/ty_ide/src/docstring/markdown/general.rs10// Here lies a monument to robust parsing and escaping:COMMENT
LOWcrates/ruff_benchmark/resources/pydantic/types.py461 # hence we just use `secret_display`COMMENT
MEDIUMcrates/ty_python_semantic/src/types/special_form.rs294 /// This is much more robust than having a manual `from_string` method that matchesCOMMENT
MEDIUM…rules/ruff/rules/access_annotations_from_class_dict.rs30/// robust (e.g., correctly handling the Python 3.14 behavior mentionedCOMMENT
MEDIUM…ff_linter/src/rules/flake8_pytest_style/rules/patch.rs21/// `return_value` is also robust to changes in the patched function'sCOMMENT
MEDIUM…e_annotations/rules/future_required_type_annotation.rs27/// does not impact your ability to leverage PEP 604-style unions (e.g., toCOMMENT
MEDIUM…annotations/rules/future_rewritable_type_annotation.rs32/// does not impact your ability to leverage PEP 604-style unions (e.g., toCOMMENT
MEDIUMcrates/ruff_python_semantic/src/model.rs1001 // could actually be referred to. This is not as robust as back-trackingCOMMENT
Deep Nesting28 hits · 28 pts
SeverityFileLineSnippetContext
LOWcrates/ruff_benchmark/resources/typeis_narrowing.py210CODE
LOWcrates/ruff_benchmark/resources/tomllib/_parser.py69CODE
LOWcrates/ruff_benchmark/resources/numpy/ctypeslib.py235CODE
LOWcrates/ty_python_semantic/mdtest.py172CODE
LOWcrates/ty_python_semantic/mdtest.py246CODE
LOW…s/67_with_inside_try_finally_multiple_terminal_elif.py1CODE
LOWcrates/ruff_python_ast/generate.py324CODE
LOWcrates/ruff_python_ast/generate.py1065CODE
LOWcrates/ruff_python_ast/generate.py1116CODE
LOWpython/ruff-ecosystem/ruff_ecosystem/check.py345CODE
LOWpython/ruff-ecosystem/ruff_ecosystem/projects.py88CODE
LOWpython/py-fuzzer/fuzz.py73CODE
LOWpython/py-fuzzer/fuzz.py325CODE
LOWpython/py-fuzzer/fuzz.py559CODE
LOWscripts/check-cargo-bans.py38CODE
LOWscripts/run_ty_ecosystem_repro.py34CODE
LOWscripts/add_plugin.py59CODE
LOWscripts/generate_mkdocs.py199CODE
LOWscripts/conformance.py469CODE
LOWscripts/conformance.py611CODE
LOWscripts/conformance.py699CODE
LOWscripts/conformance.py776CODE
LOWscripts/add_rule.py69CODE
LOWscripts/generate_builtin_modules.py79CODE
LOWscripts/generate-crate-readmes.py98CODE
LOWscripts/ty_benchmark/src/benchmark/snapshot.py60CODE
LOWscripts/ty_benchmark/src/benchmark/lsp_client.py15CODE
LOWscripts/ty_benchmark/src/benchmark/lsp_client.py27CODE
Redundant / Tautological Comments13 hits · 25 pts
SeverityFileLineSnippetContext
LOW⚡…style/rules/logical_lines/whitespace_before_comment.rs24/// x = x + 1 # Increment xCOMMENT
LOW⚡…style/rules/logical_lines/whitespace_before_comment.rs29/// x = x + 1 # Increment xCOMMENT
LOW⚡…style/rules/logical_lines/whitespace_before_comment.rs30/// x = x + 1 # Increment xCOMMENT
LOW⚡…style/rules/logical_lines/whitespace_before_comment.rs59/// x = x + 1 #Increment xCOMMENT
LOW⚡…style/rules/logical_lines/whitespace_before_comment.rs60/// x = x + 1 # Increment xCOMMENT
LOW⚡…style/rules/logical_lines/whitespace_before_comment.rs66/// x = x + 1 # Increment xCOMMENT
LOW⚡…style/rules/logical_lines/whitespace_before_comment.rs67/// x = x + 1 # Increment xCOMMENT
LOWscripts/update_schemastore.py135 # Check if the schema has changedCOMMENT
LOWscripts/ty_benchmark/src/benchmark/snapshot.py95 # Check if snapshot exists.COMMENT
LOW.github/workflows/ci.yaml785 # Set pipefail to avoid hiding errors with teeCOMMENT
LOW.github/workflows/ci.yaml798 # Set pipefail to avoid hiding errors with teeCOMMENT
LOW.github/workflows/ci.yaml811 # Set pipefail to avoid hiding errors with teeCOMMENT
LOW.github/workflows/ci.yaml824 # Set pipefail to avoid hiding errors with teeCOMMENT
Cross-Language Confusion (JS/TS)3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHplayground/ty/src/Playground.tsx333 elif style == "bold":CODE
HIGHplayground/ty/src/Playground.tsx342print(with_style("ty is a fast type checker for Python.", "fast", "underlined"))CODE
HIGHplayground/ty/src/Editor/runPython.ts45 print(f"Runtime value is '{obj}'")CODE
Modern Structural Boilerplate10 hits · 10 pts
SeverityFileLineSnippetContext
LOWcrates/ruff_benchmark/resources/numpy/globals.py22__all__ = ['_NoValue', '_CopyMode']CODE
LOWcrates/ruff_benchmark/resources/numpy/ctypeslib.py52__all__ = ['load_library', 'ndpointer', 'c_intp', 'as_ctypes', 'as_array',CODE
LOWcrates/ruff_benchmark/resources/pydantic/types.py33__all__ = [CODE
LOW…_semantic/resources/corpus/97_global_nonlocal_store.py4 def update_task_runs() -> None:CODE
LOWpython/ruff/__init__.py5__all__ = ["find_ruff_bin"]CODE
LOWscripts/ty_benchmark/src/benchmark/__init__.py16logger = logging.getLogger(__name__)CODE
LOWscripts/ty_benchmark/src/benchmark/venv.py9logger = logging.getLogger(__name__)CODE
LOWscripts/ty_benchmark/src/benchmark/projects.py8logger = logging.getLogger(__name__)CODE
LOWscripts/ty_benchmark/src/benchmark/snapshot.py13logger = logging.getLogger(__name__)CODE
LOW⚡scripts/ty_benchmark/src/benchmark/lsp_client.py12logger = logging.getLogger(__name__)CODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHdist-workspace.toml57# Whether CI should include auto-generated code to build local artifactsCOMMENT
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…on_eval/truth/auto-import-skips-current-module/main.py15# I've added it anyway in case it does in theCOMMENT
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…semantic/resources/mdtest/generics/pep695/callables.md1319## SymPy one-import MRE scaffold (multi-file)COMMENT
MEDIUM…semantic/resources/mdtest/generics/legacy/callables.md1249## SymPy one-import MRE scaffold (multi-file)COMMENT
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/publish-crates.py32# Usage:COMMENT
LOWscripts/ecosystem_all_check.sh8# Usage:COMMENT
LOWscripts/benchmarks/run_formatter.sh10# Example usage:COMMENT
TODO Padding2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡crates/ruff_benchmark/resources/large/dataset.py1319# TODO: implement thisCOMMENT
LOW…ython_semantic/resources/mdtest/comparison/integers.md25# TODO: implement lookup of `__eq__` on typeshed `int` stub.COMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUM…tes/ty_python_semantic/resources/corpus/93_deadcode.py3CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWCargo.toml193# When updating salsa, make sure to also update the version in `fuzz/Cargo.toml`COMMENT
AI Structural Patterns1 hit · 0 pts
SeverityFileLineSnippetContext
LOWcrates/ruff_benchmark/resources/pydantic/types.py271CODE