dataprof/
lib.rs

1// New v0.3.0 modular architecture
2pub mod acceleration;
3pub mod analysis;
4pub mod api;
5pub mod core;
6pub mod engines;
7pub mod parsers;
8
9// Organized modules
10pub mod output;
11pub mod stats;
12pub mod types;
13pub mod utils;
14
15// Database connectors (default: postgres, mysql, sqlite)
16#[cfg(feature = "database")]
17pub mod database;
18
19// Python bindings (optional)
20#[cfg(feature = "python")]
21pub mod python;
22
23// Apache Arrow integration (optional)
24#[cfg(feature = "arrow")]
25pub use engines::columnar::ArrowProfiler;
26
27// v0.3.0 public API - main exports
28pub 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
34// CLI-specific exports
35pub use core::config::DataprofConfig;
36pub use core::exit_codes;
37pub use core::validation::{InputValidator, ValidationError};
38
39// ML Analysis exports
40pub use analysis::MlReadinessEngine;
41pub use engines::streaming::ProgressInfo;
42pub use engines::{AdaptiveProfiler, EnginePerformance, ProcessingType};
43
44// Re-exports for backward compatibility
45pub 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
52// Re-export moved parsing functions for API compatibility
53pub 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
58// Re-export moved analysis functions for API compatibility
59pub use analysis::{analyze_column_fast, detect_patterns, infer_type, MlReadinessScore};
60pub use stats::{calculate_numeric_stats, calculate_text_stats};
61
62// Database connectors re-exports (default: postgres, mysql, sqlite)
63#[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
71/// Global memory leak detection utility
72pub fn check_memory_leaks() -> String {
73    use crate::core::MemoryTracker;
74
75    let global_tracker = MemoryTracker::default();
76    global_tracker.report_leaks()
77}
78
79/// Get global memory usage statistics
80pub 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}