Metadata-Version: 2.1
Name: tabpro
Version: 0.5.28
Summary: A table data processor
Home-page: https://github.com/akivajp/tabpro
License: MIT
Author: Akiva Miura
Author-email: akiva.miura@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: icecream (>=2.1.3,<3.0.0)
Requires-Dist: logzero (>=1.7.0,<2.0.0)
Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
Requires-Dist: pandas (>=2.2.3,<3.0.0)
Requires-Dist: pytest (>=8.3.5,<9.0.0)
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
Requires-Dist: rich (>=13.9.4,<14.0.0)
Requires-Dist: tqdm (>=4.67.0,<5.0.0)
Requires-Dist: xlsxwriter (>=3.2.0,<4.0.0)
Project-URL: Repository, https://github.com/akivajp/tabpro
Description-Content-Type: text/markdown

# TabPro - Table Data Processor

TabPro is a Python-based tool for efficient processing of tabular data.

## Features

### Data Format Support
- CSV
- TSV
- Excel
- JSON
- JSON Lines
- Bidirectional conversion between all supported formats

### Table Operations
1. **Table Conversion**
   - Convert between different formats
   - Customize output format settings
   - Filter and transform data

2. **Table Merging**
   - Merge tables based on common columns
   - Handle multiple table merging
   - Support for staging and version control

3. **Table Aggregation**
   - Data aggregation based on grouping
   - Statistical calculations
   - Duplicate detection

4. **Table Sorting**
   - Sort by multiple columns
   - Custom sort order

5. **Table Comparison**
   - Detect differences between tables
   - Data consistency checking
   - Detailed comparison reports

## Installation

### Prerequisites
- Python 3.10 or higher
- pip (Python package installer)

### Installation
```bash
pip install tabpro
```

## CLI Usage

### Basic Command
```bash
tabpro [command] [options]
```

### Available Commands

#### Table Conversion (convert)
```bash
tabpro convert [options] <input_file1> [<input_file2>...] --output <output_file>
# or
tabpro-convert ...
convert-tables ...
```

Options:
- `--output-file-filtered-out`, `--output-filtered-out`, `-f`: Path to the output file for filtered out rows
- `--config`, `-c`: Path to the configuration file
- `--pick-columns`, `--pick`: Pick specific columns
- `--do-actions`, `--actions`, `--do`: Actions to perform on the data
- `--ignore-file-rows`, `--ignore-rows`, `--ignore`: Ignore specific rows
- `--no-header`: Treat CSV/TSV data as having no header row

#### Table Merging (merge)
```bash
tabpro merge [options] --previous <previous_file1> [<previous_file2> ...] --new <modification_file1> [<modification_file2> ...] --keys <key1> [<key2> ...]
# or 
tabpro-merge ...
merge-tables ...
```

Options:
- `--allow-duplicate-conventional-keys`: Allow duplicate keys in previous files
- `--allow-duplicate-modification-keys`: Allow duplicate keys in modification files
- `--output-base-data-file`: Path to output base data file
- `--output-modified-data-file`: Path to output modified data file
- `--output-remaining-data-file`: Path to output remaining data file
- `--merge-fields`: Fields to merge
- `--merge-staging`: Merge staging fields from modification files
- `--use-staging`: Use staging fields files

#### Table Aggregation (aggregate)
```bash
tabpro aggregate [options] <input_file> --output <aggregated_json_path>
# or
tabpro-aggregate ...
aggregate-tables ...
```

Options:
- `--keys-to-show-duplicates`: Keys to show duplicates
- `--keys-to-show-all-count`: Keys to show all count
- `--keys-to-expand`: Keys to expand
- `--show-count-threshold`, `--count-threshold`, `-C`: Show count threshold (default: 50)
- `--show-count-max-length`, `--count-max-length`, `-L`: Show count max length (default: 100)

#### Table Sorting (sort)
```bash
tabpro sort [options] <input_file1> [<input_file2> ...] --sort-keys <key1> [<key2> ...] --output <output_file>
# or
tabpro-sort ...
sort-tables ...
```

Options:
- `--output-file`, `--output`, `-O`: Path to output file
- `--reverse`, `-R`: Reverse the sort order

#### Table Comparison (compare)
```bash
tabpro compare [options] <input_file1> <input_file2> --query <query_key1> [<query_key2> ...] --output <output_file>
# or
tabpro-compare ...
tabpro-diff ...
compare-tables ...
```

Options:
- `--compare-keys`, `--compare`, `-C`: Keys for comparison

### Common Options
- `--verbose`, `-v`: Enable verbose logging
- `--version`, `-V`: Show version information

## Features
- Simple and user-friendly command-line interface
- Flexible data processing options
- Handles large datasets efficiently
- Extensible design

