Prove you can leave.
An exit exercise for your data platform, run inside your own accounts.
canot.io · Documentation · Measured discrepancies · Try it · Why
▶ Try it
uvx canot demo
No account, no data: Canot generates TPC-H, the standard database benchmark (8 tables, 22 queries, up to 1 GB of data at scale factor 1), copies it to Apache Iceberg, compares everything, replays TPC-H queries on both sides and writes a signed evidence report. A 100 MB version by default (a few seconds); uvx canot demo --sf 1 runs scale factor 1, about 1 GB (around 20 seconds on a laptop). The command prints the two commands it runs (canot demo-data, then canot drill): copy them to change the destination, for example uvx canot demo aws:eu-west-3 --bucket MY-BUCKET.
Result: 7 tables out of 8 with identical content, 3 queries out of 4 returning the same result. The discrepancy comes from a nanosecond timestamp column added by Canot: Iceberg v2 reduces it to microsecond precision. This is the kind of discrepancy you want to find before you leave.
▶ Connectors
canot connectors lists them with what each can do (inventory, export, evidence) and whether it has been validated.
| Connector | Source URL | Status |
|---|---|---|
| Snowflake | snowflake://ACCOUNT/DATABASE |
available, tested: full scan, copy, comparison, query replay |
| BigQuery | bigquery://PROJECT/DATASET |
available, tested: full scan, copy, comparison, query replay |
| dbt | dbt://PROJECT_PATH |
available, tested: scan of the project files, replay of the models (canot replay-dbt) |
| DuckDB | file.duckdb |
available, tested: light scan, copy, comparison |
| Databricks | databricks://HOST/HTTP_PATH?catalog=… |
written, not yet validated on a real account |
| Microsoft Fabric / Azure Synapse, Amazon Redshift, Teradata, Oracle, SAP Datasphere, ClickHouse | on the roadmap, no connector yet |
Running Canot on a platform without a connector prints how to ask for it. A connector is written and validated with you, on your own account: tell us what you run.
🧭 Why
| The imbalance | The pressure | The hidden risk |
| Snowflake and Databricks offer free tools to move in. Nobody offers the tool that checks the way out. | DORA requires financial entities to have a tested exit plan. In France, data transfer when switching cloud providers already costs €0; on 12 Jan 2027, all switching charges disappear (EU Data Act). | The work remains: duration, discrepancies and what does not move as-is stay unknown until someone actually runs the exit. |
Canot runs the rehearsal. You stay with your provider.
▶ On your data
uvx canot scan "snowflake://MY_ACCOUNT/MY_DATABASE?user=MY_USER" # read-only assessment
uvx canot drill "snowflake://MY_ACCOUNT/MY_DATABASE?user=MY_USER" ./iceberg # full exit exercise, to a local folder
Exit to your own infrastructure (folder, NAS, self-hosted S3 storage), commands, permissions and agent access (MCP): see the documentation. uvx canot connectors lists the supported platforms, what Canot can do on each (inventory, export, evidence) and whether the connector is tested. Canot is not a certification: it produces a dated record of measurements on the scope you ran. The website, canot.io, explains the rest.
Apache-2.0 · No trackers, no telemetry · Security policy · q4o
Metadata
Release files for canot 0.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| canot-0.3.5.tar.gz | 1.1 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| canot-0.3.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / canot-0.3.5.tar.gz
| Download URL | canot-0.3.5.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0e34813a32cfdcf4f3cf2e2a574ccf8f54302a023269871d0d42c8230390094
|
|
BLAKE2b-256 checksum How to use checksums |
4e173b81a11650284343091f32ece3246ecea18eee60cc6afead1cb2c829934c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / canot-0.3.5-py3-none-any.whl
| Download URL | canot-0.3.5-py3-none-any.whl |
|---|---|
| Size | 192.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a35a917f2e045fe57ac8522480cb07188c231b579301374c1c038295cae06207
|
|
BLAKE2b-256 checksum How to use checksums |
d6bd0f51ba95b4fb6ac31e5d79a2128734263688b9c736a2c28442d928710623
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for canot 0.3.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.