recce-nightly 0.58.0.20250316__tar.gz → 0.58.0.20250317__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.58.0.20250316/recce_nightly.egg-info → recce_nightly-0.58.0.20250317}/PKG-INFO +1 -1
- recce_nightly-0.58.0.20250317/recce/VERSION +1 -0
- recce_nightly-0.58.0.20250317/recce/__init__.py +79 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/cli.py +8 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/404.html +1 -1
- recce_nightly-0.58.0.20250317/recce/data/_next/static/chunks/app/page-904cdda04903cb1a.js +1 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/index.html +2 -2
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/index.txt +2 -2
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/server.py +11 -3
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317/recce_nightly.egg-info}/PKG-INFO +1 -1
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce_nightly.egg-info/SOURCES.txt +3 -3
- recce_nightly-0.58.0.20250316/recce/VERSION +0 -1
- recce_nightly-0.58.0.20250316/recce/__init__.py +0 -58
- recce_nightly-0.58.0.20250316/recce/data/_next/static/chunks/app/page-5fe6b102815201fd.js +0 -1
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/LICENSE +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/README.md +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/adapter/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/adapter/base.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/adapter/dbt_adapter/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/adapter/dbt_adapter/dbt_version.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/adapter/sqlmesh_adapter.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/apis/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/apis/check_api.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/apis/check_func.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/apis/run_api.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/apis/run_func.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/artifact.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/config.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/core.py +0 -0
- {recce_nightly-0.58.0.20250316/recce/data/_next/static/L8be2amZED8Da4AG1r_5k → recce_nightly-0.58.0.20250317/recce/data/_next/static/EusQfo0PlKiMhvgJR-TpE}/_buildManifest.js +0 -0
- {recce_nightly-0.58.0.20250316/recce/data/_next/static/L8be2amZED8Da4AG1r_5k → recce_nightly-0.58.0.20250317/recce/data/_next/static/EusQfo0PlKiMhvgJR-TpE}/_ssgManifest.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/29e3cc0d-b9131230fdb267e7.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/36e1c10d-28bb82b9a3d959e7.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/3998a672-18454f939c052b39.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/450c323b-ff537c106edf3f59.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/47d8844f-cac2989cb39ba350.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/523b8219-cd28a6efac8e1cf1.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/6dc81886-d45acadb4b6674c7.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/727-81ddfe5839f762d5.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/7a8a3e83-1a4edb77e4d0142d.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/7f27ae6c-9c6bdf82ccd2f646.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/921-4158ef2dc23e4a01.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/9746af58-344daabf5df08121.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/a30376cd-0e2abcaded0e4cfc.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/app/_not-found/page-8fb2dd95da4548ae.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/app/layout-2ba8d6f3664176aa.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/b63b1b3f-fbe2ac2c00b4eb2f.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/c132bf7d-3375ff4277eceb81.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/c1ceaa8b-c4f0232ef5c2c9ba.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/cd9f8d63-ba9b342f3d5e92ac.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/ce84277d-3aa717f588901c96.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/e24bf851-38fffe87a7b8784a.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/fee69bc6-4490eb47d2aaaa72.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/framework-ded83d71b51ce901.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/main-535eacaa53931854.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/main-app-6f45568a6a7cd7b0.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/pages/_app-bbd1966052cb1e5d.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/pages/_error-2456b9a2e0600a52.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/chunks/webpack-5ab3237140d2c0f8.js +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/css/c9ecb46a4b21c126.css +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.22628180.woff2 +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.31d693bb.woff +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.7e2c1e62.woff +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.94a63aea.woff2 +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-latin-800-normal.6f8fa298.woff2 +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-latin-800-normal.97e20d5e.woff +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.013b84f9.woff2 +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.aff52ab0.woff +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.5f21869b.woff +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2 +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/favicon.ico +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/imgs/feedback/thumbs-down.png +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/imgs/feedback/thumbs-up.png +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/data/logo/recce-logo-white.png +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/diff.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/event/CONFIG +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/event/SENTRY_DNS +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/event/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/event/collector.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/event/track.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/exceptions.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/git.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/github.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/models/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/models/check.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/models/run.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/models/types.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/pull_request.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/run.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/state.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/summary.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/core.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/dataframe.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/histogram.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/lineage.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/profile.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/query.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/rowcount.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/schema.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/top_k.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/tasks/valuediff.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/breaking.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/cache.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/cll.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/io.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/logger.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/pydantic_model.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/recce_cloud.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/util/singleton.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce/yaml/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce_nightly.egg-info/dependency_links.txt +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce_nightly.egg-info/entry_points.txt +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce_nightly.egg-info/requires.txt +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/recce_nightly.egg-info/top_level.txt +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/setup.cfg +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/setup.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/adapter/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/adapter/dbt_adapter/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/adapter/dbt_adapter/conftest.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/adapter/dbt_adapter/test_dbt_cll.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/adapter/dbt_adapter/test_selector.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/__init__.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/conftest.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_histogram.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_lineage.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_preset_checks.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_profile.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_query.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_row_count.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_schema.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_top_k.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/tasks/test_valuediff.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/test_cli.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/test_config.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/test_core.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/test_dbt.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/test_pull_request.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/test_server.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/test_state.py +0 -0
- {recce_nightly-0.58.0.20250316 → recce_nightly-0.58.0.20250317}/tests/test_summary.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.58.0.20250317
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
import requests
|
|
4
|
+
from packaging.version import Version
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def is_ci_env():
|
|
8
|
+
# List of CI environment variables and their expected values
|
|
9
|
+
ci_environments = {
|
|
10
|
+
'CI': 'true', # Generic CI indicator
|
|
11
|
+
'CIRCLECI': 'true', # CircleCI
|
|
12
|
+
'GITHUB_ACTIONS': 'true', # GitHub Actions
|
|
13
|
+
'GITLAB_CI': 'true', # GitLab CI
|
|
14
|
+
'JENKINS_URL': None, # Jenkins (just needs to exist)
|
|
15
|
+
'TRAVIS': 'true', # Travis CI
|
|
16
|
+
'APPVEYOR': 'true', # AppVeyor
|
|
17
|
+
'DRONE': 'true', # Drone CI
|
|
18
|
+
'TEAMCITY_VERSION': None, # TeamCity
|
|
19
|
+
'BITBUCKET_COMMIT': None, # Bitbucket Pipelines
|
|
20
|
+
'BUILDKITE': 'true', # Buildkite
|
|
21
|
+
'CODEBUILD_BUILD_ID': None, # AWS CodeBuild
|
|
22
|
+
'AZURE_PIPELINES': 'true', # Azure Pipelines
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
for env_var, expected_value in ci_environments.items():
|
|
26
|
+
env_value = os.environ.get(env_var)
|
|
27
|
+
if env_value is not None:
|
|
28
|
+
# If we just need the variable to exist
|
|
29
|
+
if expected_value is None:
|
|
30
|
+
return True
|
|
31
|
+
# If we need to match a specific value (case-insensitive)
|
|
32
|
+
if env_value.lower() == expected_value.lower():
|
|
33
|
+
return True
|
|
34
|
+
|
|
35
|
+
return False
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def get_runner():
|
|
39
|
+
# GitHub Action
|
|
40
|
+
if os.environ.get('GITHUB_ACTIONS', 'false') == 'true':
|
|
41
|
+
return 'github actions'
|
|
42
|
+
|
|
43
|
+
# GitHub Codespace
|
|
44
|
+
if os.environ.get('CODESPACES', 'false') == 'true':
|
|
45
|
+
return 'github codespaces'
|
|
46
|
+
|
|
47
|
+
# CircleCI
|
|
48
|
+
if os.environ.get('CIRCLECI', 'false') == 'true':
|
|
49
|
+
return 'circleci'
|
|
50
|
+
|
|
51
|
+
return None
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def get_version():
|
|
55
|
+
version_file = os.path.normpath(os.path.join(os.path.dirname(__file__), 'VERSION'))
|
|
56
|
+
with open(version_file) as fh:
|
|
57
|
+
version = fh.read().strip()
|
|
58
|
+
return version
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def fetch_latest_version():
|
|
62
|
+
current_version = get_version()
|
|
63
|
+
if "dev" in current_version:
|
|
64
|
+
# Skip fetching latest version if it's a dev version
|
|
65
|
+
return current_version
|
|
66
|
+
|
|
67
|
+
try:
|
|
68
|
+
url = 'https://pypi.org/pypi/recce/json'
|
|
69
|
+
response = requests.get(url, timeout=3)
|
|
70
|
+
response.raise_for_status()
|
|
71
|
+
data = response.json()
|
|
72
|
+
return data['info']['version']
|
|
73
|
+
except Exception:
|
|
74
|
+
return current_version
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
__version__ = get_version()
|
|
78
|
+
__latest_version__ = fetch_latest_version()
|
|
79
|
+
__is_recce_outdated__ = Version(__version__) < Version(__latest_version__)
|
|
@@ -117,6 +117,14 @@ def _execute_sql(context, sql_template, base=False):
|
|
|
117
117
|
@click.pass_context
|
|
118
118
|
def cli(ctx, **kwargs):
|
|
119
119
|
"""Recce: Data validation toolkit for comprehensive PR review"""
|
|
120
|
+
from rich.console import Console
|
|
121
|
+
from recce import __is_recce_outdated__, __latest_version__
|
|
122
|
+
if __is_recce_outdated__ is True:
|
|
123
|
+
error_console = Console(stderr=True, style='bold')
|
|
124
|
+
error_console.print(
|
|
125
|
+
f"[[yellow]Update Available[/yellow]] A new version of Recce {__latest_version__} is available.",
|
|
126
|
+
)
|
|
127
|
+
error_console.print("Please update using the command: 'pip install --upgrade recce'.", end='\n\n')
|
|
120
128
|
|
|
121
129
|
|
|
122
130
|
@cli.command(cls=TrackCommand)
|
|
@@ -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-5ab3237140d2c0f8.js"/><script src="/_next/static/chunks/523b8219-cd28a6efac8e1cf1.js" async=""></script><script src="/_next/static/chunks/921-4158ef2dc23e4a01.js" async=""></script><script src="/_next/static/chunks/main-app-6f45568a6a7cd7b0.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-5ab3237140d2c0f8.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[65035,[],\"\"]\n3:I[49712,[],\"\"]\n4:I[30691,[],\"\"]\na:I[36979,[],\"\"]\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-5ab3237140d2c0f8.js"/><script src="/_next/static/chunks/523b8219-cd28a6efac8e1cf1.js" async=""></script><script src="/_next/static/chunks/921-4158ef2dc23e4a01.js" async=""></script><script src="/_next/static/chunks/main-app-6f45568a6a7cd7b0.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-5ab3237140d2c0f8.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[65035,[],\"\"]\n3:I[49712,[],\"\"]\n4:I[30691,[],\"\"]\na:I[36979,[],\"\"]\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\":\"EusQfo0PlKiMhvgJR-TpE\",\"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>
|