CLI tool to normalize tabular data and generate schemas
Project description
Data Normalizer
Data Normalizer is a Python CLI tool for cleaning and normalizing tabular data from CSV or Excel files.
It profiles columns, infers data types, normalizes values (including mixed date formats), and generates:
- Cleaned CSV output
- JSON records
- SQL
CREATE TABLEschemas - JSON Schema definitions
- A lightweight profiling report
The tool is designed to be deterministic, scriptable, and easy to integrate into data pipelines.
Usage
Run the CLI on a CSV or Excel file:
data-normalizer path/to/file.csv [OPTIONS]
output/<input_name>OUT_<YYYY-MM-DD>/
If `--out` is provided, outputs are written to:
output/<out>/<input_name>OUT_<YYYY-MM-DD>/
Each run folder contains:
- Normalized CSV data
- JSON records
- SQL schema
- JSON schema
- Profiling report
## Why this project exists
Real-world tabular data is often messy, inconsistent, and hard to load directly into databases.
This tool provides a repeatable way to normalize datasets and generate reliable schemas before ingestion.
### CLI Options
input_path
Path to the input `.csv` or `.xlsx/.xls` file.
--sheet
Excel sheet name or index (only for Excel files).
Examples: Sheet1, 0
--preview-rows
Number of rows to preview in the terminal (0–50).
Default: 5
--table
SQL table name used in the generated CREATE TABLE statement.
Default: normalized_data
--show-schema / --no-show-schema
Print generated SQL and JSON schemas to the terminal.
Default: disabled
--export
Write output files to disk.
If not provided, no files are written.
--out
Subfolder inside `./output` used to group runs.
Example: results
Outputs will be written to:
output/results/<input_name>OUT_<YYYY-MM-DD>/
--overwrite / --no-overwrite
Control whether existing run folders can be reused.
Default: overwrite enabled
### Overwrite behavior
By default, outputs overwrite files in the run folder if it already exists.
Use --no-overwrite to prevent replacing existing results.
If the output folder already exists and overwrite is disabled, the command exits with an error.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tj_data_normalizer-0.1.5.tar.gz.
File metadata
- Download URL: tj_data_normalizer-0.1.5.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1413cdd26023a3b5a5da63fff794cae89abf9285acf54809c0ff65bd0f6688c4
|
|
| MD5 |
7c913a2b82b46a0ae72c0c396bb2df80
|
|
| BLAKE2b-256 |
538e00f9540763806484603fc4eafed7d6bd0c5a1cb350bf63d99e39611aae32
|
File details
Details for the file tj_data_normalizer-0.1.5-py3-none-any.whl.
File metadata
- Download URL: tj_data_normalizer-0.1.5-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ada2dfe09d3e8809f8ac02ae96fe3c9898b2149d2c2afd095b550c2ca6c3e4d
|
|
| MD5 |
fe2880aa8eb71d08c6d93888cbd552bd
|
|
| BLAKE2b-256 |
1515b931b5b55314a7ca146f6aa895e33f9995edda6aa012a2727bc0d8c82827
|