Beautiful CLI tools for CSV analysis, validation, and data cleaning with Rich-powered output
Installation β’ Quick Start β’ Features β’ Documentation
pip install csvisegit clone https://github.com/rawsabsaid/csvise-cli-tool.git
cd csvise-cli-tool
pip install -e .# Beautiful table display with Rich formatting
csvise display data.csv
# Classic plain text output
csvise display data.csv --classic# Comprehensive analysis
csvise analyze data.csv
# Detect outliers and correlations
csvise analyze data.csv --outliers --correlations# Remove duplicates and normalize whitespace
csvise clean data.csv --remove-duplicates --normalize-whitespace --output cleaned.csvBeautiful CSV display with automatic delimiter detection and data validation:
csvise display FILENAME [OPTIONS]Options:
--display: Display formatted table output--debug: Enable debug output for troubleshooting-v: Verbose mode with detailed operation logs-dl, --delimiter DELIMITER: Set custom delimiter-stf, --save_to_file OUTPUT: Save output to file--rich: Use Rich formatting (default)--classic: Use classic plain text formatting
Comprehensive data analysis with statistical insights:
csvise analyze FILENAME [OPTIONS]Options:
--columns, -c: Analyze specific columns (comma-separated)--correlations: Show correlation matrix for numeric columns--outliers: Detect outliers in numeric columns--distribution: Show value distribution for categorical columns-v: Verbose mode--classic: Use classic plain text formatting
Powerful data cleaning and transformation capabilities:
csvise clean FILENAME [OPTIONS]Options:
--remove-duplicates: Remove duplicate rows--normalize-whitespace: Normalize whitespace in all columns--standardize-case: Standardize text case (upper, lower, title, sentence)--fill-missing: Fill missing values (empty, mode, mean, median, custom)--fill-value: Custom value for missing data--remove-empty-rows: Remove rows with high empty cell percentage--output, -o: Output file for cleaned data-v: Verbose mode--classic: Use classic plain text formatting
CSVise features beautiful Rich-powered CLI output:
- Color-coded Tables: Data types are color-coded (integers in green, floats in yellow, booleans in magenta)
- Information Panels: File statistics and validation issues in styled panels
- Progress Indicators: Visual feedback during data processing
- Enhanced Messages: Beautiful error and success message formatting
- Type Highlighting: Automatic highlighting of data type mismatches
Modes:
- Rich Mode (
--rich): Enhanced visual experience with colors and panels [default] - Classic Mode (
--classic): Traditional plain text output for compatibility
--help: Show help and documentation--version: Display current version
csvise display data.csv --delimiter ";"Customize default behavior with csvtoolsConfig.json:
{
"additional_delimiters": ["|", ";", "###"],
"start_index": 1,
"num_rows_to_print": null,
"display_column_lines": true,
"display_row_lines": false,
"check_type_mismatches": true,
"string_case": "default"
}# Beautiful table with validation
csvise display data.csv --debug
# Analysis with correlations
csvise analyze data.csv --correlations
# Clean data with progress feedback
csvise clean data.csv --remove-duplicates --normalize-whitespace# Plain text output for scripts
csvise display data.csv --classic --debug
# Classic analysis output
csvise analyze data.csv --classic --outliers# Comprehensive analysis
csvise analyze data.csv --correlations
# Analyze specific columns
csvise analyze data.csv --columns "Age,Salary,Department"
# Detect outliers
csvise analyze data.csv --outliers
# Show distributions
csvise analyze data.csv --distribution# Basic cleaning
csvise clean data.csv --remove-duplicates --normalize-whitespace
# Advanced cleaning pipeline
csvise clean data.csv \
--remove-duplicates \
--normalize-whitespace \
--standardize-case title \
--fill-missing mode \
--output cleaned_data.csv
# Remove empty rows
csvise clean data.csv --remove-empty-rows 0.5 --output cleaned.csv[VERBOSE] Detecting delimiter from sample row: Name,Age,Occupation
[VERBOSE] Delimiter detected: ,
[VERBOSE] Detected columns: ['Name', 'Age', 'Occupation']
| Name | Age | Occupation
--------------+-----------+-------------
1 | Alice | 30 | Engineer
2 | Bob | 25 | Designer
3 | Charlie | Manager |
4 | Diana | 28 | 7
5 | Edward | 40.5 | Developer
6 | Frank | 20 | Student
7 | George | 45 | Retired
ROWS WITH INCORRECT LENGTH:
Row 3 is of length 2, expected 3
ROWS WITH POTENTIAL TYPE MISMATCHES:
Row 3, Column 2: Found str, expected int
Row 4, Column 3: Found int, expected str
Total number of rows with incorrect length: 1
Total number of type mismatches: 2
git clone https://github.com/rawsabsaid/csvise-cli-tool.git
cd csvise-cli-tool
pip install -e ".[dev]"pytest tests/# Format code
black csvtools/
# Check linting
flake8 csvtools/
# Type checking
mypy csvtools/python -m build
twine check dist/*This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ by Rawsab Said
