1pub mod acceleration;
3pub mod analysis;
4pub mod api;
5pub mod core;
6pub mod engines;
7pub mod parsers;
8
9pub mod output;
11pub mod stats;
12pub mod types;
13pub mod utils;
14
15#[cfg(feature = "database")]
17pub mod database;
18
19#[cfg(feature = "python")]
21pub mod python;
22
23#[cfg(feature = "arrow")]
25pub use engines::columnar::ArrowProfiler;
26
27pub use api::{quick_quality_check, stream_profile, DataProfiler};
29pub use core::batch::{BatchConfig, BatchProcessor, BatchResult, BatchSummary};
30pub use core::errors::{DataProfilerError, ErrorSeverity};
31pub use core::robust_csv::CsvDiagnostics;
32pub use core::sampling::{ChunkSize, SamplingStrategy};
33
34pub use core::config::DataprofConfig;
36pub use core::exit_codes;
37pub use core::validation::{InputValidator, ValidationError};
38
39pub use analysis::MlReadinessEngine;
41pub use engines::streaming::ProgressInfo;
42pub use engines::{AdaptiveProfiler, EnginePerformance, ProcessingType};
43
44pub use output::html::generate_html_report;
46pub use types::{
47 ColumnProfile, ColumnStats, DataType, FileInfo, Pattern, QualityIssue, QualityReport, ScanInfo,
48};
49pub use utils::quality::QualityChecker;
50pub use utils::sampler::{SampleInfo, Sampler};
51
52pub use parsers::csv::{
54 analyze_csv, analyze_csv_fast, analyze_csv_robust, analyze_csv_with_sampling,
55};
56pub use parsers::json::{analyze_json, analyze_json_with_quality};
57
58pub use analysis::{analyze_column_fast, detect_patterns, infer_type, MlReadinessScore};
60pub use stats::{calculate_numeric_stats, calculate_text_stats};
61
62#[cfg(feature = "database")]
64pub use database::{
65 assess_ml_readiness, create_connector, profile_database, profile_database_with_ml,
66 DatabaseConfig, DatabaseConnector, DatabaseCredentials, DuckDbConnector, MLReadinessScore,
67 MySqlConnector, PostgresConnector, RetryConfig, SamplingConfig,
68 SamplingStrategy as DbSamplingStrategy, SqliteConnector, SslConfig,
69};
70
71pub fn check_memory_leaks() -> String {
73 use crate::core::MemoryTracker;
74
75 let global_tracker = MemoryTracker::default();
76 global_tracker.report_leaks()
77}
78
79pub fn get_memory_usage_stats() -> (usize, usize, usize) {
81 use crate::core::MemoryTracker;
82
83 let global_tracker = MemoryTracker::default();
84 global_tracker.get_memory_stats()
85}