How deolinjaffens/datarecon works
DataRecon is a desktop application for comparing two CSV, XLSX, or JSON files. The user selects both files, chooses matching keys (or uses all common columns), runs a comparison, then reviews schema differences and record classifications in column or JSON form. The service routes each input to its format-specific loader and invokes the comparison domain, which normalizes columns, pairs records, and classifies differences. UI excerpts are partial; the graph omits uncertain internal UI wiring and shows only documented or sampled interactions.
Main entry points: main_window.py Main window · comparison_service.py Comparison service · comparison.py Comparison engine · csv_processor.py CSV reader
Components 15
Desktop UI
- Main window
datarecon/ui/main_window.py - Key selection
datarecon/ui/main_window.py - Schema tab
datarecon/ui/main_window.py - Record views
datarecon/ui/main_window.py
Application
- Comparison service
datarecon/application/comparison_service.py
File Readers
- CSV reader
datarecon/infrastructure/csv_processor.py - Excel reader
datarecon/infrastructure/excel_processor.py - JSON reader
datarecon/infrastructure/json_processor.py
Comparison Domain
- Comparison engine
datarecon/domain/comparison.py - Schema analysis
datarecon/domain/comparison.py - Record matching
datarecon/domain/comparison.py - Record classification
datarecon/domain/comparison.py
Other components
- User
- File A
- File B
Connections 29
- User → Main window: uses
- File A → Main window: selects
- File B → Main window: selects
- Main window → Key selection: configures
- Main window → Comparison service: loads files
- Comparison service → CSV reader: dispatches CSV
- Comparison service → Excel reader: dispatches XLSX
- Comparison service → JSON reader: dispatches JSON
- File A → CSV reader: read by
- File B → CSV reader: read by
- File A → Excel reader: read by
- File B → Excel reader: read by
- File A → JSON reader: read by
- File B → JSON reader: read by
- CSV reader → Comparison service: returns records
- Excel reader → Comparison service: returns records
- JSON reader → Comparison service: returns records
- Main window → Comparison service: runs comparison
- Comparison service → Comparison engine: compares datasets
- Key selection → Main window: provides keys
- Comparison engine → Schema analysis: derives columns
- Comparison engine → Record matching: pairs records
- Record matching → Record classification: classifies pairs
- Comparison engine → Record classification: collects unmatched
- Schema analysis → Main window: returns schema
- Record classification → Main window: returns results
- Main window → Schema tab: renders
- Main window → Record views: renders
- User → Record views: chooses format