Skip to main content

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 TABLE schemas
  • 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

tj_data_normalizer-0.1.5.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tj_data_normalizer-0.1.5-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

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

Hashes for tj_data_normalizer-0.1.5.tar.gz
Algorithm Hash digest
SHA256 1413cdd26023a3b5a5da63fff794cae89abf9285acf54809c0ff65bd0f6688c4
MD5 7c913a2b82b46a0ae72c0c396bb2df80
BLAKE2b-256 538e00f9540763806484603fc4eafed7d6bd0c5a1cb350bf63d99e39611aae32

See more details on using hashes here.

File details

Details for the file tj_data_normalizer-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for tj_data_normalizer-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8ada2dfe09d3e8809f8ac02ae96fe3c9898b2149d2c2afd095b550c2ca6c3e4d
MD5 fe2880aa8eb71d08c6d93888cbd552bd
BLAKE2b-256 1515b931b5b55314a7ca146f6aa895e33f9995edda6aa012a2727bc0d8c82827

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page