Skip to main content

cutover

Prove that nothing changed. Compare two tables before a migration's consumers are repointed, and get the two numbers that end the argument: 0/0 mismatches across N columns and K/K partitions with an identical fingerprint.

pip install cutover
cutover old.parquet new.parquet --key id --partition date --tol amount=0.01 --html report.html
import cutover

report = cutover.compare(old, new, key=["id"], partition="date", tolerance={"amount": 0.01})
report.passed  # True / False
report.reasons  # [] or ["rows_only_in_old", "column_mismatch:amount", ...]
open("report.html", "w").write(report.to_html())

Sources: .parquet, .csv, duckdb:///file.db?table=t, sqlite:///file.db?table=t, postgres://…?table=t (via the DuckDB postgres extension), or a pyarrow.Table / pandas.DataFrame / polars.DataFrame. pip install cutover[bigquery] adds cutover.from_bigquery(sql).

Exit codes: 0 PASS · 1 FAIL · 2 error. Apache-2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cutover-0.1.0.tar.gz (109.0 kB view details)

Uploaded Source

Built Distribution

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

cutover-0.1.0-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file cutover-0.1.0.tar.gz.

File metadata

  • Download URL: cutover-0.1.0.tar.gz
  • Upload date:
  • Size: 109.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cutover-0.1.0.tar.gz
Algorithm Hash digest
SHA256 947249974f604c0e0454917e46065e285b13cab63d55940a22bba2100677e53e
MD5 20df638e74da7d7e5cd5161def60f316
BLAKE2b-256 6587cb27b4751301056e6c58c54f850c07199083e3866c6ff04c17e285f799ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutover-0.1.0.tar.gz:

Publisher: publish.yml on sandovabarbora/cutover

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cutover-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cutover-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cutover-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9ea537d6f3a78590cdef522f92afb881bf40d4759e178575c754d01c9e9fcbd
MD5 8a8abc75b48d1a441e275641f2034480
BLAKE2b-256 cbe002cbf7b081fe0cd39062f6b6d30d4861ba64a55fc9c8000f775dca526f38

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutover-0.1.0-py3-none-any.whl:

Publisher: publish.yml on sandovabarbora/cutover

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page