| # Keep intentional uniform field visibility audited instead of excluding whole files. | |
| preserve-uniform-field-visibility = true | |
| [[production]] | |
| package = "ruff" | |
| bin = "ruff" | |
| reason = "shipped Ruff binary" | |
| [[production]] | |
| package = "ty" | |
| bin = "ty" | |
| reason = "shipped ty type checker binary" | |
| [[production]] | |
| package = "ruff_python_formatter" | |
| bin = "ruff_python_formatter" | |
| reason = "workspace formatter development binary" | |
| [[production]] | |
| package = "ruff_dev" | |
| bin = "ruff_dev" | |
| reason = "workspace development binary" | |
| [[production]] | |
| package = "ty_completion_bench" | |
| bin = "ty_completion_bench" | |
| reason = "workspace completion benchmark binary" | |
| [[production]] | |
| package = "ty_completion_eval" | |
| bin = "ty_completion_eval" | |
| reason = "workspace completion evaluation binary" | |
| # Keep this list in sync with workspace packages that define doctests. | |
| [[doctest]] | |
| package = "ruff_annotate_snippets" | |
| [[doctest]] | |
| package = "ruff_cache" | |
| [[doctest]] | |
| package = "ruff_db" | |
| [[doctest]] | |
| package = "ruff_formatter" | |
| [[doctest]] | |
| package = "ruff_linter" | |
| [[doctest]] | |
| package = "ruff_notebook" | |
| [[doctest]] | |
| package = "ruff_options_metadata" | |
| [[doctest]] | |
| package = "ruff_python_ast" | |
| [[doctest]] | |
| package = "ruff_python_parser" | |
| [[doctest]] | |
| package = "ruff_python_stdlib" | |
| [[doctest]] | |
| package = "ruff_python_trivia" | |
| [[doctest]] | |
| package = "ruff_source_file" | |
| [[doctest]] | |
| package = "ruff_text_size" | |
| [[doctest]] | |
| package = "ruff_workspace" | |
| [[doctest]] | |
| package = "ty_module_resolver" | |
| [[doctest]] | |
| package = "ty_python_semantic" | |
| # Keep APIs used by targets outside Hawk's workspace analysis. | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_codegen" | |
| item = "generator::Generator::<'a>::unparse_suite" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the standalone fuzz crate uses this method" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_trivia" | |
| item = "cursor::EOF_CHAR" | |
| kind = "constant" | |
| level = "expect" | |
| reason = "public cursor documentation links to this end-of-file sentinel" | |
| # Keep APIs referenced by public documentation or paired with sibling APIs. | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::BestFittingVariants::most_expanded" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public best-fitting macro documentation links to this variant accessor" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "printer::printer_options::LineEnding::as_str" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public line-ending settings documentation links to this representation accessor" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "settings::TargetVersion::linter_version" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the public parser and linter target-version accessor pair" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_parser" | |
| item = "Parsed::<T>::has_no_syntax_errors" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the public syntax-validity predicate API" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_parser" | |
| item = "lexer::Lexer::<'src>::current_range" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "lets downstream lexer callers inspect the current token range" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_parser" | |
| item = "lexer::Lexer::<'src>::current_flags" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "lets downstream lexer callers inspect the current token flags" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_workspace" | |
| item = "settings::FormatterSettings::resolve_target_version" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public formatter settings fields direct callers to this resolver" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_python_semantic" | |
| item = "semantic_model::SemanticModel::<'db>::scope" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the documented semantic-model scope navigation API" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_python_semantic" | |
| item = "types::set_theoretic::UnionType::<'db>::from_two_elements" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public union construction documentation recommends this optimized constructor" | |
| # Keep the public code-component accessor API symmetric. | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_linter" | |
| item = "codes::NoqaCode::prefix" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional symmetric prefix and suffix accessor API" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "codes::NoqaCode::suffix" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional symmetric prefix and suffix accessor API" | |
| # Keep the public edit-operation predicate API symmetric. | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_diagnostics" | |
| item = "edit::Edit::is_deletion" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional symmetric edit-operation predicate API" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_diagnostics" | |
| item = "edit::Edit::is_insertion" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional symmetric edit-operation predicate API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_diagnostics" | |
| item = "edit::Edit::is_replacement" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional symmetric edit-operation predicate API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "IndentStyle::is_space" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional symmetric indent-style predicate API" | |
| # Keep the public printer-options builder API uniform. | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "printer::printer_options::PrinterOptions::with_line_width" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional uniform printer-options builder API" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "printer::printer_options::PrinterOptions::with_indent" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional uniform printer-options builder API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "printer::printer_options::PrinterOptions::with_tab_width" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "preserves the intentional uniform printer-options builder API" | |
| # Keep public APIs retained during cleanup review. | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "buffer::VecBuffer::<'a, Context>::take_vec" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "formatter buffers support both consuming and reusable element extraction" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::LineMode::is_hard" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public line modes retain their classification predicate" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::FormatElement::is_tag" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public format elements retain their tag inspection API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::FormatElement::is_start_tag" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public format elements retain their tag inspection API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::tag::Condition::if_fits_on_line" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "conditional formatting constructors intentionally cover fits and breaks variants" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::tag::VerbatimKind::is_bogus" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public verbatim kinds retain their classification predicate" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "SimpleFormatContext::with_source_code" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public simple formatting context supports source-backed downstream tests and examples" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "Printed::new_empty" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public formatter results retain their empty constructor" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "Printed::range" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public formatter results expose their covered source range" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "Printed::into_sourcemap" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "formatter results expose borrowed, owned, and take-based source map access" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "Printed::take_sourcemap" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "formatter results expose borrowed, owned, and take-based source map access" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "Printed::verbatim" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public formatter results expose verbatim text and range metadata" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "Printed::verbatim_ranges" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "formatter results expose borrowed and take-based verbatim range access" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "Printed::take_verbatim_ranges" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "formatter results expose borrowed and take-based verbatim range access" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "FormatOwnedWithRule::<T, R, C>::with_item" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public owned-format adapter retains its builder API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "FormatOwnedWithRule::<T, R, C>::with_options" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public owned-format adapter retains its builder API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "printer::printer_options::PrintWidth::new" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public print-width wrapper retains its explicit constructor" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "printer::printer_options::SourceMapGeneration::is_disabled" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "source map generation exposes symmetric enabled and disabled predicates" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_ast" | |
| item = "helpers::map_starred" | |
| kind = "function" | |
| level = "expect" | |
| reason = "AST helpers consistently unwrap callable, subscripted, and starred expressions" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_parser" | |
| item = "error::ParseError::error" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "downstream parser clients can consume a parse error into its error kind" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_parser" | |
| item = "Parsed::<T>::as_result" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "downstream parser clients retain borrowed result conversion" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_parser" | |
| item = "Parsed::<ruff_python_ast::ModExpression>::into_expr" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "parsed expressions retain borrowed and consuming accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "binding::Binding::<'a>::is_deleted" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public binding API retains its deleted-state query" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "cfg::graph::ControlFlowGraph::<'stmt>::predecessors" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public control-flow graph supports downstream predecessor inspection" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "model::SemanticModel::<'a>::node" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public semantic model retains node navigation for downstream analyses" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "model::SemanticModel::<'a>::in_runtime_ambiguous_annotation" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic model predicates intentionally expose each annotation context" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "model::SemanticModel::<'a>::in_simple_string_type_definition" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic model predicates intentionally expose each string type context" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "model::SemanticModel::<'a>::in_dunder_all_definition" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic model predicates retain the documented dunder-all context query" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "model::TypingOnlyBindingsStatus::is_allowed" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "typing-only binding status exposes symmetric allowed and disallowed predicates" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "reference::ResolvedReference::in_annotated_type_alias_value" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "resolved references expose their complete semantic context interface" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "semantic_model::SemanticModel::<'db>::file_path" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public semantic model exposes its file identity and source locations" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "semantic_model::SemanticModel::<'db>::line_index" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public semantic model exposes its file identity and source locations" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "formatter::Formatter::<'_, Context>::state_snapshot" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "formatter clients use snapshots to restore state after speculative formatting" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "formatter::Formatter::<'_, Context>::restore_state_snapshot" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "formatter clients use snapshots to restore state after speculative formatting" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_formatter" | |
| item = "formatter::FormatterSnapshot" | |
| kind = "struct" | |
| level = "expect" | |
| reason = "formatter clients use snapshots to restore state after speculative formatting" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "binding::Binding::<'a>::is_deferred_type_alias" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "binding predicates intentionally expose the distinct type-alias classifications" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_semantic" | |
| item = "binding::Binding::<'a>::is_type_alias" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "binding predicates intentionally expose the distinct type-alias classifications" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_source_file" | |
| item = "line_index::OneIndexed::checked_add" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "one-indexed arithmetic intentionally provides checked and saturating operations" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_source_file" | |
| item = "line_index::OneIndexed::checked_sub" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "one-indexed arithmetic intentionally provides checked and saturating operations" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_text_size" | |
| item = "size::TextSize::saturating_add" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "TextSize intentionally provides both checked and saturating arithmetic" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_text_size" | |
| item = "size::TextSize::saturating_sub" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "TextSize intentionally provides both checked and saturating arithmetic" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_ast" | |
| item = "expression::StringLikePart::<'a>::as_string_literal" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "string-like AST parts intentionally expose consistent typed accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_ast" | |
| item = "name::Name::join" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the AST name wrapper intentionally mirrors common string operations" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_ast" | |
| item = "token::TokenKind::is_non_soft_keyword" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "token kind predicates intentionally cover every keyword classification" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_python_ast" | |
| item = "token::tokens::TokenIterWithContext::<'a>::nesting" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "token iterator context intentionally exposes all tracked parser state" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_ide" | |
| item = "symbols::FlatSymbols::get" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "flat and hierarchical symbol collections intentionally share lookup APIs" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_ide" | |
| item = "symbols::FlatSymbols::len" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "flat and hierarchical symbol collections intentionally share collection APIs" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_ide" | |
| item = "symbols::HierarchicalSymbols::get" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "flat and hierarchical symbol collections intentionally share lookup APIs" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_ide" | |
| item = "symbols::HierarchicalSymbols::len" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "flat and hierarchical symbol collections intentionally share collection APIs" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_module_resolver" | |
| item = "module_glob::ModuleNameMatch::is_none" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "module glob match predicates intentionally cover every result variant" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::Level::is_error" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "lint level predicates intentionally cover every severity" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::Level::is_warn" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "lint level predicates intentionally cover every severity" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::Level::is_ignore" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "lint level predicates intentionally cover every severity" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::LintStatus::deprecated" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "lint status constructors intentionally cover every lifecycle state" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::LintRegistryBuilder::register_alias" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the lint registry intentionally supports aliases before the first alias is added" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::LintRegistry::aliases" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "lint registry queries intentionally cover aliases and removed rules" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::LintRegistry::removed" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "lint registry queries intentionally cover aliases and removed rules" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::RuleSelection::enabled" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "rule selections intentionally support iteration with and without severity" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_semantic" | |
| item = "lint::RuleSelection::iter" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "rule selections intentionally support iteration with and without severity" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "frozen::FrozenMap::<K, V>::iter_mut" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the frozen map intentionally mirrors standard map iteration APIs" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "frozen::FrozenMap::<K, V>::values" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the frozen map intentionally mirrors standard map iteration APIs" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "rank::RankBitBox::is_empty" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the rank bit collection intentionally provides matching len and is_empty APIs" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_graph" | |
| item = "ModuleImports::is_empty" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "module import collections intentionally provide matching len and is_empty APIs" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "line_width::LineLengthFromIntError::0" | |
| kind = "field" | |
| level = "expect" | |
| reason = "the conversion error exposes the rejected line length to callers" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "rules::pep8_naming::settings::IgnoreNames::matches" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public settings support downstream configuration and validation" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "rules::pep8_naming::settings::IgnoreNames::from_patterns" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public settings support downstream configuration and validation" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "settings::LinterSettings::with_target_version" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public test helpers use this builder from downstream crates" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "settings::LinterSettings::with_preview_mode" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public test helpers use this builder from downstream crates" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "settings::LinterSettings::with_external_rules" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public test helpers use this builder from downstream crates" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_workspace" | |
| item = "configuration::FormatConfiguration::from_options" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "workspace configuration types retain public constructors for downstream integrations" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_workspace" | |
| item = "configuration::AnalyzeConfiguration::from_options" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "workspace configuration types retain public constructors for downstream integrations" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_project" | |
| item = "db::testing::TestDb::take_salsa_events" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the testing feature exposes database event assertions to downstream tests" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "completion::Completion::builtin" | |
| kind = "field" | |
| level = "expect" | |
| reason = "completion metadata remains visible to downstream test and protocol adapters" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "completion::Completion::is_type_check_only" | |
| kind = "field" | |
| level = "expect" | |
| reason = "completion metadata remains visible to downstream test and protocol adapters" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "completion::Completion::is_context_specific" | |
| kind = "field" | |
| level = "expect" | |
| reason = "completion metadata remains visible to downstream test and protocol adapters" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "symbols::HierarchicalSymbols::is_empty" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "symbol collections intentionally provide matching len and is_empty APIs" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "symbols::SymbolKind::to_string" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "symbol kinds expose their protocol-facing names to downstream adapters" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_static" | |
| item = "env_vars::EnvVars::XDG_CONFIG_HOME" | |
| kind = "inherent_associated_constant" | |
| level = "expect" | |
| reason = "consumed by the generated environment-variable reference" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_db" | |
| item = "system::command::Command::get_current_dir" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "command descriptions expose a complete argument builder and inspection API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_db" | |
| item = "system::command::Command::env_clear" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "command environment methods mirror the standard library Command API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_db" | |
| item = "system::command::Command::env" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "command environment methods mirror the standard library Command API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ruff_db" | |
| item = "system::command::Command::env_remove" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "command environment methods mirror the standard library Command API" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "expression::Expression::<'db>::program" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "predicate::PatternPredicate::<'db>::file" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "predicate::PatternPredicate::<'db>::python_file" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "predicate::PatternPredicate::<'db>::program" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "statement::StatementInner::<'db>::file" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "statement::StatementInner::<'db>::python_file" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "statement::StatementInner::<'db>::program" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "unpack::Unpack::<'db>::file" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "unpack::Unpack::<'db>::python_file" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| [[override]] | |
| lint = "hawk::dead_public" | |
| crate = "ty_python_core" | |
| item = "unpack::Unpack::<'db>::program" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic ingredients expose consistent file, scope, and program accessors" | |
| # Keep public APIs whose narrower visibility would break a uniform interface or | |
| # activate compiler lints that Rust intentionally suppresses for public APIs. | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::PrintMode::is_flat" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "print mode predicates intentionally expose a consistent public interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::PrintMode::is_expanded" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "print mode predicates intentionally expose a consistent public interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "format_element::tag::GroupMode::is_flat" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "group mode predicates intentionally expose a consistent public interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "formatter::Formatter::<'buf, Context>::intern_vec" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public formatter API supports interning prebuilt format elements" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_formatter" | |
| item = "IndentStyle::as_str" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public indentation settings expose their stable string representation" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "registry::<impl codes::Rule>::url" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public rule metadata includes its documentation URL" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_linter" | |
| item = "settings::types::PythonVersion::as_tuple" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public Python version settings expose their numeric representation" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_codegen" | |
| item = "generator::Generator::<'a>::with_mode" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public generator builder intentionally exposes its output mode" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_codegen" | |
| item = "stylist::Indentation::new" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public indentation wrapper retains its explicit constructor" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_formatter" | |
| item = "AsFormat" | |
| kind = "reexport" | |
| level = "expect" | |
| reason = "generated formatter implementations expose this public extension trait" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_formatter" | |
| item = "FormattedIter" | |
| kind = "reexport" | |
| level = "expect" | |
| reason = "generated formatter implementations expose this public iterator adapter" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_formatter" | |
| item = "FormattedIterExt" | |
| kind = "reexport" | |
| level = "expect" | |
| reason = "generated formatter implementations expose this public extension trait" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_formatter" | |
| item = "IntoFormat" | |
| kind = "reexport" | |
| level = "expect" | |
| reason = "generated formatter implementations expose this public extension trait" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_formatter" | |
| item = "options::QuoteStyle::as_str" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "public quote-style settings expose their stable string representation" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_parser" | |
| item = "semantic_errors::YieldOutsideFunctionKind::is_await" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "semantic error variants intentionally expose their classification predicate" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_semantic" | |
| item = "cfg::visualize::draw_cfg" | |
| kind = "function" | |
| level = "expect" | |
| reason = "the control-flow graph visualizer remains available to downstream debugging tools" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_semantic" | |
| item = "cfg::visualize::MermaidNode::with_content" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "the public control-flow graph visualization API retains its node constructor" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_python_semantic" | |
| item = "cfg::visualize::DirectedGraph" | |
| kind = "trait" | |
| level = "expect" | |
| reason = "the control-flow graph visualizer remains available to downstream debugging tools" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_source_file" | |
| item = "newlines::LineEnding::len" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "line-ending values expose consistent byte and text length APIs" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ruff_source_file" | |
| item = "newlines::LineEnding::text_len" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "line-ending values expose consistent byte and text length APIs" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "all_symbols::AllSymbolInfo::<'db>::name_in_file" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "auto-import symbol results intentionally expose their complete metadata interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "all_symbols::AllSymbolInfo::<'db>::qualified" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "auto-import symbol results intentionally expose their complete metadata interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "all_symbols::AllSymbolInfo::<'db>::kind" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "auto-import symbol results intentionally expose their complete metadata interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "all_symbols::AllSymbolInfo::<'db>::deprecated" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "auto-import symbol results intentionally expose their complete metadata interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "all_symbols::AllSymbolInfo::<'db>::module" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "auto-import symbol results intentionally expose their complete metadata interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "all_symbols::AllSymbolInfo::<'db>::file" | |
| kind = "inherent_method" | |
| level = "expect" | |
| reason = "auto-import symbol results intentionally expose their complete metadata interface" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "AllSymbolInfo" | |
| kind = "reexport" | |
| level = "expect" | |
| reason = "the public auto-import API re-exports its result type" | |
| [[override]] | |
| lint = "hawk::unnecessary_public" | |
| crate = "ty_ide" | |
| item = "all_symbols" | |
| kind = "reexport" | |
| level = "expect" | |
| reason = "the public auto-import API re-exports its query function" | |
| # Keep the generated AST and its hand-written companion APIs consistent across | |
| # node types, visitors, and string literal kinds. | |
| [[exclude]] | |
| crate = "ruff_python_ast" | |
| file = "crates/ruff_python_ast/src/generated.rs" | |
| reason = "generated from crates/ruff_python_ast/ast.toml" | |
| [[exclude]] | |
| crate = "ruff_python_ast" | |
| file = "crates/ruff_python_ast/src/nodes.rs" | |
| reason = "AST node APIs intentionally provide a consistent interface across node types" | |
| [[exclude]] | |
| crate = "ruff_python_ast" | |
| file = "crates/ruff_python_ast/src/comparable.rs" | |
| reason = "the comparable AST intentionally mirrors the full AST hierarchy" | |
| [[exclude]] | |
| crate = "ruff_python_ast" | |
| file = "crates/ruff_python_ast/src/statement_visitor.rs" | |
| reason = "AST walk functions intentionally provide a consistent interface across node types" | |
| [[exclude]] | |
| crate = "ruff_python_ast" | |
| file = "crates/ruff_python_ast/src/visitor.rs" | |
| reason = "AST walk functions intentionally provide a consistent interface across node types" | |
| [[exclude]] | |
| crate = "ruff_python_ast" | |
| file = "crates/ruff_python_ast/src/visitor/source_order.rs" | |
| reason = "AST walk functions intentionally provide a consistent interface across node types" | |
| [[exclude]] | |
| crate = "ruff_python_ast" | |
| file = "crates/ruff_python_ast/src/visitor/transformer.rs" | |
| reason = "AST walk functions intentionally provide a consistent interface across node types" | |
| [[exclude]] | |
| crate = "ruff_python_ast" | |
| file = "crates/ruff_python_ast/src/str_prefix.rs" | |
| reason = "string prefix APIs intentionally provide a consistent interface across literal kinds" | |
| [[exclude]] | |
| crate = "ruff_python_literal" | |
| file = "crates/ruff_python_literal/src/escape.rs" | |
| reason = "string and bytes escape APIs intentionally provide a consistent interface" | |
| [[exclude]] | |
| crate = "ruff_python_literal" | |
| file = "crates/ruff_python_literal/src/cformat.rs" | |
| reason = "C-style string and bytes format APIs intentionally provide a consistent interface" | |
| # Preserve complete wrapper and DSL interfaces whose methods intentionally | |
| # mirror their underlying abstractions. | |
| [[exclude]] | |
| crate = "ruff_db" | |
| file = "crates/ruff_db/src/files/path.rs" | |
| reason = "file path variant accessors intentionally cover every backing path type" | |
| [[exclude]] | |
| crate = "ruff_db" | |
| file = "crates/ruff_db/src/system/path.rs" | |
| reason = "system path wrappers intentionally mirror the supported UTF-8 path API" | |
| [[exclude]] | |
| crate = "ruff_db" | |
| file = "crates/ruff_db/src/vendored/path.rs" | |
| reason = "vendored path wrappers intentionally mirror the supported UTF-8 path API" | |
| [[exclude]] | |
| crate = "ruff_db" | |
| file = "crates/ruff_db/src/system.rs" | |
| reason = "system abstractions intentionally expose a consistent interface across backends" | |
| [[exclude]] | |
| crate = "ruff_db" | |
| file = "crates/ruff_db/src/system/memory_fs.rs" | |
| reason = "the in-memory system intentionally mirrors the public filesystem interface" | |
| [[exclude]] | |
| crate = "ruff_db" | |
| file = "crates/ruff_db/src/system/walk_directory.rs" | |
| reason = "directory walking intentionally exposes a complete backend-neutral interface" | |
| [[exclude]] | |
| crate = "ruff_db" | |
| file = "crates/ruff_db/src/testing.rs" | |
| reason = "public test helpers are consumed by downstream crates with the testing feature" | |
| [[exclude]] | |
| crate = "ruff_db" | |
| file = "crates/ruff_db/src/vendored.rs" | |
| reason = "the vendored filesystem intentionally mirrors the public filesystem interface" | |
| [[exclude]] | |
| crate = "ruff_index" | |
| file = "crates/ruff_index/src/slice.rs" | |
| reason = "indexed slices intentionally mirror the supported slice API" | |
| [[exclude]] | |
| crate = "ruff_index" | |
| file = "crates/ruff_index/src/vec.rs" | |
| reason = "indexed vectors intentionally mirror the supported vector API" | |
| [[exclude]] | |
| crate = "ruff_linter" | |
| file = "crates/ruff_linter/src/source_kind.rs" | |
| reason = "source kind accessors intentionally cover every source representation" | |
| [[exclude]] | |
| crate = "ruff_linter" | |
| file = "crates/ruff_linter/src/test.rs" | |
| reason = "public test helpers are consumed by downstream crates with the testing feature" | |
| # Preserve interfaces that are consumed outside the native Rust workspace. | |
| [[exclude]] | |
| crate = "ruff_wasm" | |
| file = "crates/ruff_wasm/src/lib.rs" | |
| reason = "public exports are consumed by JavaScript" | |
| [[exclude]] | |
| crate = "ty_wasm" | |
| file = "crates/ty_wasm/src/lib.rs" | |
| reason = "public exports are consumed by JavaScript" | |
| # Keep generated and upstream-compatible APIs in sync with their sources. | |
| [[exclude]] | |
| crate = "ruff_notebook" | |
| file = "crates/ruff_notebook/src/schema.rs" | |
| reason = "generated from the Jupyter Notebook schema" | |
| [[exclude]] | |
| crate = "ruff_formatter" | |
| file = "crates/ruff_formatter/src/prelude.rs" | |
| reason = "the public formatter prelude intentionally provides a complete downstream import surface" | |
| [[exclude]] | |
| crate = "annotate_snippets" | |
| file = "crates/ruff_annotate_snippets/src/lib.rs" | |
| reason = "kept compatible with the upstream annotate-snippets crate" | |
| [[exclude]] | |
| crate = "annotate_snippets" | |
| file = "crates/ruff_annotate_snippets/src/level.rs" | |
| reason = "kept compatible with the upstream annotate-snippets crate" | |
| [[exclude]] | |
| crate = "annotate_snippets" | |
| file = "crates/ruff_annotate_snippets/src/renderer/mod.rs" | |
| reason = "kept compatible with the upstream annotate-snippets crate" | |
| [[exclude]] | |
| crate = "annotate_snippets" | |
| module = "renderer::render" | |
| reason = "kept compatible with the upstream annotate-snippets crate" | |
| [[exclude]] | |
| crate = "annotate_snippets" | |
| module = "renderer::source_map" | |
| reason = "kept compatible with the upstream annotate-snippets crate" | |
| [[exclude]] | |
| crate = "annotate_snippets" | |
| module = "renderer::styled_buffer" | |
| reason = "kept compatible with the upstream annotate-snippets crate" | |
| [[exclude]] | |
| crate = "annotate_snippets" | |
| file = "crates/ruff_annotate_snippets/src/snippet.rs" | |
| reason = "kept compatible with the upstream annotate-snippets crate" | |
| [[exclude]] | |
| crate = "unicode_names2" | |
| file = "crates/ruff_unicode_names2/src/lib.rs" | |
| reason = "kept compatible with the upstream unicode_names2 crate" | |
| [[exclude]] | |
| crate = "unicode_names2_generator" | |
| file = "crates/ruff_unicode_names2_generator/src/lib.rs" | |
| reason = "kept compatible with the upstream unicode_names2_generator crate" |