1#![allow(clippy::redundant_pub_crate)]
5#![allow(clippy::must_use_candidate)]
8#![allow(clippy::missing_errors_doc)]
11#![allow(clippy::missing_panics_doc)]
12
13pub mod cli_output;
14pub mod config;
15pub mod config_gen;
16pub mod defaults;
17pub mod gate_config;
18pub mod py_imports;
19pub mod py_metrics;
20pub mod rule_defs;
21pub mod violation;
22
23pub mod check_cache;
24pub mod check_universe_cache;
25pub mod counts;
26pub mod discovery;
27pub mod duplication;
28pub mod graph;
29pub mod layout_cycles;
30mod macro_expr_parser;
31pub mod minhash;
32pub mod parsing;
33pub mod stats;
34pub mod stats_detailed;
35pub mod symbol_mv;
36pub mod test_refs;
37pub mod test_section_config;
38pub mod units;
39
40pub mod rust_counts;
41pub mod rust_fn_metrics;
42pub mod rust_graph;
43pub mod rust_include;
44pub mod rust_parsing;
45pub mod rust_test_refs;
46pub mod rust_units;
47
48pub mod layout_layers;
49pub mod layout_output;
50pub mod shrink;
51
52pub(crate) mod symbol_mv_support;
53
54#[cfg(test)]
55pub mod test_utils;
56
57pub use cli_output::print_dry_results;
58pub use config::{Config, ConfigError, ConfigLanguage, is_similar};
59pub use counts::analyze_file;
60pub use counts::analyze_file_with_statement_count;
61pub use defaults::default_config_toml;
62pub use discovery::{
63 Language, SourceFile, find_python_files, find_rust_files, find_source_files,
64 find_source_files_with_ignore, gather_files_by_lang, normalize_ignore_prefixes,
65};
66pub use duplication::{
67 CodeChunk, DuplicateCluster, DuplicatePair, DuplicationConfig, MinHashSignature,
68 cluster_duplicates, cluster_duplicates_from_chunks, detect_duplicates,
69 detect_duplicates_from_chunks, extract_chunks_for_duplication,
70 extract_rust_chunks_for_duplication,
71};
72pub use gate_config::GateConfig;
73pub use test_section_config::TestSectionConfig;
74pub use graph::{
75 CycleInfo, DependencyGraph, ModuleGraphMetrics, analyze_graph, build_dependency_graph,
76 compute_cyclomatic_complexity,
77};
78pub use layout_cycles::{CycleBreakSuggestion, LayoutCycleAnalysis, analyze_cycles};
79pub use layout_layers::{LayerInfo, compute_layers};
80pub use layout_output::{LayoutAnalysis, LayoutMetrics, WhatIfAnalysis, format_markdown};
81pub use parsing::{ParseError, ParsedFile, create_parser, parse_file, parse_files};
82pub use py_metrics::{
83 ClassMetrics, FileMetrics, FunctionMetrics, compute_class_metrics, compute_file_metrics,
84 compute_function_metrics,
85};
86pub use stats::{
87 METRICS, MetricDef, MetricScope, MetricStats, PercentileSummary, compute_summaries,
88 format_stats_table, generate_config_toml, get_metric_def,
89};
90pub use stats_detailed::{
91 UnitMetrics, collect_detailed_py, collect_detailed_rs, format_detailed_table, truncate,
92};
93pub use test_refs::{
94 CodeDefinition, TestRefAnalysis, analyze_test_refs, analyze_test_refs_no_map,
95 analyze_test_refs_quick, build_name_file_map, is_in_test_directory, is_test_file,
96 test_functions_in,
97};
98pub use units::count_code_units;
99pub use units::{CodeUnit, CodeUnitKind, extract_code_units};
100pub use violation::{Violation, ViolationBuilder};
101
102pub use rust_counts::{analyze_rust_file, analyze_rust_file_include_rollup};
103pub use rust_graph::{build_include_graph, expand_rust_files, IncludeGraph};
104pub use rust_fn_metrics::{
105 RustFileMetrics, RustFunctionMetrics, RustTypeMetrics, compute_rust_file_metrics,
106 compute_rust_function_metrics, count_non_doc_attrs,
107};
108pub use rust_graph::build_rust_dependency_graph;
109pub use rust_parsing::{ParsedRustFile, RustParseError, parse_rust_file, parse_rust_files};
110pub use rust_test_refs::{
111 RustCodeDefinition, RustTestRefAnalysis, analyze_rust_test_refs, is_binary_entry_point,
112 is_rust_test_file, rust_test_functions_in,
113};
114pub use rust_units::{RustCodeUnit, extract_rust_code_units};
115
116pub use rule_defs::{Applicability, RULES, Rule, RuleCategory, rules_for_python, rules_for_rust};
117
118pub use shrink::{
119 GlobalMetrics, ShrinkState, ShrinkTarget, ShrinkViolation, ShrinkViolations,
120 check_shrink_constraints, parse_target_arg,
121};