pub mod acceleration;
pub mod analysis;
pub mod api;
pub mod core;
pub mod engines;
pub mod parsers;
#[cfg(feature = "cli")]
pub mod output;
pub mod serde_helpers;
pub mod stats;
pub mod types;
#[cfg(feature = "database")]
pub mod database;
#[cfg(feature = "python")]
pub mod python;
pub use api::{
EngineType, Profiler, ProfilerConfig, quick_quality_check, quick_quality_check_source,
};
pub use api::partial::{infer_schema, quick_row_count};
pub use types::{ColumnSchema, CountMethod, RowCountEstimate, SchemaResult};
#[cfg(feature = "async-streaming")]
pub use api::partial::{
infer_schema_async, infer_schema_stream, quick_row_count_async, quick_row_count_stream,
};
pub use core::errors::DataProfilerError;
pub use core::sampling::{ChunkSize, SamplingStrategy};
pub use parsers::CsvDiagnostics;
pub use core::config::{DataprofConfig, DataprofConfigBuilder};
pub use core::stop_condition::{StopCondition, StopEvaluator};
pub use core::validation::{InputValidator, ValidationError};
pub use core::progress::{ProgressEvent, ProgressSink};
#[cfg(feature = "async-streaming")]
pub use engines::streaming::{
AsyncDataSource, AsyncSourceInfo, AsyncStreamingProfiler, BytesSource,
};
#[cfg(feature = "parquet-async")]
pub use engines::streaming::ReqwestSource;
#[cfg(feature = "datafusion")]
pub use engines::DataFusionLoader;
pub use types::{
AccuracyMetrics, ColumnProfile, ColumnStats, CompletenessMetrics, ConsistencyMetrics,
DataFrameLibrary, DataSource, DataType, ExecutionMetadata, FileFormat, MetricConfidence,
MetricPack, OutputFormat, Pattern, ProfileReport, QualityAssessment, QualityDimension,
QualityMetrics, QueryEngine, TimelinessMetrics, TruncationReason, UniquenessMetrics,
};
pub use parsers::csv::{CsvParserConfig, analyze_csv_file, analyze_csv_from_reader};
pub use parsers::json::{
JsonFormat, JsonParserConfig, analyze_json_file, analyze_json_from_reader,
};
pub use parsers::parquet::{
ParquetConfig, analyze_parquet_with_config, analyze_parquet_with_quality, is_parquet_file,
};
pub use analysis::{MetricsCalculator, analyze_column_fast, detect_patterns, infer_type};
pub use stats::{calculate_numeric_stats, calculate_text_stats};
#[cfg(feature = "database")]
pub use database::{
DatabaseConfig, DatabaseConnector, DatabaseCredentials, MySqlConnector, PostgresConnector,
RetryConfig, SamplingConfig, SamplingStrategy as DbSamplingStrategy, SqliteConnector,
SslConfig, analyze_database, create_connector,
};
pub fn check_memory_leaks() -> String {
use crate::core::MemoryTracker;
let global_tracker = MemoryTracker::default();
global_tracker.report_leaks()
}
pub fn get_memory_usage_stats() -> (usize, usize, usize) {
use crate::core::MemoryTracker;
let global_tracker = MemoryTracker::default();
global_tracker.get_memory_stats()
}