An extremely fast Python linter and code formatter, written in Rust.
This report presents the forensic synthetic code analysis of astral-sh/ruff, a Rust project with 48,562 GitHub stars. SynthScan v2.0 examined 975,465 lines of code across 3772 source files, recording 4937 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 5.1 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 4937 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 321 | # The main differences here are to avoid stripping debug information | COMMENT |
| LOW | .markdownlint.yaml | 21 | MD024: | COMMENT |
| LOW | crates/ty_site_packages/src/version.rs | 21 | COMMENT | |
| LOW | crates/ty_site_packages/src/lib.rs | 41 | /// `uv run --with` invocations, meanwhile, "extend" a parent environment | COMMENT |
| LOW | crates/ty_site_packages/src/lib.rs | 681 | /// | COMMENT |
| LOW | crates/ty_site_packages/src/lib.rs | 941 | /// The base Conda environment; treated like a system Python environment. | COMMENT |
| LOW | crates/ty_site_packages/src/lib.rs | 1221 | /// We looked everywhere we could think of for the `site-packages` directory, | COMMENT |
| LOW | crates/ty_site_packages/src/lib.rs | 1621 | // at runtime), we can find this in [the non-Windows branch]: | COMMENT |
| LOW | crates/ty_site_packages/src/lib.rs | 1821 | system.dyn_clone(), | COMMENT |
| LOW | crates/ty_site_packages/src/lib.rs | 2021 | /// to find a sys prefix that will actually contain the stdlib. | COMMENT |
| LOW | crates/ty_site_packages/src/lib.rs | 2101 | /// Enumeration of sources a `sys.prefix` path can come from. | COMMENT |
| LOW | crates/ty_site_packages/src/lib.rs | 2201 | /// environments (the stdlib Python `venv` module, the third-party | COMMENT |
| LOW | crates/ruff/tests/analyze_graph.rs | 821 | let root = ChildPath::new(tempdir.path()); | COMMENT |
| LOW | crates/ruff/tests/cli/format.rs | 601 | #[test_case::test_case("json")] | COMMENT |
| LOW | crates/ruff/tests/cli/lint.rs | 3801 | /// . | COMMENT |
| LOW | crates/ruff/tests/cli/lint.rs | 4301 | COMMENT | |
| LOW | crates/ruff/tests/cli/main.rs | 21 | mod show_settings; | COMMENT |
| LOW | crates/ruff/tests/cli/main.rs | 41 | /// ```rust,no_run | COMMENT |
| LOW | crates/ruff/tests/cli/main.rs | 201 | /// - The correct ruff binary path | COMMENT |
| LOW | crates/ruff/src/cache.rs | 61 | /// `Cache` holds everything required to display the diagnostics for a single | COMMENT |
| LOW | crates/ruff/src/cache.rs | 321 | /// On disk representation of a cache of a package. | COMMENT |
| LOW | crates/ruff/src/args.rs | 61 | /// Ignore all configuration files. | COMMENT |
| LOW | crates/ruff/src/args.rs | 121 | )] | COMMENT |
| LOW | crates/ruff/src/args.rs | 201 | /// file to files that it depends on. Use `--direction dependents` to generate a map from file | COMMENT |
| LOW | crates/ruff/src/args.rs | 221 | python: Option<PathBuf>, | COMMENT |
| LOW | crates/ruff/src/args.rs | 241 | #[clap(long, overrides_with("fix"), hide = true)] | COMMENT |
| LOW | crates/ruff/src/args.rs | 261 | pub watch: bool, | COMMENT |
| LOW | crates/ruff/src/args.rs | 401 | /// Enforce exclusions, even for paths passed to Ruff directly on the command-line. | COMMENT |
| LOW | crates/ruff/src/args.rs | 521 | COMMENT | |
| LOW | crates/ruff/src/args.rs | 581 | #[clap(long, overrides_with("force_exclude"), hide = true)] | COMMENT |
| LOW | crates/ruff/src/args.rs | 601 | no_preview: bool, | COMMENT |
| LOW | crates/ruff/src/args.rs | 621 | COMMENT | |
| LOW | crates/ruff/src/args.rs | 701 | /// Configuration-related arguments passed via the CLI. | COMMENT |
| LOW | crates/ruff/src/args.rs | 961 | /// Enumeration to represent a single `--config` argument | COMMENT |
| LOW | crates/ruff_python_literal/src/format.rs | 181 | _ => (None, text), | COMMENT |
| LOW | crates/ruff_python_literal/src/format.rs | 201 | /// Nested placeholders can include additional format specifiers. | COMMENT |
| LOW | crates/ruff_python_trivia/src/textwrap.rs | 1 | //! Functions related to adding and removing indentation from lines of | COMMENT |
| LOW | crates/ruff_python_trivia/src/textwrap.rs | 21 | /// | COMMENT |
| LOW | crates/ruff_python_trivia/src/textwrap.rs | 41 | /// assert_eq!(indent("foo = 123\n\nprint(foo)\n", "# "), | COMMENT |
| LOW | crates/ruff_python_trivia/src/textwrap.rs | 81 | /// ``` | COMMENT |
| LOW | crates/ruff_python_trivia/src/textwrap.rs | 141 | /// ``` | COMMENT |
| LOW | crates/ruff_python_trivia/src/textwrap.rs | 181 | result.push_str(&line.as_full_str()[prefix_len..]); | COMMENT |
| LOW | crates/ruff_python_trivia/src/textwrap.rs | 201 | /// removed and the formfeeds reinstated | COMMENT |
| LOW | crates/ruff_python_trivia/src/pragmas.rs | 1 | /// Returns `true` if a comment appears to be a pragma comment. | COMMENT |
| LOW | crates/ruff_python_trivia/src/comments.rs | 61 | position.is_own_line() && matches!(Self::from_comment(slice), Some(Self::Off)) | COMMENT |
| LOW | crates/ruff_python_trivia/src/comments.rs | 81 | COMMENT | |
| LOW | crates/ruff_python_trivia/src/comment_ranges.rs | 121 | source.line_end(node.end()) | COMMENT |
| LOW | crates/ruff_python_trivia/src/comment_ranges.rs | 141 | /// # even though it is indented | COMMENT |
| LOW | crates/ruff_index/src/vec.rs | 181 | // not the phantom data. | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 41 | use ruff_options_metadata::{OptionsMetadata, Visit}; | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 61 | /// variable, if set. | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 81 | /// the parent's rule selection is inherited and both parent and child | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 141 | COMMENT | |
| LOW | crates/ruff_workspace/src/options.rs | 161 | #[option( | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 181 | /// `directory`). Note that these paths are relative to the project root | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 201 | /// | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 221 | /// A list of file patterns to include when linting, in addition to those | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 241 | /// excluded. Setting `force-exclude = true` will cause Ruff to | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 261 | /// included here not for configuration but because we lint whether e.g. the | COMMENT |
| LOW | crates/ruff_workspace/src/options.rs | 321 | #[option( | COMMENT |
| 3832 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 9 | def positional_parameters_with_default_values(a, b=20, c=30): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 17 | def positional_only_and_positional_parameters(a, /, b, c): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 21 | def pos_args_with_defaults_and_varargs_and_kwargs(a, b=20, /, c=30, *args, **kwargs): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 29 | def keyword_only_parameters_with_defaults(*, a, b=20, c=30): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 33 | def kw_only_args_with_defaults_and_varargs(*args, a, b=20, c=30): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 37 | def kw_only_args_with_defaults_and_kwargs(*, a, b=20, c=30, **kwargs): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 41 | def 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.py | 49 | def pos_and_kw_only_args_with_defaults(a, b, /, c, *, d, e=20, f=30): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 53 | def 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.py | 57 | def pos_and_kw_only_args_with_defaults_and_kwargs( | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 63 | def pos_and_kw_only_args_with_defaults_and_varargs_and_kwargs( | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 69 | def positional_and_keyword_parameters(a, b, c, *, d, e, f): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 73 | def positional_and_keyword_parameters_with_defaults(a, b, c, *, d, e=20, f=30): | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 77 | def positional_and_keyword_parameters_with_defaults_and_varargs( | CODE |
| LOW⚡ | …ff_python_parser/resources/valid/statement/function.py | 83 | def positional_and_keyword_parameters_with_defaults_and_varargs_and_kwargs( | CODE |
| LOW | crates/ty_ide/src/rename.rs | 314 | class DataProcessor: | CODE |
| LOW | crates/ty_ide/src/semantic_tokens.rs | 2799 | def function_with_annotations(param1: int, param2: str) -> Optional[List[str]]: | CODE |
| LOW | crates/ty_ide/src/find_references.rs | 1075 | class DataProcessor: | CODE |
| LOW | crates/ty_ide/src/find_references.rs | 1092 | 4 | class DataProcessor: | CODE |
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 424 | def test_select_multiple_items_by_index(ds3): | CODE |
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 434 | def test_select_multiple_items_by_slice(ds3): | CODE |
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 444 | def test_select_item_by_iteminfo(): | CODE |
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 986 | def test_int_is_valid_type_info(): | CODE |
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 995 | def test_int_is_valid_unit_info(): | CODE |
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 1003 | def test_default_unit_from_type(): | CODE |
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 1312 | def test_concat_by_time_inconsistent_shape_not_possible(): | CODE |
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 1320 | def test_concat_by_time_no_time(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 57 | def test_create_wrong_data_type_error(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 169 | def test_index_with_attribute(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 228 | def test_getitem_multi_indexing_attempted(ds3): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 277 | def test_select_subset_isel_axis_out_of_range_error(ds2): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 294 | def test_select_temporal_subset_by_idx(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 314 | def test_temporal_subset_fancy(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 343 | def test_subset_with_datetime(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 401 | def test_select_multiple_items_by_name(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 463 | def test_select_subset_isel_multiple_idxs(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 511 | def test_create_named_undefined(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 528 | def test_to_dataframe_single_timestep(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 562 | def test_multidimensional_to_dataframe_no_supported(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 610 | def test_interp_time_to_other_dataset(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 673 | def test_extrapolate_not_allowed(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 719 | def test_modify_selected_variable(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 764 | def test_aggregation_workflows(tmpdir): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 782 | def test_aggregation_dataset_no_time(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 813 | def test_to_dfs_extension_validation(tmpdir): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 895 | def test_aggregate_across_items(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 914 | def test_aggregate_selected_items_dfsu_save_to_new_file(tmpdir): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1021 | def test_default_name_from_type(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1036 | def test_iteminfo_string_type_should_fail_with_helpful_message(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1152 | def test_create_infer_name_from_eum(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1177 | def test_add_inconsistent_dataset(ds1): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1269 | def test_concat_dataarray_by_time(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1350 | def test_renamed_dataset_has_updated_attributes(ds1: mikeio.Dataset): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1458 | def test_merge_same_name_error(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1469 | def test_incompatible_data_not_allowed(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1535 | def test_create_dataset_with_many_items(): | CODE |
| LOW | crates/ruff_benchmark/resources/large/dataset.py | 1552 | def test_create_array_with_defaults_from_dataset(): | CODE |
| LOW | crates/ruff_benchmark/resources/tomllib/_parser.py | 275 | def skip_comments_and_array_ws(src: str, pos: Pos) -> Pos: | CODE |
| LOW | crates/ruff_benchmark/resources/tomllib/_parser.py | 497 | def parse_basic_str_escape_multiline(src: str, pos: Pos) -> tuple[Pos, str]: | CODE |
| LOW | crates/ruff_benchmark/resources/numpy/ctypeslib.py | 398 | def _ctype_from_dtype_subarray(dtype): | CODE |
| 552 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ruff_python_parser/resources/valid/statement/import.py | 1 | CODE | |
| LOW | …ruff_python_parser/resources/valid/statement/import.py | 2 | CODE | |
| LOW | …ruff_python_parser/resources/valid/statement/import.py | 3 | CODE | |
| LOW | …ruff_python_parser/resources/valid/statement/import.py | 4 | CODE | |
| LOW | …ruff_python_parser/resources/valid/statement/import.py | 4 | CODE | |
| LOW | …ruff_python_parser/resources/valid/statement/import.py | 4 | CODE | |
| LOW | …ruff_python_parser/resources/valid/statement/import.py | 5 | CODE | |
| LOW | …ruff_python_parser/resources/valid/statement/import.py | 5 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 1 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 2 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 3 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 3 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 4 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 5 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 6 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 7 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 8 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 8 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 8 | CODE | |
| LOW | …python_parser/resources/valid/statement/from_import.py | 9 | CODE | |
| LOW | …n_parser/resources/inline/ok/import_stmt_terminator.py | 1 | CODE | |
| LOW | …n_parser/resources/inline/ok/import_stmt_terminator.py | 1 | CODE | |
| LOW | …n_parser/resources/inline/ok/import_stmt_terminator.py | 2 | CODE | |
| LOW | …n_parser/resources/inline/ok/import_stmt_terminator.py | 2 | CODE | |
| LOW | …hon_parser/resources/inline/ok/valid_future_feature.py | 1 | CODE | |
| LOW | …er/resources/inline/ok/simple_stmts_with_semicolons.py | 1 | CODE | |
| LOW | …er/resources/inline/ok/simple_stmts_with_semicolons.py | 1 | CODE | |
| LOW | …hon_parser/resources/inline/ok/from_import_no_space.py | 1 | CODE | |
| LOW | …hon_parser/resources/inline/ok/from_import_no_space.py | 2 | CODE | |
| LOW | …thon_parser/resources/inline/ok/debug_rename_import.py | 1 | CODE | |
| LOW | …thon_parser/resources/inline/ok/debug_rename_import.py | 2 | CODE | |
| LOW | …thon_parser/resources/inline/ok/debug_rename_import.py | 3 | CODE | |
| LOW | …r/resources/inline/ok/dotted_name_normalized_spaces.py | 1 | CODE | |
| LOW | …r/resources/inline/ok/dotted_name_normalized_spaces.py | 2 | CODE | |
| LOW | …ser/resources/inline/ok/import_as_name_soft_keyword.py | 1 | CODE | |
| LOW | …ser/resources/inline/ok/import_as_name_soft_keyword.py | 2 | CODE | |
| LOW | …ser/resources/inline/ok/import_as_name_soft_keyword.py | 3 | CODE | |
| LOW | …ser/resources/inline/ok/import_as_name_soft_keyword.py | 4 | CODE | |
| LOW | …rces/inline/ok/from_import_soft_keyword_module_name.py | 1 | CODE | |
| LOW | …rces/inline/ok/from_import_soft_keyword_module_name.py | 2 | CODE | |
| LOW | …rces/inline/ok/from_import_soft_keyword_module_name.py | 3 | CODE | |
| LOW | …rces/inline/ok/from_import_soft_keyword_module_name.py | 4 | CODE | |
| LOW | …rces/inline/ok/from_import_soft_keyword_module_name.py | 5 | CODE | |
| LOW | …_python_parser/resources/inline/ok/import_from_star.py | 1 | CODE | |
| LOW | …ser/resources/inline/ok/from_import_stmt_terminator.py | 1 | CODE | |
| LOW | …ser/resources/inline/ok/from_import_stmt_terminator.py | 1 | CODE | |
| LOW | …ser/resources/inline/ok/from_import_stmt_terminator.py | 2 | CODE | |
| LOW | …ser/resources/inline/ok/from_import_stmt_terminator.py | 2 | CODE | |
| LOW | …ser/resources/inline/ok/from_import_stmt_terminator.py | 3 | CODE | |
| LOW | …ser/resources/inline/ok/from_import_stmt_terminator.py | 3 | CODE | |
| LOW | …ser/resources/inline/ok/from_import_stmt_terminator.py | 4 | CODE | |
| LOW | …ser/resources/inline/ok/from_import_stmt_terminator.py | 4 | CODE | |
| LOW | …rces/inline/ok/lazy_import_soft_keyword_split_py315.py | 3 | CODE | |
| LOW | …rces/inline/ok/lazy_import_soft_keyword_split_py315.py | 6 | CODE | |
| LOW | …hon_parser/resources/inline/err/debug_shadow_import.py | 1 | CODE | |
| LOW | …hon_parser/resources/inline/err/debug_shadow_import.py | 2 | CODE | |
| LOW | …hon_parser/resources/inline/err/debug_shadow_import.py | 3 | CODE | |
| LOW | …hon_parser/resources/inline/err/debug_shadow_import.py | 4 | CODE | |
| LOW | …_parser/resources/inline/err/invalid_future_feature.py | 1 | CODE | |
| LOW | …_parser/resources/inline/err/invalid_future_feature.py | 2 | CODE | |
| 79 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …es/ruff_python_parser/resources/valid/statement/try.py | 15 | except Exception as e: | CODE |
| LOW⚡ | …esources/inline/ok/except_stmt_as_name_soft_keyword.py | 2 | except Exception as match: ... | CODE |
| LOW⚡ | …esources/inline/ok/except_stmt_as_name_soft_keyword.py | 3 | except Exception as case: ... | CODE |
| LOW⚡ | …esources/inline/ok/except_stmt_as_name_soft_keyword.py | 4 | except Exception as type: ... | CODE |
| LOW | …python_parser/resources/inline/err/debug_shadow_try.py | 2 | except Exception as __debug__: ... | CODE |
| LOW | crates/ruff_python_formatter/src/comments/mod.rs | 729 | except Exception as ex: | CODE |
| LOW | crates/ruff_python_formatter/src/comments/mod.rs | 756 | except Exception as ex: | CODE |
| MEDIUM | crates/ruff_python_formatter/src/comments/mod.rs | 751 | def test(): | CODE |
| LOW | …es/ty_python_core/src/builder/loop_bindings_visitor.rs | 357 | except Exception as exc_var: | CODE |
| LOW | crates/ty_ide/src/semantic_tokens.rs | 4394 | except Exception as e: | CODE |
| MEDIUM | crates/ty_ide/src/find_references.rs | 252 | print(f'Error: {err}') | CODE |
| MEDIUM | crates/ty_ide/src/find_references.rs | 268 | 5 | print(f'Error: {err}') | CODE |
| LOW | crates/ruff_python_codegen/src/generator.rs | 1832 | except Exception as e: | CODE |
| LOW | crates/ruff_benchmark/resources/numpy/ctypeslib.py | 305 | except Exception as e: | CODE |
| LOW | …python_semantic/resources/corpus/62_try_except_cond.py | 3 | except Exception as exc: | CODE |
| LOW | …thon_semantic/resources/corpus/62_try_except_return.py | 4 | except Exception as e: | CODE |
| MEDIUM | …thon_semantic/resources/corpus/62_try_except_return.py | 1 | def foo(): | CODE |
| LOW | …ython_semantic/resources/mdtest/pep695_type_aliases.md | 177 | except Exception: | CODE |
| LOW | …resources/mdtest/diagnostics/semantic_syntax_errors.md | 556 | except Exception: | CODE |
| MEDIUM | …resources/mdtest/diagnostics/semantic_syntax_errors.md | 553 | def i(a): | CODE |
| LOW | …thon_semantic/src/types/ide_support/unused_bindings.rs | 240 | except Exception as dead_exc: | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 137 | def bad_yield_in_finally_not_last(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 173 | def bad_yield_in_except_with_cleanup(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 191 | def bad_yield_in_else_with_cleanup(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 337 | def good_async_try_finally(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 355 | def good_nested_try_finally(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 385 | def good_try_except_with_else(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 395 | def good_yield_in_except_no_finally(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 403 | def good_yield_in_except_with_finally(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 413 | def good_yield_in_else_with_finally(): | CODE |
| MEDIUM | …nter/resources/mdtest/ruff/fallible-context-manager.md | 425 | def good_yield_in_finally(): | CODE |
| LOW⚡ | …nter/resources/mdtest/ruff/fallible-context-manager.md | 380 | except Exception: | CODE |
| LOW⚡ | …nter/resources/mdtest/ruff/fallible-context-manager.md | 388 | except Exception: | CODE |
| LOW⚡ | …nter/resources/mdtest/ruff/fallible-context-manager.md | 398 | except Exception: | CODE |
| LOW⚡ | …nter/resources/mdtest/ruff/fallible-context-manager.md | 406 | except Exception: | CODE |
| LOW⚡ | …nter/resources/mdtest/ruff/fallible-context-manager.md | 416 | except Exception: | CODE |
| LOW⚡ | …nter/resources/mdtest/ruff/fallible-context-manager.md | 445 | except Exception: | CODE |
| LOW | …nter/resources/mdtest/ruff/fallible-context-manager.md | 158 | except Exception: | CODE |
| LOW | …nter/resources/mdtest/ruff/fallible-context-manager.md | 176 | except Exception: | CODE |
| LOW | …nter/resources/mdtest/ruff/fallible-context-manager.md | 194 | except Exception: | CODE |
| LOW | …nter/resources/mdtest/ruff/fallible-context-manager.md | 348 | except Exception: | CODE |
| LOW | crates/ruff_linter/src/rules/pylint/helpers.rs | 614 | except Exception: | CODE |
| LOW | crates/ruff_linter/src/rules/pylint/helpers.rs | 664 | except Exception: | CODE |
| MEDIUM | crates/ruff_linter/src/rules/pylint/helpers.rs | 611 | def f(): | CODE |
| MEDIUM | crates/ruff_linter/src/rules/pylint/helpers.rs | 625 | def f(): | CODE |
| LOW | …r/src/rules/pylint/rules/too_many_return_statements.rs | 232 | except Exception: | CODE |
| LOW | crates/ruff_linter/src/rules/flake8_tidy_imports/mod.rs | 280 | except Exception: | CODE |
| LOW | crates/ruff_linter/src/rules/flake8_tidy_imports/mod.rs | 306 | except Exception: | CODE |
| LOW | crates/ruff_linter/src/rules/pyflakes/mod.rs | 862 | except Exception as x: | CODE |
| LOW | crates/ruff_linter/src/rules/pyflakes/mod.rs | 912 | except Exception as e: | CODE |
| LOW | crates/ruff_linter/src/rules/pyflakes/mod.rs | 1145 | except Exception as exc: | CODE |
| LOW | crates/ruff_linter/src/rules/pyflakes/mod.rs | 1240 | except Exception as len: | CODE |
| LOW | crates/ruff_linter/src/rules/pyflakes/mod.rs | 1443 | except Exception: | CODE |
| LOW | crates/ruff_linter/src/rules/pyflakes/mod.rs | 1461 | except Exception: | CODE |
| LOW | crates/ruff_linter/src/rules/pyflakes/mod.rs | 1874 | except Exception: | CODE |
| LOW | crates/ruff_linter/src/rules/pyflakes/mod.rs | 2731 | except Exception as fu: pass | CODE |
| MEDIUM | crates/ruff_linter/src/rules/pyflakes/mod.rs | 893 | def f(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …resources/valid/statement/ambiguous_lpar_with_items.py | 10 | # ------------------------ | COMMENT |
| MEDIUM | …resources/valid/statement/ambiguous_lpar_with_items.py | 43 | # ------------------------ | COMMENT |
| MEDIUM | …resources/valid/statement/ambiguous_lpar_with_items.py | 71 | # ---------------- | COMMENT |
| MEDIUM | …resources/valid/statement/ambiguous_lpar_with_items.py | 99 | # ---------------------------------- | COMMENT |
| MEDIUM⚡ | …es/ruff_annotate_snippets/src/renderer/display_list.rs | 556 | // │ ┏━━━━━┛ │ │ < We are writing these lines | COMMENT |
| MEDIUM⚡ | …es/ruff_annotate_snippets/src/renderer/display_list.rs | 557 | // │ ┃┌───────┘ │ < by reverting the "depth" of | COMMENT |
| MEDIUM⚡ | …es/ruff_annotate_snippets/src/renderer/display_list.rs | 558 | // │ ┃│┌─────────┘ < their multiline spans. | COMMENT |
| MEDIUM⚡ | …es/ruff_annotate_snippets/src/renderer/display_list.rs | 562 | // │ ┃└─────│──┤ | COMMENT |
| MEDIUM⚡ | …es/ruff_annotate_snippets/src/renderer/display_list.rs | 563 | // │ ┗━━━━━━┥ `Y` is a good letter too | COMMENT |
| MEDIUM⚡ | crates/ty_python_semantic/src/types/typevar.rs | 110 | /// # ╰─────╰─────────── [2] | COMMENT |
| MEDIUM⚡ | crates/ty_python_semantic/src/types/typevar.rs | 110 | /// # ╰─────╰─────────── [2] | COMMENT |
| MEDIUM⚡ | crates/ty_python_semantic/src/types/typevar.rs | 111 | /// # ╰─────────────────────── [1] | COMMENT |
| MEDIUM⚡ | crates/ty_python_semantic/src/types/typevar.rs | 111 | /// # ╰─────────────────────── [1] | COMMENT |
| MEDIUM | crates/ruff_python_ast/generate.py | 78 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | crates/ruff_python_ast/generate.py | 89 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | crates/ruff_python_ast/generate.py | 282 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | crates/ruff_python_ast/generate.py | 296 | # ------------------------------------------------------------------------------ | STRING |
| MEDIUM | crates/ruff_python_ast/generate.py | 497 | # ------------------------------------------------------------------------------ | STRING |
| MEDIUM | crates/ruff_python_ast/generate.py | 590 | # ------------------------------------------------------------------------------ | STRING |
| MEDIUM | crates/ruff_python_ast/generate.py | 763 | # ------------------------------------------------------------------------------ | STRING |
| MEDIUM | crates/ruff_python_ast/generate.py | 990 | # ------------------------------------------------------------------------------ | STRING |
| MEDIUM | crates/ruff_python_ast/generate.py | 1035 | # ------------------------------------------------------------------------------ | STRING |
| MEDIUM | crates/ruff_python_ast/generate.py | 1083 | # ------------------------------------------------------------------------------ | STRING |
| MEDIUM | crates/ruff_python_ast/generate.py | 1152 | # ------------------------------------------------------------------------------ | STRING |
| MEDIUM | crates/ruff_python_ast/generate.py | 1174 | # ------------------------------------------------------------------------------ | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/ruff_linter/src/rules/pydocstyle/rules/not_missing.rs | 312 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// time | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 46 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 67 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// time | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 234 | Calculate speed as distance divided by time. /// /// args: /// distance: Distance traveled. /// time | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 255 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// time | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 320 | Calculate speed as distance divided by time. /// /// Parameters: /// ----------- /// distance : float /// | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 1131 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// time | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 1199 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// /// Retu | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 1219 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// time | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 1284 | Calculate speed as distance divided by time. /// /// Args: /// /// distance: Distance traveled. /// | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 1306 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// time | STRING |
| HIGH | …ff_linter/src/rules/pydoclint/rules/check_docstring.rs | 354 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// time | STRING |
| HIGH | …ff_linter/src/rules/pydoclint/rules/check_docstring.rs | 410 | Calculate speed as distance divided by time. /// /// Args: /// distance: Distance traveled. /// time | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 0 | lorem 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.rs | 0 | lorem ipsum dolor sit amet. lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. | STRING |
| HIGH | docs/linter.md | 0 | lorem 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.rs | 0 | calculate speed as distance divided by time. /// /// args: /// /// distance: distance traveled. /// time: time spent tra | STRING |
| HIGH | …tes/ruff_linter/src/rules/pydocstyle/rules/sections.rs | 0 | calculate speed as distance divided by time. /// /// args: /// /// distance: distance traveled. /// time: time spent tra | STRING |
| HIGH | …ff_linter/src/rules/pydoclint/rules/check_docstring.rs | 0 | calculate speed as distance divided by time. /// /// args: /// /// distance: distance traveled. /// time: time spent tra | STRING |
| HIGH | …rules/pydocstyle/rules/newline_after_last_paragraph.rs | 0 | return a sorted copy of the list. /// /// sort the list in ascending order and return a copy of the result using the bub | STRING |
| HIGH | …src/rules/pydocstyle/rules/multi_line_summary_start.rs | 0 | return a sorted copy of the list. /// /// sort the list in ascending order and return a copy of the result using the bub | STRING |
| HIGH | crates/ruff_linter/src/rules/pydocstyle/rules/indent.rs | 0 | return a sorted copy of the list. /// /// sort the list in ascending order and return a copy of the result using the bub | STRING |
| HIGH | …nter/src/rules/pydocstyle/rules/blank_after_summary.rs | 0 | return a sorted copy of the list. /// /// sort the list in ascending order and return a copy of the result using the bub | STRING |
| HIGH | python/ruff-ecosystem/ruff_ecosystem/check.py | 0 | run the given ruff binary against the specified path. | STRING |
| HIGH | python/ruff-ecosystem/ruff_ecosystem/format.py | 0 | run the given ruff binary against the specified path. | STRING |
| HIGH | scripts/check_ecosystem.py | 0 | run the given ruff binary against the specified path. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …resources/valid/statement/ambiguous_lpar_with_items.py | 6 | # The following sections basically separates between which node does the | COMMENT |
| MEDIUM | …s/invalid/statements/with/ambiguous_lpar_with_items.py | 1 | # This file contains test cases where the with items has an ambiguous left parenthesis. | COMMENT |
| MEDIUM | …c/rules/flake8_bugbear/rules/loop_iterator_mutation.rs | 33 | /// # Create an infinite loop by appending to the list. | COMMENT |
| MEDIUM | …s/ruff_linter/src/rules/flake8_comprehensions/fixes.rs | 867 | // # The above code will be converted to: | COMMENT |
| MEDIUM | crates/ruff_python_ast/ast.toml | 1 | # This file is used by generate.py to autogenerate our Python AST data model. | COMMENT |
| MEDIUM | playground/ruff/src/constants.ts | 4 | "# Define a function that takes an integer n and returns the nth number in the Fibonacci\n" + | CODE |
| MEDIUM | scripts/update_schemastore.py | 76 | # Create a new branch tagged with the current ruff commit up to date with the latest | COMMENT |
| MEDIUM | scripts/add_plugin.py | 21 | # Create the test fixture folder. | COMMENT |
| MEDIUM | scripts/add_plugin.py | 26 | # Create the Plugin rules module. | COMMENT |
| MEDIUM | scripts/add_plugin.py | 61 | # Create a subdirectory for rules and create a `mod.rs` placeholder | COMMENT |
| MEDIUM | scripts/add_plugin.py | 67 | # Create the snapshots subdirectory | COMMENT |
| MEDIUM | scripts/add_rule.py | 24 | # Create a test fixture. | COMMENT |
| MEDIUM⚡ | scripts/ty_benchmark/src/benchmark/lsp_client.py | 16 | # Define a union type that cattrs struggles with. | COMMENT |
| MEDIUM | .github/workflows/release.yml | 293 | # Create a GitHub Release while uploading all files to it | COMMENT |
| MEDIUM | .github/workflows/release.yml | 319 | # Create a GitHub Release while uploading all files to it | COMMENT |
| MEDIUM | .github/workflows/build-docker.yml | 231 | # Initialize a variable to store all tag docker metadata patterns | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/ty_ide/src/hover.rs | 5222 | """Lorem ipsum dolor sit amet.<CURSOR>""" | STRING |
| LOW | crates/ty_ide/src/hover.rs | 5222 | """Lorem ipsum dolor sit amet.<CURSOR>""" | STRING |
| LOW | …ython_semantic/resources/mdtest/external/sqlalchemy.md | 28 | user = User(name="John Doe") | CODE |
| LOW | …/ty_python_semantic/resources/mdtest/external/attrs.md | 22 | user = User(id=1, name="John Doe") | CODE |
| LOW | …/ty_python_semantic/resources/mdtest/external/attrs.md | 38 | user = User(id=1, name="John Doe") | CODE |
| LOW | …_python_semantic/resources/mdtest/external/pydantic.md | 25 | user = User(id=1, name="John Doe") | CODE |
| LOW | …_python_semantic/resources/mdtest/external/sqlmodel.md | 21 | user = User(id=1, name="John Doe") | CODE |
| LOW | …_linter/src/rules/ruff/rules/invalid_pyproject_toml.rs | 25 | /// { name = "Ferris the Crab", email = "ferris@example.org" } | COMMENT |
| LOW⚡ | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 43 | /// """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis auctor purus ut ex fermentum, at maximus est he | COMMENT |
| LOW⚡ | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 43 | /// """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis auctor purus ut ex fermentum, at maximus est he | COMMENT |
| LOW⚡ | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 50 | /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. | COMMENT |
| LOW⚡ | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 50 | /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. | COMMENT |
| LOW⚡ | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 62 | /// """Lorem ipsum dolor sit amet. | COMMENT |
| LOW⚡ | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 62 | /// """Lorem ipsum dolor sit amet. | COMMENT |
| LOW⚡ | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 64 | /// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. | COMMENT |
| LOW⚡ | …inter/src/rules/pycodestyle/rules/doc_line_too_long.rs | 64 | /// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. | COMMENT |
| LOW⚡ | …ff_linter/src/rules/pycodestyle/rules/line_too_long.rs | 59 | /// """Lorem ipsum dolor sit amet. | COMMENT |
| LOW⚡ | …ff_linter/src/rules/pycodestyle/rules/line_too_long.rs | 59 | /// """Lorem ipsum dolor sit amet. | COMMENT |
| LOW⚡ | …ff_linter/src/rules/pycodestyle/rules/line_too_long.rs | 61 | /// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. | COMMENT |
| LOW⚡ | …ff_linter/src/rules/pycodestyle/rules/line_too_long.rs | 61 | /// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. | COMMENT |
| LOW⚡ | docs/linter.md | 318 | """Lorem ipsum dolor sit amet. | STRING |
| LOW⚡ | docs/linter.md | 318 | """Lorem ipsum dolor sit amet. | STRING |
| LOW⚡ | docs/linter.md | 320 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. | STRING |
| LOW⚡ | docs/linter.md | 320 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. | STRING |
| LOW⚡ | docs/linter.md | 412 | VALUE_1 = "Lorem ipsum dolor sit amet ..." | CODE |
| LOW⚡ | docs/linter.md | 412 | VALUE_1 = "Lorem ipsum dolor sit amet ..." | CODE |
| LOW⚡ | docs/linter.md | 413 | VALUE_2 = "Lorem ipsum dolor sit amet ..." | CODE |
| LOW⚡ | docs/linter.md | 413 | VALUE_2 = "Lorem ipsum dolor sit amet ..." | CODE |
| LOW⚡ | docs/linter.md | 414 | VALUE_3 = "Lorem ipsum dolor sit amet ..." | CODE |
| LOW⚡ | docs/linter.md | 414 | VALUE_3 = "Lorem ipsum dolor sit amet ..." | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/ty_python_semantic/src/types/member.rs | 85 | // Otherwise, we need to check if the symbol has bindings | COMMENT |
| LOW | crates/ty_python_semantic/src/types/constraints.rs | 4428 | // the BDD. If we encounter one of those cases, we need to check if we can simplify things | COMMENT |
| LOW | crates/ty_python_semantic/src/types/class.rs | 2097 | // Step 3: If the return type of the `__new__` evaluates to a type that is not a subclass of this class, | COMMENT |
| LOW | crates/ty_python_semantic/src/types/call/bind.rs | 3237 | // Step 1: Check the result of the arity check which is done by `match_parameters` | COMMENT |
| LOW | crates/ty_python_semantic/src/types/call/bind.rs | 3287 | // Step 2: Evaluate each remaining overload as a regular (non-overloaded) call to determine | COMMENT |
| LOW | crates/ty_python_semantic/src/types/call/bind.rs | 3359 | // Step 3: Perform "argument type expansion". Reference: | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 1655 | // Step 3: Clean-up | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 1657 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2314 | // Step 2: Traversal | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2317 | // Step 3: Clean-up | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2327 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2334 | // Step 1: Binding. | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2341 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2346 | // Step 1: Binding. | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2356 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2361 | // Step 1: Binding | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2382 | // Step 2: Traversal | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2385 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2390 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2393 | // Step 2: Traversal | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 971 | // Step 0: Pre-processing | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1053 | // Step 1: Binding | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1247 | // Step 2: Traversal | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1675 | // Step 0: Pre-processing | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1726 | // Step 1: Binding | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1761 | // Step 2: Traversal | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2253 | // Step 3: Clean-up | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2266 | // Step 4: Analysis | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2286 | // Step 1: Binding | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2411 | // Step 1: Binding | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2424 | // Step 2: Traversal | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2558 | // Step 4: Analysis | COMMENT |
| LOW | …_linter/src/rules/refurb/rules/isinstance_type_none.rs | 85 | // the union operator, so we need to check if we're in a union. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/ty_python_semantic/src/types/class.rs | 2097 | // Step 3: If the return type of the `__new__` evaluates to a type that is not a subclass of this class, | COMMENT |
| LOW | crates/ty_python_semantic/src/types/call/bind.rs | 3237 | // Step 1: Check the result of the arity check which is done by `match_parameters` | COMMENT |
| LOW | crates/ty_python_semantic/src/types/call/bind.rs | 3287 | // Step 2: Evaluate each remaining overload as a regular (non-overloaded) call to determine | COMMENT |
| LOW | crates/ty_python_semantic/src/types/call/bind.rs | 3359 | // Step 3: Perform "argument type expansion". Reference: | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 1655 | // Step 3: Clean-up | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 1657 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2314 | // Step 2: Traversal | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2317 | // Step 3: Clean-up | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2327 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2334 | // Step 1: Binding. | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2341 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2346 | // Step 1: Binding. | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2356 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2361 | // Step 1: Binding | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2382 | // Step 2: Traversal | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2385 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2390 | // Step 4: Analysis | COMMENT |
| LOW⚡ | crates/ruff_linter/src/checkers/ast/mod.rs | 2393 | // Step 2: Traversal | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 971 | // Step 0: Pre-processing | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1053 | // Step 1: Binding | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1247 | // Step 2: Traversal | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1675 | // Step 0: Pre-processing | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1726 | // Step 1: Binding | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 1761 | // Step 2: Traversal | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2253 | // Step 3: Clean-up | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2266 | // Step 4: Analysis | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2286 | // Step 1: Binding | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2411 | // Step 1: Binding | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2424 | // Step 2: Traversal | COMMENT |
| LOW | crates/ruff_linter/src/checkers/ast/mod.rs | 2558 | // Step 4: Analysis | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/ruff/src/commands/format.rs | 830 | // a snippet to measure. If we commit to staying on our fork, a more robust way of | COMMENT |
| MEDIUM | crates/ty_python_core/src/predicate.rs | 285 | /// will be visible from all control-flow paths or not. Essentially, we model `importer.py` as | COMMENT |
| MEDIUM | crates/ty_ide/src/docstring/markdown/general.rs | 9 | // Here lies a monument to robust parsing and escaping: | COMMENT |
| LOW | crates/ruff_benchmark/resources/pydantic/types.py | 461 | # hence we just use `secret_display` | COMMENT |
| MEDIUM | crates/ty_python_semantic/src/types/special_form.rs | 306 | /// This is much more robust than having a manual `from_string` method that matches | COMMENT |
| MEDIUM | …s/ty_python_semantic/src/types/class/static_literal.rs | 3264 | // we want to be robust against new qualifiers | COMMENT |
| MEDIUM | …rules/ruff/rules/access_annotations_from_class_dict.rs | 30 | /// robust (e.g., correctly handling the Python 3.14 behavior mentioned | COMMENT |
| MEDIUM | …ff_linter/src/rules/flake8_pytest_style/rules/patch.rs | 20 | /// `return_value` is also robust to changes in the patched function's | COMMENT |
| MEDIUM | …e_annotations/rules/future_required_type_annotation.rs | 26 | /// does not impact your ability to leverage PEP 604-style unions (e.g., to | COMMENT |
| MEDIUM | …annotations/rules/future_rewritable_type_annotation.rs | 31 | /// does not impact your ability to leverage PEP 604-style unions (e.g., to | COMMENT |
| MEDIUM | crates/ruff_python_semantic/src/model.rs | 972 | // could actually be referred to. This is not as robust as back-tracking | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/ruff_benchmark/resources/typeis_narrowing.py | 210 | CODE | |
| LOW | crates/ruff_benchmark/resources/tomllib/_parser.py | 69 | CODE | |
| LOW | crates/ruff_benchmark/resources/numpy/ctypeslib.py | 235 | CODE | |
| LOW | crates/ty_python_semantic/mdtest.py | 157 | CODE | |
| LOW | crates/ty_python_semantic/mdtest.py | 231 | CODE | |
| LOW | …s/67_with_inside_try_finally_multiple_terminal_elif.py | 1 | CODE | |
| LOW | crates/ruff_python_ast/generate.py | 300 | CODE | |
| LOW | crates/ruff_python_ast/generate.py | 1039 | CODE | |
| LOW | crates/ruff_python_ast/generate.py | 1087 | CODE | |
| LOW | python/ruff-ecosystem/ruff_ecosystem/check.py | 344 | CODE | |
| LOW | python/py-fuzzer/fuzz.py | 223 | CODE | |
| LOW | python/py-fuzzer/fuzz.py | 326 | CODE | |
| LOW | scripts/add_plugin.py | 19 | CODE | |
| LOW | scripts/generate_mkdocs.py | 175 | CODE | |
| LOW | scripts/conformance.py | 448 | CODE | |
| LOW | scripts/conformance.py | 590 | CODE | |
| LOW | scripts/conformance.py | 674 | CODE | |
| LOW | scripts/conformance.py | 746 | CODE | |
| LOW | scripts/add_rule.py | 22 | CODE | |
| LOW | scripts/generate_builtin_modules.py | 55 | CODE | |
| LOW | scripts/setup-crates-io-publish.py | 276 | CODE | |
| LOW | scripts/check_ecosystem.py | 242 | CODE | |
| LOW | scripts/check_ecosystem.py | 299 | CODE | |
| LOW | scripts/check_ecosystem.py | 349 | CODE | |
| LOW | scripts/generate-crate-readmes.py | 79 | CODE | |
| LOW | scripts/ty_benchmark/src/benchmark/snapshot.py | 57 | CODE | |
| LOW | scripts/ty_benchmark/src/benchmark/lsp_client.py | 13 | CODE | |
| LOW | scripts/ty_benchmark/src/benchmark/lsp_client.py | 25 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …style/rules/logical_lines/whitespace_before_comment.rs | 23 | /// x = x + 1 # Increment x | COMMENT |
| LOW⚡ | …style/rules/logical_lines/whitespace_before_comment.rs | 28 | /// x = x + 1 # Increment x | COMMENT |
| LOW⚡ | …style/rules/logical_lines/whitespace_before_comment.rs | 29 | /// x = x + 1 # Increment x | COMMENT |
| LOW⚡ | …style/rules/logical_lines/whitespace_before_comment.rs | 58 | /// x = x + 1 #Increment x | COMMENT |
| LOW⚡ | …style/rules/logical_lines/whitespace_before_comment.rs | 59 | /// x = x + 1 # Increment x | COMMENT |
| LOW⚡ | …style/rules/logical_lines/whitespace_before_comment.rs | 65 | /// x = x + 1 # Increment x | COMMENT |
| LOW⚡ | …style/rules/logical_lines/whitespace_before_comment.rs | 66 | /// x = x + 1 # Increment x | COMMENT |
| LOW | scripts/update_schemastore.py | 111 | # Check if the schema has changed | COMMENT |
| LOW | scripts/check_ecosystem.py | 462 | # Check if addition or removal depending on the first character | COMMENT |
| LOW | scripts/ty_benchmark/src/benchmark/snapshot.py | 91 | # Check if snapshot exists. | COMMENT |
| LOW | .github/workflows/ci.yaml | 685 | # Set pipefail to avoid hiding errors with tee | COMMENT |
| LOW | .github/workflows/ci.yaml | 698 | # Set pipefail to avoid hiding errors with tee | COMMENT |
| LOW | .github/workflows/ci.yaml | 711 | # Set pipefail to avoid hiding errors with tee | COMMENT |
| LOW | .github/workflows/ci.yaml | 724 | # Set pipefail to avoid hiding errors with tee | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | playground/ty/src/Playground.tsx | 314 | elif style == "bold": | CODE |
| HIGH | playground/ty/src/Playground.tsx | 323 | print(with_style("ty is a fast type checker for Python.", "fast", "underlined")) | CODE |
| HIGH | playground/ty/src/Editor/runPython.ts | 45 | print(f"Runtime value is '{obj}'") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | dist-workspace.toml | 58 | # Whether CI should include auto-generated code to build local artifacts | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …on_eval/truth/auto-import-skips-current-module/main.py | 15 | # I've added it anyway in case it does in the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/ruff_benchmark/resources/numpy/globals.py | 22 | __all__ = ['_NoValue', '_CopyMode'] | CODE |
| LOW | crates/ruff_benchmark/resources/numpy/ctypeslib.py | 52 | __all__ = ['load_library', 'ndpointer', 'c_intp', 'as_ctypes', 'as_array', | CODE |
| LOW | crates/ruff_benchmark/resources/pydantic/types.py | 33 | __all__ = [ | CODE |
| LOW | …_semantic/resources/corpus/97_global_nonlocal_store.py | 4 | def update_task_runs() -> None: | CODE |
| LOW | python/ruff/__init__.py | 5 | __all__ = ["find_ruff_bin"] | CODE |
| LOW | scripts/setup-crates-io-publish.py | 229 | def set_trustpub_only(client: httpx.Client, crate_name: str, enabled: bool) -> None: | CODE |
| LOW | scripts/check_ecosystem.py | 34 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …semantic/resources/mdtest/generics/pep695/callables.md | 661 | ## SymPy one-import MRE scaffold (multi-file) | COMMENT |
| MEDIUM | …semantic/resources/mdtest/generics/legacy/callables.md | 417 | ## SymPy one-import MRE scaffold (multi-file) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/publish-crates.py | 8 | # Usage: | COMMENT |
| LOW | scripts/ecosystem_all_check.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/setup-crates-io-publish.py | 16 | # Usage: | COMMENT |
| LOW | scripts/benchmarks/run_formatter.sh | 12 | # Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | crates/ruff_benchmark/resources/large/dataset.py | 1319 | # TODO: implement this | COMMENT |
| LOW | …ython_semantic/resources/mdtest/comparison/integers.md | 25 | # TODO: implement lookup of `__eq__` on typeshed `int` stub. | COMMENT |
| LOW | crates/ty_python_semantic/src/types.rs | 6523 | // TODO: Add tests for materialization once subtyping/assignability is implemented for | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tes/ty_python_semantic/resources/corpus/93_deadcode.py | 3 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 158 | # When updating salsa, make sure to also update the version in `fuzz/Cargo.toml` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/ruff_benchmark/resources/pydantic/types.py | 271 | CODE |