ARCHITECTURE
⇱
The Plugin Orchestrator
DATADOC operates as an intelligent orchestrator. It doesn't modify your data haphazardly. Instead, it passes your dataset through an isolated chain of plugins in a strict priority order. Each plugin analyzes the data, computes optimal transformations, and builds a reproducible execution graph.
flowchart TD
A["Raw Dataset CSV"] --> B("DATADOC Engine")
subgraph PluginPipeline ["Priority-Ordered Plugin Pipeline"]
direction TB
P1["10: MissingValuePlugin
Imputes nulls"]
P2["20: OutlierPlugin
Clips via IQR"]
P3["30: DatetimePlugin
Extracts components"]
P4["40: CategoricalEncoder
One-Hot Encodings"]
P5["45: ScalingPlugin
Standard Scaling"]
P1 --> P2 --> P3 --> P4 --> P5
end
B --> PluginPipeline
PluginPipeline --> C{"Output Formats"}
C -->|"datadoc engineer"| D["Cleaned CSV"]
C -->|"datadoc pipeline"| E["Deterministic Python Script"]
C -->|"datadoc analyze"| F["Terminal Report"]
How Plugins Work
Every plugin implements a strict BasePlugin interface ensuring absolute safety and determinism:
- analyze(): Evaluates the column to check if the plugin's logic applies.
- apply(): Applies the transformation mathematically and efficiently using Polars.
- rollback(): Safely undoes the transformation if needed.
- generate_code(): Generates equivalent Python source code for pipeline exportation.