recce-nightly 0.62.0.20250420__tar.gz → 0.62.0.20250422__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of recce-nightly might be problematic. Click here for more details.
- {recce_nightly-0.62.0.20250420/recce_nightly.egg-info → recce_nightly-0.62.0.20250422}/PKG-INFO +16 -16
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/README.md +15 -15
- recce_nightly-0.62.0.20250422/recce/VERSION +1 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/adapter/dbt_adapter/__init__.py +1 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/cli.py +2 -7
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/config.py +1 -1
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/404.html +1 -1
- recce_nightly-0.62.0.20250420/recce/data/_next/static/chunks/500-e51c92a025a51234.js → recce_nightly-0.62.0.20250422/recce/data/_next/static/chunks/831-dcc439bb9b7d5f8d.js +2 -2
- recce_nightly-0.62.0.20250422/recce/data/_next/static/chunks/app/page-03812768be89e01f.js +1 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/index.html +3 -3
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/index.txt +2 -2
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422/recce_nightly.egg-info}/PKG-INFO +16 -16
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce_nightly.egg-info/SOURCES.txt +4 -4
- recce_nightly-0.62.0.20250420/recce/VERSION +0 -1
- recce_nightly-0.62.0.20250420/recce/data/_next/static/chunks/app/page-f42421954ec7536b.js +0 -1
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/LICENSE +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/adapter/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/adapter/base.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/adapter/dbt_adapter/dbt_version.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/adapter/sqlmesh_adapter.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/apis/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/apis/check_api.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/apis/check_func.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/apis/run_api.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/apis/run_func.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/artifact.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/core.py +0 -0
- {recce_nightly-0.62.0.20250420/recce/data/_next/static/EwFHYQ9kLAvVIZfourkeF → recce_nightly-0.62.0.20250422/recce/data/_next/static/XpnaXv0iZ0AMssxF5jA2A}/_buildManifest.js +0 -0
- {recce_nightly-0.62.0.20250420/recce/data/_next/static/EwFHYQ9kLAvVIZfourkeF → recce_nightly-0.62.0.20250422/recce/data/_next/static/XpnaXv0iZ0AMssxF5jA2A}/_ssgManifest.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/1f229bf6-d9fe92e56db8d93b.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/29e3cc0d-8c150e37dff9631b.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/36e1c10d-bb0210cbd6573a8d.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/3998a672-eaad84bdd88cc73e.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/450c323b-1bb5db526e54435a.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/47d8844f-79a1b53c66a7d7ec.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/6dc81886-c94b9b91bc2c3caf.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/700-3b65fc3666820d00.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/7a8a3e83-d7fa409d97b38b2b.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/7f27ae6c-413f6b869a04183a.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/9746af58-d74bef4d03eea6ab.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/a30376cd-7d806e1602f2dc3a.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/app/_not-found/page-8a886fa0855c3105.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/app/layout-9102e22cb73f74d6.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/b63b1b3f-7395c74e11a14e95.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/c132bf7d-8102037f9ccf372a.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/c1ceaa8b-a1e442154d23515e.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/cd9f8d63-cf0d5a7b0f7a92e8.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/ce84277d-f42c2c58049cea2d.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/e24bf851-0f8cbc99656833e7.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/fee69bc6-f17d36c080742e74.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/framework-ded83d71b51ce901.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/main-a0859f1f36d0aa6c.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/main-app-0225a2255968e566.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/pages/_app-d5672bf3d8b6371b.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/pages/_error-ed75be3f25588548.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/chunks/webpack-567d72f0bc0820d5.js +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/css/c9ecb46a4b21c126.css +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.22628180.woff2 +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.31d693bb.woff +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.7e2c1e62.woff +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.94a63aea.woff2 +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-latin-800-normal.6f8fa298.woff2 +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-latin-800-normal.97e20d5e.woff +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.013b84f9.woff2 +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.aff52ab0.woff +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.5f21869b.woff +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2 +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/favicon.ico +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/imgs/feedback/thumbs-down.png +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/imgs/feedback/thumbs-up.png +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/data/logo/recce-logo-white.png +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/diff.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/event/CONFIG +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/event/SENTRY_DNS +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/event/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/event/collector.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/event/track.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/exceptions.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/git.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/github.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/models/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/models/check.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/models/run.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/models/types.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/pull_request.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/run.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/server.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/state.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/summary.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/core.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/dataframe.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/histogram.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/lineage.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/profile.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/query.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/rowcount.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/schema.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/top_k.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/tasks/valuediff.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/breaking.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/cache.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/cll.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/io.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/lineage.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/logger.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/pydantic_model.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/recce_cloud.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/util/singleton.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce/yaml/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce_nightly.egg-info/dependency_links.txt +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce_nightly.egg-info/entry_points.txt +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce_nightly.egg-info/requires.txt +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/recce_nightly.egg-info/top_level.txt +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/setup.cfg +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/setup.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/adapter/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/adapter/dbt_adapter/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/adapter/dbt_adapter/conftest.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/adapter/dbt_adapter/test_dbt_cll.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/adapter/dbt_adapter/test_selector.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/__init__.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/conftest.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_histogram.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_lineage.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_preset_checks.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_profile.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_query.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_row_count.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_schema.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_top_k.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/tasks/test_valuediff.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/test_cli.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/test_config.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/test_core.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/test_dbt.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/test_pull_request.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/test_server.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/test_state.py +0 -0
- {recce_nightly-0.62.0.20250420 → recce_nightly-0.62.0.20250422}/tests/test_summary.py +0 -0
{recce_nightly-0.62.0.20250420/recce_nightly.egg-info → recce_nightly-0.62.0.20250422}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: recce-nightly
|
|
3
|
-
Version: 0.62.0.
|
|
3
|
+
Version: 0.62.0.20250422
|
|
4
4
|
Summary: Environment diff tool for dbt
|
|
5
5
|
Home-page: https://github.com/InfuseAI/recce
|
|
6
6
|
Author: InfuseAI Dev Team
|
|
@@ -105,7 +105,7 @@ recce server
|
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
To use the full suite of diffing tools in Recce, please prepare two environments to compare against. Follow
|
|
108
|
-
our [5-minute Jaffle Shop tutorial](https://datarecce.io/
|
|
108
|
+
our [5-minute Jaffle Shop tutorial](https://docs.datarecce.io/get-started-jaffle-shop/) to try it out for yourself.
|
|
109
109
|
|
|
110
110
|
## What you get
|
|
111
111
|
|
|
@@ -196,36 +196,36 @@ recording data impact from code changes.
|
|
|
196
196
|
|
|
197
197
|
### Lineage Diff
|
|
198
198
|
|
|
199
|
-
[Lineage Diff](https://datarecce.io/
|
|
199
|
+
[Lineage Diff](https://docs.datarecce.io/features/lineage/) is the main interface to `Recce` and shows which nodes in
|
|
200
200
|
the lineage have been added, removed, or modified.
|
|
201
201
|
|
|
202
202
|
### Structural Diffs
|
|
203
203
|
|
|
204
|
-
- [Schema Diff](https://datarecce.io/
|
|
204
|
+
- [Schema Diff](https://docs.datarecce.io/features/lineage/#schema-diff) - Show the struture of the table including
|
|
205
205
|
added or removed columns
|
|
206
|
-
- [Row Count Diff](https://datarecce.io/
|
|
206
|
+
- [Row Count Diff](https://docs.datarecce.io/features/lineage/#row-count-diff) - Compares the row count for tables
|
|
207
207
|
|
|
208
208
|
### Statistical Diffs
|
|
209
209
|
|
|
210
210
|
Advanced Diffs provide high level statistics about data change:
|
|
211
211
|
|
|
212
|
-
- [Profile Diff](https://datarecce.io/
|
|
212
|
+
- [Profile Diff](https://docs.datarecce.io/features/lineage/#profile-diff): Compares stats such as count, distinct
|
|
213
213
|
count, min, max, average.
|
|
214
|
-
- [Value Diff](https://datarecce.io/
|
|
214
|
+
- [Value Diff](https://docs.datarecce.io/features/lineage/#value-diff): The matched count and percentage for each column
|
|
215
215
|
in the table.
|
|
216
|
-
- [Top-K Diff](https://datarecce.io/
|
|
216
|
+
- [Top-K Diff](https://docs.datarecce.io/features/lineage/#top-k-diff): Compares the distribution of a categorical
|
|
217
217
|
column.
|
|
218
|
-
- [Histogram Diff](https://datarecce.io/
|
|
218
|
+
- [Histogram Diff](https://docs.datarecce.io/features/lineage/#histogram-diff): Compares the distribution of a numeric
|
|
219
219
|
column in an overlay histogram chart.
|
|
220
220
|
|
|
221
221
|
### Query Diff
|
|
222
222
|
|
|
223
|
-
[Query Diff](https://datarecce.io/
|
|
223
|
+
[Query Diff](https://docs.datarecce.io/features/query/) compares the results of any ad-hoc query, and supports the use
|
|
224
224
|
of dbt macros.
|
|
225
225
|
|
|
226
226
|
### Checklist
|
|
227
227
|
|
|
228
|
-
The [checklist](https://datarecce.io/
|
|
228
|
+
The [checklist](https://docs.datarecce.io/features/checklist/) provides a way to record the results of your data
|
|
229
229
|
validation process.
|
|
230
230
|
|
|
231
231
|
- Save the results of checks
|
|
@@ -247,13 +247,13 @@ non-technical stakeholders to approve data checks.
|
|
|
247
247
|
|
|
248
248
|
## Documentation / How to use `Recce`
|
|
249
249
|
|
|
250
|
-
The [Recce Documentation](https://datarecce.io/
|
|
250
|
+
The [Recce Documentation](https://docs.datarecce.io/) covers everything you need to get started.
|
|
251
251
|
|
|
252
|
-
We’d advise first following the [5-minute tutorial](https://datarecce.io/
|
|
253
|
-
Shop and then [trying out Recce](https://datarecce.io/
|
|
252
|
+
We’d advise first following the [5-minute tutorial](https://docs.datarecce.io/get-started-jaffle-shop/) that uses Jaffle
|
|
253
|
+
Shop and then [trying out Recce](https://docs.datarecce.io/get-started/) in your own project.
|
|
254
254
|
|
|
255
255
|
For advice on best practices in preparing dbt environments to enable effective PR review, check
|
|
256
|
-
out [Best Practices for Preparing Environments](https://datarecce.io/
|
|
256
|
+
out [Best Practices for Preparing Environments](https://docs.datarecce.io/guides/best-practices-prep-env/).
|
|
257
257
|
|
|
258
258
|
## Recce Cloud
|
|
259
259
|
|
|
@@ -284,7 +284,7 @@ please [book an appointment](https://cal.com/team/recce/chat?utm_source=banner&u
|
|
|
284
284
|
|
|
285
285
|
For `Recce Cloud` users:
|
|
286
286
|
|
|
287
|
-
- An encrypted version of your `Recce` [state file](https://datarecce.io/
|
|
287
|
+
- An encrypted version of your `Recce` [state file](https://docs.datarecce.io/features/state-file/) is storedon
|
|
288
288
|
`Recce Cloud`. This file is encrypted *before* transmission.
|
|
289
289
|
|
|
290
290
|
## Community & Support
|
|
@@ -43,7 +43,7 @@ recce server
|
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
To use the full suite of diffing tools in Recce, please prepare two environments to compare against. Follow
|
|
46
|
-
our [5-minute Jaffle Shop tutorial](https://datarecce.io/
|
|
46
|
+
our [5-minute Jaffle Shop tutorial](https://docs.datarecce.io/get-started-jaffle-shop/) to try it out for yourself.
|
|
47
47
|
|
|
48
48
|
## What you get
|
|
49
49
|
|
|
@@ -134,36 +134,36 @@ recording data impact from code changes.
|
|
|
134
134
|
|
|
135
135
|
### Lineage Diff
|
|
136
136
|
|
|
137
|
-
[Lineage Diff](https://datarecce.io/
|
|
137
|
+
[Lineage Diff](https://docs.datarecce.io/features/lineage/) is the main interface to `Recce` and shows which nodes in
|
|
138
138
|
the lineage have been added, removed, or modified.
|
|
139
139
|
|
|
140
140
|
### Structural Diffs
|
|
141
141
|
|
|
142
|
-
- [Schema Diff](https://datarecce.io/
|
|
142
|
+
- [Schema Diff](https://docs.datarecce.io/features/lineage/#schema-diff) - Show the struture of the table including
|
|
143
143
|
added or removed columns
|
|
144
|
-
- [Row Count Diff](https://datarecce.io/
|
|
144
|
+
- [Row Count Diff](https://docs.datarecce.io/features/lineage/#row-count-diff) - Compares the row count for tables
|
|
145
145
|
|
|
146
146
|
### Statistical Diffs
|
|
147
147
|
|
|
148
148
|
Advanced Diffs provide high level statistics about data change:
|
|
149
149
|
|
|
150
|
-
- [Profile Diff](https://datarecce.io/
|
|
150
|
+
- [Profile Diff](https://docs.datarecce.io/features/lineage/#profile-diff): Compares stats such as count, distinct
|
|
151
151
|
count, min, max, average.
|
|
152
|
-
- [Value Diff](https://datarecce.io/
|
|
152
|
+
- [Value Diff](https://docs.datarecce.io/features/lineage/#value-diff): The matched count and percentage for each column
|
|
153
153
|
in the table.
|
|
154
|
-
- [Top-K Diff](https://datarecce.io/
|
|
154
|
+
- [Top-K Diff](https://docs.datarecce.io/features/lineage/#top-k-diff): Compares the distribution of a categorical
|
|
155
155
|
column.
|
|
156
|
-
- [Histogram Diff](https://datarecce.io/
|
|
156
|
+
- [Histogram Diff](https://docs.datarecce.io/features/lineage/#histogram-diff): Compares the distribution of a numeric
|
|
157
157
|
column in an overlay histogram chart.
|
|
158
158
|
|
|
159
159
|
### Query Diff
|
|
160
160
|
|
|
161
|
-
[Query Diff](https://datarecce.io/
|
|
161
|
+
[Query Diff](https://docs.datarecce.io/features/query/) compares the results of any ad-hoc query, and supports the use
|
|
162
162
|
of dbt macros.
|
|
163
163
|
|
|
164
164
|
### Checklist
|
|
165
165
|
|
|
166
|
-
The [checklist](https://datarecce.io/
|
|
166
|
+
The [checklist](https://docs.datarecce.io/features/checklist/) provides a way to record the results of your data
|
|
167
167
|
validation process.
|
|
168
168
|
|
|
169
169
|
- Save the results of checks
|
|
@@ -185,13 +185,13 @@ non-technical stakeholders to approve data checks.
|
|
|
185
185
|
|
|
186
186
|
## Documentation / How to use `Recce`
|
|
187
187
|
|
|
188
|
-
The [Recce Documentation](https://datarecce.io/
|
|
188
|
+
The [Recce Documentation](https://docs.datarecce.io/) covers everything you need to get started.
|
|
189
189
|
|
|
190
|
-
We’d advise first following the [5-minute tutorial](https://datarecce.io/
|
|
191
|
-
Shop and then [trying out Recce](https://datarecce.io/
|
|
190
|
+
We’d advise first following the [5-minute tutorial](https://docs.datarecce.io/get-started-jaffle-shop/) that uses Jaffle
|
|
191
|
+
Shop and then [trying out Recce](https://docs.datarecce.io/get-started/) in your own project.
|
|
192
192
|
|
|
193
193
|
For advice on best practices in preparing dbt environments to enable effective PR review, check
|
|
194
|
-
out [Best Practices for Preparing Environments](https://datarecce.io/
|
|
194
|
+
out [Best Practices for Preparing Environments](https://docs.datarecce.io/guides/best-practices-prep-env/).
|
|
195
195
|
|
|
196
196
|
## Recce Cloud
|
|
197
197
|
|
|
@@ -222,7 +222,7 @@ please [book an appointment](https://cal.com/team/recce/chat?utm_source=banner&u
|
|
|
222
222
|
|
|
223
223
|
For `Recce Cloud` users:
|
|
224
224
|
|
|
225
|
-
- An encrypted version of your `Recce` [state file](https://datarecce.io/
|
|
225
|
+
- An encrypted version of your `Recce` [state file](https://docs.datarecce.io/features/state-file/) is storedon
|
|
226
226
|
`Recce Cloud`. This file is encrypted *before* transmission.
|
|
227
227
|
|
|
228
228
|
## Community & Support
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.62.0.20250422
|
|
@@ -776,6 +776,7 @@ class DbtAdapter(BaseAdapter):
|
|
|
776
776
|
if base_node and curr_node:
|
|
777
777
|
base_checksum = base_node.get('checksum', {}).get('checksum')
|
|
778
778
|
curr_checksum = curr_node.get('checksum', {}).get('checksum')
|
|
779
|
+
change = None
|
|
779
780
|
if base_checksum is None or curr_checksum is None or base_checksum == curr_checksum:
|
|
780
781
|
continue
|
|
781
782
|
|
|
@@ -278,7 +278,7 @@ def server(host, port, state_file=None, **kwargs):
|
|
|
278
278
|
console.print('Recce is launching in single environment mode with limited functionality.')
|
|
279
279
|
console.print('For full functionality, prepare a base set of dbt artifacts to compare against in '
|
|
280
280
|
f"'{target_base_path}'.")
|
|
281
|
-
console.print('https://datarecce.io/
|
|
281
|
+
console.print('https://docs.datarecce.io/get-started/#prepare-dbt-artifacts')
|
|
282
282
|
console.print()
|
|
283
283
|
|
|
284
284
|
state_loader = create_state_loader(is_review, is_cloud, state_file, cloud_options)
|
|
@@ -758,7 +758,7 @@ def artifact(**kwargs):
|
|
|
758
758
|
return recce_ci_artifact(**kwargs)
|
|
759
759
|
|
|
760
760
|
|
|
761
|
-
@cli.command(cls=TrackCommand
|
|
761
|
+
@cli.command(cls=TrackCommand)
|
|
762
762
|
@click.argument('state_file', type=click.Path(exists=True))
|
|
763
763
|
@click.option('--api-token', help='The token used by Recce Cloud API.', type=click.STRING,
|
|
764
764
|
envvar='RECCE_API_TOKEN')
|
|
@@ -774,10 +774,6 @@ def share(state_file, **kwargs):
|
|
|
774
774
|
|
|
775
775
|
# read or input the api token
|
|
776
776
|
api_token = kwargs.get('api_token') if kwargs.get('api_token') else get_recce_api_token()
|
|
777
|
-
if api_token is None:
|
|
778
|
-
console.print("Recce Share is coming soon — stay tuned!")
|
|
779
|
-
exit(1)
|
|
780
|
-
|
|
781
777
|
if api_token is None:
|
|
782
778
|
console.print("An API token is required to this. This can be obtained in your user account settings.\n"
|
|
783
779
|
f"{RECCE_CLOUD_API_HOST}/settings#tokens\n"
|
|
@@ -826,7 +822,6 @@ def share(state_file, **kwargs):
|
|
|
826
822
|
@click.option('--host', default='localhost', show_default=True, help='The host to bind to.')
|
|
827
823
|
@click.option('--port', default=8000, show_default=True, help='The port to bind to.', type=int)
|
|
828
824
|
def read_only(host, port, state_file=None, **kwargs):
|
|
829
|
-
|
|
830
825
|
from .server import app, AppState
|
|
831
826
|
from rich.console import Console
|
|
832
827
|
|
|
@@ -7,7 +7,7 @@ from recce.util import SingletonMeta
|
|
|
7
7
|
|
|
8
8
|
RECCE_CONFIG_FILE = 'recce.yml'
|
|
9
9
|
RECCE_PRESET_CHECK_COMMENT = '''Preset Checks
|
|
10
|
-
Please see https://datarecce.io/
|
|
10
|
+
Please see https://docs.datarecce.io/features/preset-checks/
|
|
11
11
|
'''
|
|
12
12
|
RECCE_ERROR_LOG_FILE = 'recce_error.log'
|
|
13
13
|
console = Console()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-567d72f0bc0820d5.js"/><script src="/_next/static/chunks/1f229bf6-d9fe92e56db8d93b.js" async=""></script><script src="/_next/static/chunks/700-3b65fc3666820d00.js" async=""></script><script src="/_next/static/chunks/main-app-0225a2255968e566.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>recce</title><meta name="description" content="Recce: Data validation toolkit for comprehensive PR review"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-567d72f0bc0820d5.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:I[37194,[],\"\"]\n3:I[79137,[],\"\"]\n4:I[63846,[],\"\"]\na:I[67160,[],\"\"]\n5:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n6:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n7:{\"display\":\"inline-block\"}\n8:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-567d72f0bc0820d5.js"/><script src="/_next/static/chunks/1f229bf6-d9fe92e56db8d93b.js" async=""></script><script src="/_next/static/chunks/700-3b65fc3666820d00.js" async=""></script><script src="/_next/static/chunks/main-app-0225a2255968e566.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>recce</title><meta name="description" content="Recce: Data validation toolkit for comprehensive PR review"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-567d72f0bc0820d5.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:I[37194,[],\"\"]\n3:I[79137,[],\"\"]\n4:I[63846,[],\"\"]\na:I[67160,[],\"\"]\n5:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n6:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n7:{\"display\":\"inline-block\"}\n8:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"XpnaXv0iZ0AMssxF5jA2A\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L2\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$5\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$6\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$8\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"recce\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Recce: Data validation toolkit for comprehensive PR review\"}]]\n2:null\n"])</script></body></html>
|