Metadata-Version: 2.4
Name: tablediff-cli
Version: 0.2.2
Summary: CLI tool for data diffing between two tables
Author-email: Oleg Agapov <oleg.agapov.ua@gmail.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/oleg-agapov/tablediff
Keywords: data diff,table diff,sql diff,data diffing
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Topic :: Database
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich
Requires-Dist: reladiff
Provides-Extra: duckdb
Requires-Dist: reladiff[duckdb]; extra == "duckdb"
Provides-Extra: mysql
Requires-Dist: reladiff[mysql]; extra == "mysql"
Provides-Extra: postgresql
Requires-Dist: reladiff[postgresql]; extra == "postgresql"
Provides-Extra: snowflake
Requires-Dist: reladiff[snowflake]; extra == "snowflake"
Requires-Dist: snowflake-connector-python[secure-local-storage]; extra == "snowflake"
Provides-Extra: clickhouse
Requires-Dist: reladiff[clickhouse]; extra == "clickhouse"
Provides-Extra: presto
Requires-Dist: reladiff[presto]; extra == "presto"
Provides-Extra: all
Requires-Dist: reladiff[all]; extra == "all"
Requires-Dist: snowflake-connector-python[secure-local-storage]; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: duckdb; extra == "dev"
Dynamic: license-file

# tablediff
CLI tool for data diffing between two tables

## Local development

```bash
# Setup virtual environment
uv sync --extra dev
source .venv/bin/activate

# Run tests
pytest

# Run table diffing (DuckDB)
tablediff table_a table_b --pk id --conn duckdb://./sample.duckdb
```

## Generating sample DuckDB for local testing

To generate local DuckDB database with the same cases as in /tests run:

```bash
python generate-sample.py --db-path sample.duckdb
```

Alternatively, use Python scripts:

```
python scripts/generate_duckdb_test_data.py \
  --db-path sample.duckdb \
  --prod-rows 23753 \
  --dev-remove-rows 342 \
  --dev-add-rows 30 \
  --dev-null-status-rows 578
```

And then:

```
tablediff users_dev users_prod --pk id --conn duckdb://./sample.duckdb
```

# TODO before PyPi release

- [ ] Add proper README
- [ ] Add pre-commit hooks (check vesion bump?)
- [x] Add CI/CD for bublishing new releases

# TODO Future roadmap

- [ ] Add tests
- [ ] Add dbt support

