recce-nightly 1.10.0.20250625__py3-none-any.whl → 1.30.0.20251221__py3-none-any.whl

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.

Files changed (229) hide show
  1. recce/VERSION +1 -1
  2. recce/__init__.py +5 -0
  3. recce/adapter/dbt_adapter/__init__.py +343 -245
  4. recce/apis/check_api.py +20 -14
  5. recce/apis/check_events_api.py +353 -0
  6. recce/apis/check_func.py +5 -5
  7. recce/apis/run_func.py +32 -3
  8. recce/artifact.py +76 -3
  9. recce/cli.py +705 -82
  10. recce/config.py +2 -2
  11. recce/connect_to_cloud.py +1 -1
  12. recce/core.py +3 -3
  13. recce/data/404/index.html +2 -0
  14. recce/data/404.html +2 -22
  15. recce/data/__next.@lineage.!KHNsb3Qp.__PAGE__.txt +7 -0
  16. recce/data/__next.@lineage.!KHNsb3Qp.txt +4 -0
  17. recce/data/__next.__PAGE__.txt +6 -0
  18. recce/data/__next._full.txt +32 -0
  19. recce/data/__next._head.txt +8 -0
  20. recce/data/__next._index.txt +14 -0
  21. recce/data/__next._tree.txt +8 -0
  22. recce/data/_next/static/chunks/025a7e3e3f9f40ae.js +1 -0
  23. recce/data/_next/static/chunks/0ce56d67ef5779ca.js +4 -0
  24. recce/data/_next/static/chunks/1a6a78780155dac7.js +48 -0
  25. recce/data/_next/static/chunks/1de8485918b9182a.css +2 -0
  26. recce/data/_next/static/chunks/1e4b1b50d1e34993.js +1 -0
  27. recce/data/_next/static/chunks/206d5d181e4c738e.js +1 -0
  28. recce/data/_next/static/chunks/2c357efc34c5b859.js +25 -0
  29. recce/data/_next/static/chunks/2e9d95d2d48c479c.js +1 -0
  30. recce/data/_next/static/chunks/2f016dc4a3edad2e.js +2 -0
  31. recce/data/_next/static/chunks/313251962d698f7c.js +1 -0
  32. recce/data/_next/static/chunks/3a9f021f38eb5574.css +1 -0
  33. recce/data/_next/static/chunks/40079da8d2b8f651.js +1 -0
  34. recce/data/_next/static/chunks/4599182bffb64661.js +38 -0
  35. recce/data/_next/static/chunks/4e62f6e184173580.js +1 -0
  36. recce/data/_next/static/chunks/5c4dfb0d09eaa401.js +1 -0
  37. recce/data/_next/static/chunks/69e4f06ccfdfc3ac.js +1 -0
  38. recce/data/_next/static/chunks/6b206cb4707d6bee.js +1 -0
  39. recce/data/_next/static/chunks/6d8557f062aa4386.css +1 -0
  40. recce/data/_next/static/chunks/7fbe3650bd83b6b5.js +1 -0
  41. recce/data/_next/static/chunks/83fa823a825674f6.js +1 -0
  42. recce/data/_next/static/chunks/848a6c9b5f55f7ed.js +1 -0
  43. recce/data/_next/static/chunks/859462b0858aef88.css +2 -0
  44. recce/data/_next/static/chunks/923964f18c87d0f1.css +1 -0
  45. recce/data/_next/static/chunks/939390f911895d7c.js +48 -0
  46. recce/data/_next/static/chunks/99a9817237a07f43.js +1 -0
  47. recce/data/_next/static/chunks/9fed8b4b2b924054.js +5 -0
  48. recce/data/_next/static/chunks/b6949f6c5892110c.js +1 -0
  49. recce/data/_next/static/chunks/b851a1d3f8149828.js +1 -0
  50. recce/data/_next/static/chunks/c734f9ad957de0b4.js +1 -0
  51. recce/data/_next/static/chunks/cdde321b0ec75717.js +2 -0
  52. recce/data/_next/static/chunks/d0f91117d77ff844.css +1 -0
  53. recce/data/_next/static/chunks/d6c8667911c2500f.js +1 -0
  54. recce/data/_next/static/chunks/da8dab68c02752cf.js +74 -0
  55. recce/data/_next/static/chunks/dc074049c9d12d97.js +109 -0
  56. recce/data/_next/static/chunks/ee7f1a8227342421.js +1 -0
  57. recce/data/_next/static/chunks/fa2f4e56c2fccc73.js +1 -0
  58. recce/data/_next/static/chunks/turbopack-1fad664f62979b93.js +3 -0
  59. recce/data/_next/static/media/favicon.a8d38d84.ico +0 -0
  60. recce/data/_next/static/media/montserrat-cyrillic-800-normal.d80d830d.woff2 +0 -0
  61. recce/data/_next/static/media/{montserrat-cyrillic-800-normal.bd5c9f50.woff → montserrat-cyrillic-800-normal.f9d58125.woff} +0 -0
  62. recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.076c2a93.woff2 +0 -0
  63. recce/data/_next/static/media/montserrat-latin-800-normal.cde454cc.woff2 +0 -0
  64. recce/data/_next/static/media/{montserrat-latin-800-normal.fc315020.woff → montserrat-latin-800-normal.d5761935.woff} +0 -0
  65. recce/data/_next/static/media/montserrat-latin-ext-800-normal.40ec0659.woff2 +0 -0
  66. recce/data/_next/static/media/{montserrat-latin-ext-800-normal.2e5381b2.woff → montserrat-latin-ext-800-normal.b671449b.woff} +0 -0
  67. recce/data/_next/static/media/{montserrat-vietnamese-800-normal.20c545e6.woff → montserrat-vietnamese-800-normal.9f7b8541.woff} +0 -0
  68. recce/data/_next/static/media/montserrat-vietnamese-800-normal.f9eb854e.woff2 +0 -0
  69. recce/data/_next/static/nX-Uz0AH6Tc6hIQUFGqaB/_buildManifest.js +11 -0
  70. recce/data/_next/static/nX-Uz0AH6Tc6hIQUFGqaB/_clientMiddlewareManifest.json +1 -0
  71. recce/data/_not-found/__next._full.txt +24 -0
  72. recce/data/_not-found/__next._head.txt +8 -0
  73. recce/data/_not-found/__next._index.txt +13 -0
  74. recce/data/_not-found/__next._not-found.__PAGE__.txt +5 -0
  75. recce/data/_not-found/__next._not-found.txt +4 -0
  76. recce/data/_not-found/__next._tree.txt +6 -0
  77. recce/data/_not-found/index.html +2 -0
  78. recce/data/_not-found/index.txt +24 -0
  79. recce/data/auth_callback.html +1 -1
  80. recce/data/checks/__next.@lineage.__DEFAULT__.txt +7 -0
  81. recce/data/checks/__next._full.txt +39 -0
  82. recce/data/checks/__next._head.txt +8 -0
  83. recce/data/checks/__next._index.txt +14 -0
  84. recce/data/checks/__next._tree.txt +8 -0
  85. recce/data/checks/__next.checks.__PAGE__.txt +10 -0
  86. recce/data/checks/__next.checks.txt +4 -0
  87. recce/data/checks/index.html +2 -0
  88. recce/data/checks/index.txt +39 -0
  89. recce/data/index.html +2 -27
  90. recce/data/index.txt +32 -8
  91. recce/data/lineage/__next.@lineage.__DEFAULT__.txt +7 -0
  92. recce/data/lineage/__next._full.txt +39 -0
  93. recce/data/lineage/__next._head.txt +8 -0
  94. recce/data/lineage/__next._index.txt +14 -0
  95. recce/data/lineage/__next._tree.txt +8 -0
  96. recce/data/lineage/__next.lineage.__PAGE__.txt +10 -0
  97. recce/data/lineage/__next.lineage.txt +4 -0
  98. recce/data/lineage/index.html +2 -0
  99. recce/data/lineage/index.txt +39 -0
  100. recce/data/query/__next.@lineage.__DEFAULT__.txt +7 -0
  101. recce/data/query/__next._full.txt +37 -0
  102. recce/data/query/__next._head.txt +8 -0
  103. recce/data/query/__next._index.txt +14 -0
  104. recce/data/query/__next._tree.txt +8 -0
  105. recce/data/query/__next.query.__PAGE__.txt +9 -0
  106. recce/data/query/__next.query.txt +4 -0
  107. recce/data/query/index.html +2 -0
  108. recce/data/query/index.txt +37 -0
  109. recce/event/CONFIG.bak +1 -0
  110. recce/event/__init__.py +9 -8
  111. recce/event/collector.py +6 -2
  112. recce/event/track.py +10 -0
  113. recce/github.py +1 -1
  114. recce/mcp_server.py +725 -0
  115. recce/models/check.py +433 -15
  116. recce/models/types.py +61 -2
  117. recce/pull_request.py +1 -1
  118. recce/run.py +37 -17
  119. recce/server.py +216 -21
  120. recce/state/__init__.py +31 -0
  121. recce/state/cloud.py +644 -0
  122. recce/state/const.py +26 -0
  123. recce/state/local.py +56 -0
  124. recce/state/state.py +119 -0
  125. recce/state/state_loader.py +174 -0
  126. recce/summary.py +25 -3
  127. recce/tasks/dataframe.py +63 -1
  128. recce/tasks/query.py +40 -3
  129. recce/tasks/rowcount.py +4 -1
  130. recce/tasks/schema.py +4 -1
  131. recce/tasks/utils.py +147 -0
  132. recce/tasks/valuediff.py +85 -57
  133. recce/util/api_token.py +11 -2
  134. recce/util/breaking.py +10 -1
  135. recce/util/cll.py +1 -2
  136. recce/util/cloud/__init__.py +15 -0
  137. recce/util/cloud/base.py +115 -0
  138. recce/util/cloud/check_events.py +190 -0
  139. recce/util/cloud/checks.py +242 -0
  140. recce/util/io.py +2 -2
  141. recce/util/lineage.py +19 -18
  142. recce/util/perf_tracking.py +85 -0
  143. recce/util/recce_cloud.py +254 -5
  144. recce/util/startup_perf.py +121 -0
  145. recce/yaml/__init__.py +2 -2
  146. {recce_nightly-1.10.0.20250625.dist-info → recce_nightly-1.30.0.20251221.dist-info}/METADATA +91 -71
  147. recce_nightly-1.30.0.20251221.dist-info/RECORD +183 -0
  148. {recce_nightly-1.10.0.20250625.dist-info → recce_nightly-1.30.0.20251221.dist-info}/WHEEL +1 -2
  149. recce/data/_next/static/abCX3x3UoIdRLEDWxx4xd/_buildManifest.js +0 -1
  150. recce/data/_next/static/chunks/181-acc61ddada3bc0ca.js +0 -43
  151. recce/data/_next/static/chunks/1bff33f1-1ef85cf5e658a751.js +0 -1
  152. recce/data/_next/static/chunks/217-879a84d70f7a907c.js +0 -2
  153. recce/data/_next/static/chunks/29e3cc0d-60045b2e47aa3916.js +0 -1
  154. recce/data/_next/static/chunks/36e1c10d-8e7be4a6c1f6ab2d.js +0 -1
  155. recce/data/_next/static/chunks/3998a672-03adacad07b346ac.js +0 -1
  156. recce/data/_next/static/chunks/3a92ee20-1081c360214f9602.js +0 -1
  157. recce/data/_next/static/chunks/42-cd3c06533f5fd47c.js +0 -9
  158. recce/data/_next/static/chunks/450c323b-fd94e7ffaa4a5efa.js +0 -1
  159. recce/data/_next/static/chunks/47d8844f-929aed9b1c73a905.js +0 -1
  160. recce/data/_next/static/chunks/608-3b079b544e5d5f5e.js +0 -15
  161. recce/data/_next/static/chunks/6dc81886-adbfa45836061d79.js +0 -1
  162. recce/data/_next/static/chunks/7a8a3e83-edf6dc64b5d5f0a5.js +0 -1
  163. recce/data/_next/static/chunks/7f27ae6c-d5f0438edd5c2a5b.js +0 -1
  164. recce/data/_next/static/chunks/86730205-cfb14e3f051bab35.js +0 -1
  165. recce/data/_next/static/chunks/8d700b6a.8bb140898499c512.js +0 -1
  166. recce/data/_next/static/chunks/92-607cd1af83c41f43.js +0 -1
  167. recce/data/_next/static/chunks/9746af58-a42b7d169cacadf0.js +0 -1
  168. recce/data/_next/static/chunks/a30376cd-de84559016d7e133.js +0 -1
  169. recce/data/_next/static/chunks/app/_not-found/page-01ed58b7f971d311.js +0 -1
  170. recce/data/_next/static/chunks/app/layout-177a410a97e0d018.js +0 -1
  171. recce/data/_next/static/chunks/app/page-da6e046a8235dbfc.js +0 -1
  172. recce/data/_next/static/chunks/b63b1b3f-4282bdcf459e075c.js +0 -1
  173. recce/data/_next/static/chunks/bbda5537-9ec25eb1dd62348a.js +0 -1
  174. recce/data/_next/static/chunks/c132bf7d-08cb668a789d6afd.js +0 -1
  175. recce/data/_next/static/chunks/ce84277d-2e5d1d46910cf052.js +0 -1
  176. recce/data/_next/static/chunks/febdd86e-c6b525341634b860.js +0 -54
  177. recce/data/_next/static/chunks/fee69bc6-2dbccaf9b90474e6.js +0 -1
  178. recce/data/_next/static/chunks/framework-ded83d71b51ce901.js +0 -1
  179. recce/data/_next/static/chunks/main-app-39061b0166c47f55.js +0 -1
  180. recce/data/_next/static/chunks/main-b5b3ae20a1405261.js +0 -1
  181. recce/data/_next/static/chunks/pages/_app-437c455677d62394.js +0 -1
  182. recce/data/_next/static/chunks/pages/_error-e7650df18ca04bde.js +0 -1
  183. recce/data/_next/static/chunks/webpack-7b49d5ba7e3a434d.js +0 -1
  184. recce/data/_next/static/css/17a96168e3a9db13.css +0 -1
  185. recce/data/_next/static/css/1b121dc4d36aeb4d.css +0 -3
  186. recce/data/_next/static/css/35c6679a098e1e34.css +0 -1
  187. recce/data/_next/static/css/951e2e0eea2d4a5b.css +0 -14
  188. recce/data/_next/static/media/montserrat-cyrillic-800-normal.22628180.woff2 +0 -0
  189. recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.94a63aea.woff2 +0 -0
  190. recce/data/_next/static/media/montserrat-latin-800-normal.6f8fa298.woff2 +0 -0
  191. recce/data/_next/static/media/montserrat-latin-ext-800-normal.013b84f9.woff2 +0 -0
  192. recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2 +0 -0
  193. recce/data/_next/static/media/reload-image.79aabb7d.svg +0 -4
  194. recce/state.py +0 -786
  195. recce_nightly-1.10.0.20250625.dist-info/RECORD +0 -154
  196. recce_nightly-1.10.0.20250625.dist-info/top_level.txt +0 -2
  197. tests/__init__.py +0 -0
  198. tests/adapter/__init__.py +0 -0
  199. tests/adapter/dbt_adapter/__init__.py +0 -0
  200. tests/adapter/dbt_adapter/conftest.py +0 -17
  201. tests/adapter/dbt_adapter/dbt_test_helper.py +0 -298
  202. tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -25
  203. tests/adapter/dbt_adapter/test_dbt_cll.py +0 -384
  204. tests/adapter/dbt_adapter/test_selector.py +0 -202
  205. tests/tasks/__init__.py +0 -0
  206. tests/tasks/conftest.py +0 -4
  207. tests/tasks/test_histogram.py +0 -129
  208. tests/tasks/test_lineage.py +0 -55
  209. tests/tasks/test_preset_checks.py +0 -64
  210. tests/tasks/test_profile.py +0 -397
  211. tests/tasks/test_query.py +0 -151
  212. tests/tasks/test_row_count.py +0 -135
  213. tests/tasks/test_schema.py +0 -122
  214. tests/tasks/test_top_k.py +0 -77
  215. tests/tasks/test_valuediff.py +0 -85
  216. tests/test_cli.py +0 -133
  217. tests/test_config.py +0 -43
  218. tests/test_connect_to_cloud.py +0 -82
  219. tests/test_core.py +0 -29
  220. tests/test_dbt.py +0 -36
  221. tests/test_pull_request.py +0 -130
  222. tests/test_server.py +0 -104
  223. tests/test_state.py +0 -134
  224. tests/test_summary.py +0 -65
  225. /recce/data/_next/static/chunks/{polyfills-42372ed130431b0a.js → a6dad97d9634a72d.js} +0 -0
  226. /recce/data/_next/static/media/{montserrat-cyrillic-ext-800-normal.e6e0d8d0.woff → montserrat-cyrillic-ext-800-normal.a4fa76b5.woff} +0 -0
  227. /recce/data/_next/static/{abCX3x3UoIdRLEDWxx4xd → nX-Uz0AH6Tc6hIQUFGqaB}/_ssgManifest.js +0 -0
  228. {recce_nightly-1.10.0.20250625.dist-info → recce_nightly-1.30.0.20251221.dist-info}/entry_points.txt +0 -0
  229. {recce_nightly-1.10.0.20250625.dist-info → recce_nightly-1.30.0.20251221.dist-info}/licenses/LICENSE +0 -0
@@ -1,76 +1,70 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: recce-nightly
3
- Version: 1.10.0.20250625
3
+ Version: 1.30.0.20251221
4
4
  Summary: Environment diff tool for dbt
5
- Home-page: https://github.com/InfuseAI/recce
6
- Author: InfuseAI Dev Team
7
- Author-email: dev@infuseai.io
8
5
  Project-URL: Bug Tracker, https://github.com/InfuseAI/recce/issues
6
+ Project-URL: Homepage, https://github.com/InfuseAI/recce
7
+ Author-email: InfuseAI Dev Team <dev@infuseai.io>
8
+ License: Apache-2.0
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Operating System :: OS Independent
9
13
  Classifier: Programming Language :: Python :: 3.9
10
14
  Classifier: Programming Language :: Python :: 3.10
11
15
  Classifier: Programming Language :: Python :: 3.11
12
16
  Classifier: Programming Language :: Python :: 3.12
13
17
  Classifier: Programming Language :: Python :: 3.13
14
- Classifier: License :: OSI Approved :: Apache Software License
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Development Status :: 4 - Beta
17
18
  Requires-Python: >=3.9
18
- Description-Content-Type: text/markdown
19
- License-File: LICENSE
20
19
  Requires-Dist: boto3
21
- Requires-Dist: requests>=2.28.1
22
- Requires-Dist: ruamel.yaml>=0.18.6
23
20
  Requires-Dist: click>=7.1
24
- Requires-Dist: deepdiff<8.0,>=7.0
25
- Requires-Dist: portalocker
21
+ Requires-Dist: deepdiff<9.0,>=7.0
26
22
  Requires-Dist: fastapi
23
+ Requires-Dist: gitpython
27
24
  Requires-Dist: itsdangerous
28
- Requires-Dist: uvicorn
29
- Requires-Dist: pydantic
30
25
  Requires-Dist: jinja2
26
+ Requires-Dist: packaging
27
+ Requires-Dist: portalocker
28
+ Requires-Dist: py-markdown-table
29
+ Requires-Dist: pydantic
30
+ Requires-Dist: pygithub
31
+ Requires-Dist: python-dateutil
32
+ Requires-Dist: python-multipart
33
+ Requires-Dist: pytz
31
34
  Requires-Dist: requests>=2.28.1
32
35
  Requires-Dist: rich>=12.0.0
36
+ Requires-Dist: ruamel-yaml>=0.18.6
33
37
  Requires-Dist: sentry-sdk
38
+ Requires-Dist: sqlglot<28.0,>=27.29.0
39
+ Requires-Dist: uvicorn
34
40
  Requires-Dist: watchdog
35
41
  Requires-Dist: websockets
36
- Requires-Dist: py-markdown-table
37
- Requires-Dist: python-dateutil
38
- Requires-Dist: python-multipart
39
- Requires-Dist: GitPython
40
- Requires-Dist: PyGithub
41
- Requires-Dist: sqlglot
42
42
  Provides-Extra: dev
43
- Requires-Dist: pytest>=4.6; extra == "dev"
44
- Requires-Dist: pytest-flake8; extra == "dev"
45
- Requires-Dist: black>=25.1.0; extra == "dev"
46
- Requires-Dist: isort>=6.0.1; extra == "dev"
47
- Requires-Dist: flake8>=7.2.0; extra == "dev"
48
- Requires-Dist: pre-commit>=4.2.0; extra == "dev"
49
- Requires-Dist: pytest-mypy; extra == "dev"
50
- Requires-Dist: pytest-cov; extra == "dev"
51
- Requires-Dist: twine; extra == "dev"
52
- Requires-Dist: tox; extra == "dev"
53
- Requires-Dist: pandas; extra == "dev"
54
- Requires-Dist: httpx; extra == "dev"
55
- Dynamic: author
56
- Dynamic: author-email
57
- Dynamic: classifier
58
- Dynamic: description
59
- Dynamic: description-content-type
60
- Dynamic: home-page
61
- Dynamic: license-file
62
- Dynamic: project-url
63
- Dynamic: provides-extra
64
- Dynamic: requires-dist
65
- Dynamic: requires-python
66
- Dynamic: summary
43
+ Requires-Dist: black>=25.1.0; extra == 'dev'
44
+ Requires-Dist: dbt-duckdb; extra == 'dev'
45
+ Requires-Dist: flake8>=7.2.0; extra == 'dev'
46
+ Requires-Dist: httpx; extra == 'dev'
47
+ Requires-Dist: isort>=6.0.1; extra == 'dev'
48
+ Requires-Dist: pandas; extra == 'dev'
49
+ Requires-Dist: pre-commit>=4.2.0; extra == 'dev'
50
+ Requires-Dist: pytest-asyncio<1.0,>=0.23; extra == 'dev'
51
+ Requires-Dist: pytest-cov; extra == 'dev'
52
+ Requires-Dist: pytest-flake8; extra == 'dev'
53
+ Requires-Dist: pytest-mypy; extra == 'dev'
54
+ Requires-Dist: pytest>=4.6; extra == 'dev'
55
+ Requires-Dist: tox; extra == 'dev'
56
+ Requires-Dist: tox-uv; extra == 'dev'
57
+ Requires-Dist: twine; extra == 'dev'
58
+ Provides-Extra: mcp
59
+ Requires-Dist: mcp>=1.0.0; (python_version >= '3.10') and extra == 'mcp'
60
+ Description-Content-Type: text/markdown
67
61
 
68
62
  <p align="center">
69
- <a href="https://datarecce.io">
63
+ <a href="https://reccehq.com">
70
64
  <picture>
71
- <source media="(prefers-color-scheme: dark)" srcset="https://datarecce.io/assets/images/recce-logo-stacked.avif">
72
- <source media="(prefers-color-scheme: light)" srcset="https://datarecce.io/assets/images/recce-logo-stacked.avif">
73
- <img alt="Recce: DataRecce.io" src="https://datarecce.io/assets/images/recce-logo-stacked.avif" width="200" style="display: block; margin: 0 auto 20px;">
65
+ <source media="(prefers-color-scheme: dark)" srcset="https://reccehq.com/assets/images/recce-logo-stacked.avif">
66
+ <source media="(prefers-color-scheme: light)" srcset="https://reccehq.com/assets/images/recce-logo-stacked.avif">
67
+ <img alt="Recce: DataRecce.io" src="https://reccehq.com/assets/images/recce-logo-stacked.avif" width="200" style="display: block; margin: 0 auto 20px;">
74
68
  </picture>
75
69
  </a>
76
70
  </p>
@@ -94,29 +88,56 @@ Dynamic: summary
94
88
  </p>
95
89
 
96
90
  ## Trust, Verify, Ship
91
+
97
92
  Cut dbt review time by 90% and ship accurate data fast
98
93
 
99
94
  Recce gives data teams a faster, more reliable way to understand, review, and ship changes without all the guesswork or manual overhead.
100
95
 
101
96
  ## Quick Start
97
+
98
+ ### Installation
99
+
100
+ Recce offers two packages to fit different use cases:
101
+
102
+ **For full local development and Recce Cloud features:**
103
+
104
+ ```bash
105
+ pip install -U recce
106
+ recce server
107
+ ```
108
+
109
+ **For CI/CD artifact uploads only (lightweight):**
110
+
111
+ ```bash
112
+ pip install -U recce-cloud
113
+ recce-cloud upload
114
+ ```
115
+
116
+ The `recce-cloud` package is a lightweight CLI tool designed specifically for CI/CD environments where you only need to upload dbt artifacts to Recce Cloud. It has minimal dependencies and installs faster than the full `recce` package.
117
+
118
+ ### Getting Started
119
+
102
120
  You can launch Recce in any dbt project in just two commands:
103
121
 
104
- ```Bash
122
+ ```bash
105
123
  # cd into your dbt project
106
124
  pip install -U recce
107
125
  recce server
108
126
  ```
109
- This starts Recce locally, where you can explore lineage and run queries. To unlock the full set of diffing tools, such as data comparisons and impact checks, you’ll need to prepare two environments to compare against. You can follow our [Getting Started](https://docs.datarecce.io/get-started/) and [5-minute Jaffle Shop tutorial](https://docs.datarecce.io/get-started-jaffle-shop/) to try it out step-by-step.
127
+
128
+ (Note: while recce is not version spsecific, `dbt-core` is currently [not compatible with Python 3.13](https://docs.getdbt.com/faqs/Core/install-python-compatibility). Please make sure to use Python 3.10 - 3.12.)
129
+
130
+ This starts Recce locally, where you can explore lineage and run queries. To unlock the full set of diffing tools, such as data comparisons and impact checks, you'll need to prepare two environments to compare against. You can follow our [Getting Started](https://docs.reccehq.com/get-started/) and [5-minute Jaffle Shop tutorial](https://docs.reccehq.com/get-started-jaffle-shop/) to try it out step-by-step.
110
131
 
111
132
  ## What You Get
112
133
 
113
134
  Recce gives you a clear, fast way to understand what your data changes are doing and why they matter. It helps you catch problems early, verify metrics, and share your findings with others, all as part of your normal workflow.
114
135
 
115
- <a href="https://pr46.demo.datarecce.io/"><img width="1347" alt="readme" src="https://github.com/user-attachments/assets/773e4c3a-0a15-49e0-8d1b-38a55af17cb0" /></a>
136
+ <a href="https://pr46.demo.reccehq.com/"><img width="1347" alt="readme" src="https://github.com/user-attachments/assets/773e4c3a-0a15-49e0-8d1b-38a55af17cb0" /></a>
116
137
 
117
- <a href="https://datarecce.io"><img src="https://docs.datarecce.io/assets/images/home/diff-readme2.png" style="width: 100%; max-width: 600px; display: block; margin: 0 auto 20px;" alt="Model and column level diff"/></a>
138
+ <a href="https://reccehq.com"><img src="https://docs.reccehq.com/assets/images/1-whats-recce/diff-readme2.png" style="width: 100%; max-width: 600px; display: block; margin: 0 auto 20px;" alt="Model and column level diff"/></a>
118
139
 
119
- <a href="https://datarecce.io"><img src="https://docs.datarecce.io/assets/images/home/checklist-readme3.png" style="width: 100%; max-width: 600px; display: block; margin: 0 auto 20px;" alt="Checklist for collaboration"/></a>
140
+ <a href="https://reccehq.com"><img src="https://docs.reccehq.com/assets/images/1-whats-recce/checklist-readme3.png" style="width: 100%; max-width: 600px; display: block; margin: 0 auto 20px;" alt="Checklist for collaboration"/></a>
120
141
 
121
142
  ### Using Recce for Impact Assessment in dbt PR Review
122
143
 
@@ -127,18 +148,17 @@ Recce gives you a clear, fast way to understand what your data changes are doing
127
148
  - (`Recce Cloud`) Automatically sync Check status between Recce Instances
128
149
  - (`Recce Cloud`) Block PR merging until all Recce Checks have been approved
129
150
 
130
- Read more about using [Recce for Impact Assessment](https://datarecce.io/blog/hands-on-data-impact-analysis-recce/) on
131
- the Recce blog.
151
+ Read more about using Recce on our [blog](https://blog.reccehq.com).
132
152
 
133
153
  ### What’s Included
134
154
 
135
- - [Lineage and impact mapping](https://docs.datarecce.io/features/lineage/): Quickly see which models and columns are affected by a change. Navigate lineage down to the column level, and spot breaking changes with clear visual cues.
136
- - Metric and data comparisons: Use [Profile, Value, Top-K, and Histogram Diffs](https://docs.datarecce.io/features/lineage/#node-details) to compare results before and after changes. Validate things like row counts, category distributions, and numeric ranges without writing extra SQL.
137
- - [Query diff](https://docs.datarecce.io/features/query/): Write and compare any two queries side by side. This is helpful when validating fixes or reviewing changes with teammates.
138
- - [Checklist for reviews and approvals](https://docs.datarecce.io/features/checklist/): Turn your validation steps into a checklist. Add notes, rerun checks, and share the results with reviewers or stakeholders. In Recce Cloud, checklists can sync automatically and even block PRs until checks are approved.
139
- - Secure by design: Recce is [SOC 2 compliant](https://trust.cloud.datarecce.io/) to meet enterprise security standards. It runs locally or in your private environment, and your data stays in your warehouse.
155
+ - [Lineage and impact mapping](https://docs.reccehq.com/features/lineage/): Quickly see which models and columns are affected by a change. Navigate lineage down to the column level, and spot breaking changes with clear visual cues.
156
+ - Metric and data comparisons: Use [Profile, Value, Top-K, and Histogram Diffs](https://docs.reccehq.com/features/lineage/#node-details) to compare results before and after changes. Validate things like row counts, category distributions, and numeric ranges without writing extra SQL.
157
+ - [Query diff](https://docs.reccehq.com/features/query/): Write and compare any two queries side by side. This is helpful when validating fixes or reviewing changes with teammates.
158
+ - [Checklist for reviews and approvals](https://docs.reccehq.com/features/checklist/): Turn your validation steps into a checklist. Add notes, rerun checks, and share the results with reviewers or stakeholders. In Recce Cloud, checklists can sync automatically and even block PRs until checks are approved.
159
+ - Secure by design: Recce is [SOC 2 compliant](https://trust.reccehq.com/) to meet enterprise security standards. It runs locally or in your private environment, and your data stays in your warehouse.
140
160
 
141
- 👉 Want to dive deeper? Check out the [full documentation](https://docs.datarecce.io/) like [running Recce in CI/CD](https://docs.datarecce.io/guides/scenario-ci/)
161
+ 👉 Want to dive deeper? Check out the [full documentation](https://docs.reccehq.com/).
142
162
 
143
163
  ## Recce Cloud
144
164
 
@@ -150,26 +170,26 @@ Ready to collaborate and move faster as a team? Recce Cloud adds real-time colla
150
170
  - Launch demo links from your CI with full context
151
171
 
152
172
  Recce Cloud is a hosted version of Recce that standardizes your workflow, keeps teams aligned, and reduces errors—so you can ship data changes with confidence.
153
- 👉 [View Pricing and Plans](https://datarecce.io/pricing)
173
+ 👉 [View Pricing and Plans](https://reccehq.com/pricing)
154
174
 
155
175
  ## Community & Support
156
176
 
157
- Here's where you can get in touch with the Recce team and find support:
177
+ Here's where you can get in touch with the Recce team and find support, add a subscribe to our newsletter option as well:
158
178
 
159
- - [dbt Slack](https://www.getdbt.com/community/join-the-community) in
160
- the [#tools-recce](https://getdbt.slack.com/archives/C05C28V7CPP) channel
161
- - Email us [product@datarecce.io](mailto:product@datarecce.io)
179
+ - [chat on our website](https://reccehq.com/). We welcome you to start a chat or drop us a note. Our team monitors the chat box and will follow up soon.
180
+ - [Our discord](https://discord.com/invite/VpwXRC34jz)
181
+ - [dbt Slack](https://www.getdbt.com/community/join-the-community) in the [#tools-recce](https://getdbt.slack.com/archives/C05C28V7CPP) channel
182
+ - Email us [help@reccehq.com](mailto:help@reccehq.com)
162
183
 
163
- If you believe you have found a bug, or there is some missing functionality in Recce, please open
164
- a [GitHub Issue](https://github.com/DataRecce/recce/issues).
184
+ If you believe you have found a bug on our open source, or there is some missing functionality in Recce, please open a [GitHub Issue](https://github.com/DataRecce/recce/issues).
165
185
 
166
186
  ## Recce on the web
167
187
 
168
188
  You can follow along with news about Recce and blogs from our team in the following places:
169
189
 
170
- - [DataRecce.io](https://DataRecce.io)
190
+ - [RecceHQ.com](https://reccehq.com/)
171
191
  - [LinkedIn](https://www.linkedin.com/company/datarecce)
172
- - [Medium blog](https://medium.com/inthepipeline)
192
+ - [Blog](https://blog.reccehq.com/)
173
193
  - [@datarecce](https://x.com/DataRecce) on Twitter/X
174
194
  - [@DataRecce@mastodon.social](https://mastodon.social/@DataRecce) on Mastodon
175
195
  - [@datarecce.bsky.social](https://bsky.app/profile/datarecce.bsky.social) on BlueSky
@@ -0,0 +1,183 @@
1
+ recce/VERSION,sha256=9izsnSUBqid_33HZ0DBeqsxiw1PQui05hbqXaxu7Ucw,16
2
+ recce/__init__.py,sha256=gT5G7sJ78C1GHAWr4pna6UvVNxPKs29_EgFS_ia3DT4,2554
3
+ recce/artifact.py,sha256=zksgrKEONdMmBRgM59gzf6srsr0As_UADZTQrWfC2cE,9759
4
+ recce/cli.py,sha256=TY2l_BKVVe_bdr0t0J5xEfo-N3irbTHCuspVB0yTDs8,61119
5
+ recce/config.py,sha256=noWimlOdGHAtBhNoApK5gRTQMwNPmUGAmZu39MV7szo,4697
6
+ recce/connect_to_cloud.py,sha256=CT7ELcVCTNa9ukSp_gMrJ0Av2UCUpF9H03tIk9y7U-4,4768
7
+ recce/core.py,sha256=Fph2kodFqzXy3cob80M9-nPVcv-Xxzme-E-bKFJ4cBQ,10754
8
+ recce/diff.py,sha256=L2_bzQ3__PO-0aeir8PHF8FvSOUmQ8WcDXgML1-mHdY,748
9
+ recce/exceptions.py,sha256=SclQ678GrHGjw7p_ZFJ3vZaL_yMU5xABeIAm2u_W2bk,592
10
+ recce/git.py,sha256=8Eg-6NzL-KjA3rT-ibbAyaCwGlzV0JqH3yGikrJNMDA,2344
11
+ recce/github.py,sha256=vIwHTpB8YWEUcHQlW0nToUUKmGGO0NcmB_Q5RvxQLLE,7438
12
+ recce/mcp_server.py,sha256=0CRfMaPOgxV_Fji4EWy6vBgg0SpCV0o7xUnpGTnGaKQ,31560
13
+ recce/pull_request.py,sha256=dLHsdiMtL4NC6Vkwp8Mq4baJmnqbm19lfiDti9MREN0,3850
14
+ recce/run.py,sha256=_PQeeCQDWqAyTQdEoydzY5_hfEg7d6-WH5quCZzkGvo,14616
15
+ recce/server.py,sha256=x_6YK-8qb6aaGSmBMhq-CUxTcEDxnT04U2USrecHUNs,28605
16
+ recce/summary.py,sha256=JRQxHLdeCUomGXmeyt9oOydosaKtlR0jGywI5xlocno,20245
17
+ recce/adapter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ recce/adapter/base.py,sha256=T_JNeLHgiHSaegw-DbrvHOaYjMyZcjj2Qtg5cWh_fco,3548
19
+ recce/adapter/sqlmesh_adapter.py,sha256=IU3N-F6ToDoO7_bV5vsG8pmTuDcbFtewTIuCxedTaRM,5046
20
+ recce/adapter/dbt_adapter/__init__.py,sha256=IsmxDxiammhZrwPB6M7mL56gRotr4UySbn3ZW8Vw9oE,68041
21
+ recce/adapter/dbt_adapter/dbt_version.py,sha256=M7aedZIWslXnJsryK8Ki4OL_t2oAKxy4uE2pRwfWIkk,1228
22
+ recce/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ recce/apis/check_api.py,sha256=bNqzZmH1O9l3NFzmcKs9NEqM0O8wQHUd1xLI5gCOtew,6479
24
+ recce/apis/check_events_api.py,sha256=_NCL-JMHVtc7WnWi5TsGctitRQhw55x0C20shiixEbM,10561
25
+ recce/apis/check_func.py,sha256=inDJc1WL_HdDEKUWU3fjQ5YT7DI9o3oJBtifNhBF3Uo,4219
26
+ recce/apis/run_api.py,sha256=eOaxOxXDkH59uqGCd4blld7edavUx7JU_DCd2WAYrL8,3416
27
+ recce/apis/run_func.py,sha256=8twHQxbc75RTMcdSUEH4bLn1Lu6JGpdZ9Ap6BtqH_Sc,9015
28
+ recce/data/404.html,sha256=UVNZXi99MpSwgO_vtvgSvamUFMztzZOcsuHPzMDZR-k,26886
29
+ recce/data/__next.@lineage.!KHNsb3Qp.__PAGE__.txt,sha256=aBQtd8X9kTehIIGJranZKTIU4FmHdyllSmLZ3dDtdTo,1268
30
+ recce/data/__next.@lineage.!KHNsb3Qp.txt,sha256=-HntdvSmiL0r_eX1h1QXLmOcblb0eUVznxNWTL67Uw8,434
31
+ recce/data/__next.__PAGE__.txt,sha256=uIPnIZNdKBxZ7kM_lJeVQTQQAZGwUNplOu2n9eRr9tE,430
32
+ recce/data/__next._full.txt,sha256=2yv9-t12KqNsZ4VNce7Y4_cj0ndS-Ez6gWKXx3Q2ZWU,10155
33
+ recce/data/__next._head.txt,sha256=bwlMRNh8v9PVquYO1AJmVfA9liNOA0ORjXHmGBZMQLU,1088
34
+ recce/data/__next._index.txt,sha256=ckQvSQcHluZ3xmn6eqizq6g6Dn0KVUSs56xsO-6EHyQ,8070
35
+ recce/data/__next._tree.txt,sha256=214v8neRplMPJ9WCQmIS72_pqXEY92rJbkd_0Lfqmqo,900
36
+ recce/data/auth_callback.html,sha256=H-XfdlAFiw5VU2RpKBVQbwh1AIqJrPHrFA0S09nNJZA,94779
37
+ recce/data/favicon.ico,sha256=B2mBumUOnzvUrXrqNkrc5QfdDXjzEXRcWkWur0fJ6sM,2565
38
+ recce/data/index.html,sha256=BbCH-R30b2FPtUiz3HlfN9YAXF0Bh3xYoTRlWLE-5Rc,28941
39
+ recce/data/index.txt,sha256=2yv9-t12KqNsZ4VNce7Y4_cj0ndS-Ez6gWKXx3Q2ZWU,10155
40
+ recce/data/404/index.html,sha256=UVNZXi99MpSwgO_vtvgSvamUFMztzZOcsuHPzMDZR-k,26886
41
+ recce/data/_next/static/chunks/025a7e3e3f9f40ae.js,sha256=rOc8WokLfdpWrnNxuIq_fq4tfP0VP8DwzBMJZ43H-50,174692
42
+ recce/data/_next/static/chunks/0ce56d67ef5779ca.js,sha256=0aOpQ4EQOrCPh9lQAZiVJLE-Q7zVgU3kJuKhnUvt1y0,93091
43
+ recce/data/_next/static/chunks/1a6a78780155dac7.js,sha256=CdOegRmpUUNCCqhVrkNljexLd1jM8W6gPiUyN5OJ0PA,172887
44
+ recce/data/_next/static/chunks/1de8485918b9182a.css,sha256=rt7z52vPIrlyx9aKsNuh8bEjVTU-C7m7m3uztp0zD-I,15538
45
+ recce/data/_next/static/chunks/1e4b1b50d1e34993.js,sha256=Ars9KX22w8WR2FdA8jg9Es7en-aeCZozcep40cLj550,29737
46
+ recce/data/_next/static/chunks/206d5d181e4c738e.js,sha256=Rs3VpgT5XONFfJQ_Z-P6BbU2OgbTB9Yp7lcBcMjVF3I,20116
47
+ recce/data/_next/static/chunks/2c357efc34c5b859.js,sha256=_7ZIusm3-Klwk6lOmKPUlPdxraCNw1lUA-lUU7lH0Ps,405348
48
+ recce/data/_next/static/chunks/2e9d95d2d48c479c.js,sha256=FKL5fPCCvJ1bUnDx721jrS4VIgNQZXn0TQcgvR0biko,27948
49
+ recce/data/_next/static/chunks/2f016dc4a3edad2e.js,sha256=wuHBAbH8qRPC3bMZSco9NpI0FHtqxym6MWmHxy5Qu6k,84376
50
+ recce/data/_next/static/chunks/313251962d698f7c.js,sha256=yIGfATfAvt9D9pzZm6EB2woCKQbFSB4Px3qqXoHIU24,440
51
+ recce/data/_next/static/chunks/3a9f021f38eb5574.css,sha256=SXXGi5Mue-CmYS4h6GKVgCwCAwb1JP9YIH0KP5rOO3I,12396
52
+ recce/data/_next/static/chunks/40079da8d2b8f651.js,sha256=NQi4p_6u2WaQQUU_BYpaEboqhAK26_8uR_Ga71gEpaE,15512
53
+ recce/data/_next/static/chunks/4599182bffb64661.js,sha256=f_pkryuB1c4EkOzDjSrcvTAjzgA1qrc-zpV_j_CXy4I,80248
54
+ recce/data/_next/static/chunks/4e62f6e184173580.js,sha256=3zVhR6h7yw16S5Fku4Be8kBm8SbK5hTvqwBDt3WXHMY,29737
55
+ recce/data/_next/static/chunks/5c4dfb0d09eaa401.js,sha256=0bySikUAHpLgNOi_9c7Kp7mZi3xkGw2NwRoWZqXO-oY,7219
56
+ recce/data/_next/static/chunks/69e4f06ccfdfc3ac.js,sha256=bDd7rdLQ3l0ERP_R75iC6KJr9LOQBX-4Lh-QW0aVvmE,12881
57
+ recce/data/_next/static/chunks/6b206cb4707d6bee.js,sha256=B-Ep9aZyeBH1zA7l1yXk9gjdOsFgki_zqe3GUPgd-BM,440
58
+ recce/data/_next/static/chunks/6d8557f062aa4386.css,sha256=MlgjxPGfcm3dWpwn8RZQaP4YtoIUW6M62XKopFlYtis,2957
59
+ recce/data/_next/static/chunks/7fbe3650bd83b6b5.js,sha256=w7mKQG-6o4Pv504eL56DSdqlL0-tdpMcNpTZFwwTpmA,4951
60
+ recce/data/_next/static/chunks/83fa823a825674f6.js,sha256=ZB-GXtRvNiziwDOzRWAzeuNSXATAF4XF-LFdNJSQAJY,30746
61
+ recce/data/_next/static/chunks/848a6c9b5f55f7ed.js,sha256=R699K85Acm9as9890ypfbrU9NVCiShRlpjJ40Ra2VXY,1273
62
+ recce/data/_next/static/chunks/859462b0858aef88.css,sha256=uSRJVK5WQZu_EXy-BtMLYkQVU8ies8oeGYhRSe9SH-c,8572
63
+ recce/data/_next/static/chunks/923964f18c87d0f1.css,sha256=vB4QbU4MAeW0I6PF1Wm-yglXwXrX6xf-ru7hFk1EnuY,1799
64
+ recce/data/_next/static/chunks/939390f911895d7c.js,sha256=JEBd-3jSCEieJgBGrFV4inCMf9ZRYORqG5hirMPtZ9s,172887
65
+ recce/data/_next/static/chunks/99a9817237a07f43.js,sha256=RKul9jIW0h5M7cizGBxy6V0sHKUbEiyl4JgTiL0Zca8,29737
66
+ recce/data/_next/static/chunks/9fed8b4b2b924054.js,sha256=6T4ZIAjWJDZNU4e-TH8oppnTWAVkMTvVSYNYgaXYHbI,1785127
67
+ recce/data/_next/static/chunks/a6dad97d9634a72d.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
68
+ recce/data/_next/static/chunks/b6949f6c5892110c.js,sha256=3JV0fQPqn7OL5eIqzH2pmsUybKesfC12yrmecIJGZPM,1468
69
+ recce/data/_next/static/chunks/b851a1d3f8149828.js,sha256=ac6TuzYwbEpdg_gWMXJWUWY4XPCstxworyodlyPV5pM,119839
70
+ recce/data/_next/static/chunks/c734f9ad957de0b4.js,sha256=fz3ogjk1Wan2duSu7T73mfR5qQZva8Z4MneBkWGNK4M,283
71
+ recce/data/_next/static/chunks/cdde321b0ec75717.js,sha256=Ckh6S8wwqwqbPDaNWd6ENOz9jLLncR7vqpTae3ifpuQ,10305
72
+ recce/data/_next/static/chunks/d0f91117d77ff844.css,sha256=JcMeYq6PYzPIXv6t2e8xoHD2JVVqN49CMDvI5LsmO1o,561
73
+ recce/data/_next/static/chunks/d6c8667911c2500f.js,sha256=sJIIcsWr5TtcfnPnHatN5D_xf0gQRjTAp0GAKoJ5VjU,213907
74
+ recce/data/_next/static/chunks/da8dab68c02752cf.js,sha256=W5O2UV7KaITUdjMHrsAi9xR598guQFHTFY6n26Fw1Is,922023
75
+ recce/data/_next/static/chunks/dc074049c9d12d97.js,sha256=p0gCbQdt2nkL7pxaqL-o6N7zewVGcRkZRBq20L6yVTI,114172
76
+ recce/data/_next/static/chunks/ee7f1a8227342421.js,sha256=buyZVNJX310ZivnAKsznX0rERLhPwvp7CtycV-HEoSU,1389
77
+ recce/data/_next/static/chunks/fa2f4e56c2fccc73.js,sha256=C4Z3H0SGkujIdNYOdeg6mldZ5j8lUb_8nwj0FYqSjJE,440
78
+ recce/data/_next/static/chunks/turbopack-1fad664f62979b93.js,sha256=H5AKpg3wN8ADKK07g97Kz5KBFZn55Yh-hpy9QgsYYRA,9910
79
+ recce/data/_next/static/media/favicon.a8d38d84.ico,sha256=B2mBumUOnzvUrXrqNkrc5QfdDXjzEXRcWkWur0fJ6sM,2565
80
+ recce/data/_next/static/media/montserrat-cyrillic-800-normal.d80d830d.woff2,sha256=6XlujeGVTucujV3iPSa7j1d9S5A6uuH-EduJBCeVFu8,11180
81
+ recce/data/_next/static/media/montserrat-cyrillic-800-normal.f9d58125.woff,sha256=XiXifLCW_CfSR4eNCIxDzi3Cg59f6L34ARTHrw-hoDA,10924
82
+ recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.076c2a93.woff2,sha256=9hQT0vu2HmOb21Pk5Ht7bydZU7QIsY7rCyAPtm1VxM8,12144
83
+ recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.a4fa76b5.woff,sha256=lpODDPTBtDBAla5_gN_MO8RAFRT1bUJQ1XsBGNN3LHA,12036
84
+ recce/data/_next/static/media/montserrat-latin-800-normal.cde454cc.woff2,sha256=uoJvuEwulhV4rfOgi1d4uHkF1EQ0RdHVbYT58VfV6ks,19012
85
+ recce/data/_next/static/media/montserrat-latin-800-normal.d5761935.woff,sha256=JvnmESYLcsQ0Z9Cgq09WxQaOxDHkHZ4wiPp0EXyghtg,20660
86
+ recce/data/_next/static/media/montserrat-latin-ext-800-normal.40ec0659.woff2,sha256=Wfbr63GhTGTtxTjrp4oBDBye9oCmalWew89LDRLbGos,33624
87
+ recce/data/_next/static/media/montserrat-latin-ext-800-normal.b671449b.woff,sha256=1UdAsVT5LZ__hVWZ8WuyQ16miAO5eVOIV0Qy1FCS17c,41688
88
+ recce/data/_next/static/media/montserrat-vietnamese-800-normal.9f7b8541.woff,sha256=IOzp6YFKpjBM18q3jyRJYrgPJpNGDnEehwa3vyleQ6s,7328
89
+ recce/data/_next/static/media/montserrat-vietnamese-800-normal.f9eb854e.woff2,sha256=JPFJw2_X2Eih976ylPgpqHZJJxgdMAL3sCAhKV51-P0,7900
90
+ recce/data/_next/static/nX-Uz0AH6Tc6hIQUFGqaB/_buildManifest.js,sha256=lHbgr9P52mimTm7FhjEZH9PqymLJ9aN351F_6aieWeo,219
91
+ recce/data/_next/static/nX-Uz0AH6Tc6hIQUFGqaB/_clientMiddlewareManifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
92
+ recce/data/_next/static/nX-Uz0AH6Tc6hIQUFGqaB/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
93
+ recce/data/_not-found/__next._full.txt,sha256=PhoZBUQXVR-EJoamdjd_VnOeZR3IHXCe-eX48FC7VxM,8614
94
+ recce/data/_not-found/__next._head.txt,sha256=L1xYhymj_nSVAZANl4F9LC0Qnzau5XvbqDbYgC6tqBk,1139
95
+ recce/data/_not-found/__next._index.txt,sha256=IoXf-ZyL5uMNoSWvPmj4UCyJVgG-AjtDcp51qqHFivA,4952
96
+ recce/data/_not-found/__next._not-found.__PAGE__.txt,sha256=HDQGlUGx1MSwbXXopa8tZ6iFfN5L3OrTHFrp0dYdbeE,1450
97
+ recce/data/_not-found/__next._not-found.txt,sha256=-HntdvSmiL0r_eX1h1QXLmOcblb0eUVznxNWTL67Uw8,434
98
+ recce/data/_not-found/__next._tree.txt,sha256=Py_I7xg2Os5-P_depVVbM4M4ExR2banEWCyc58RgREA,711
99
+ recce/data/_not-found/index.html,sha256=UVNZXi99MpSwgO_vtvgSvamUFMztzZOcsuHPzMDZR-k,26886
100
+ recce/data/_not-found/index.txt,sha256=PhoZBUQXVR-EJoamdjd_VnOeZR3IHXCe-eX48FC7VxM,8614
101
+ recce/data/checks/__next.@lineage.__DEFAULT__.txt,sha256=z2Tao33BxSgm0G4gLlXXb8IwjcOddo2lAygJDt3aims,1268
102
+ recce/data/checks/__next._full.txt,sha256=tyKoVY7ibQA_gEXyU72P4OJVVJiC-k1vPryZJKvsfw0,11516
103
+ recce/data/checks/__next._head.txt,sha256=bwlMRNh8v9PVquYO1AJmVfA9liNOA0ORjXHmGBZMQLU,1088
104
+ recce/data/checks/__next._index.txt,sha256=ckQvSQcHluZ3xmn6eqizq6g6Dn0KVUSs56xsO-6EHyQ,8070
105
+ recce/data/checks/__next._tree.txt,sha256=coPsVGETp_po-RBaDJFYXgY9bMmgisHXmCWjJAQCCCY,906
106
+ recce/data/checks/__next.checks.__PAGE__.txt,sha256=ojalvfcOvRniwMf0gfvG1upkS9UIKd830vbvGDDHMiw,1559
107
+ recce/data/checks/__next.checks.txt,sha256=-HntdvSmiL0r_eX1h1QXLmOcblb0eUVznxNWTL67Uw8,434
108
+ recce/data/checks/index.html,sha256=oDz2mkzPpC5VIXCDM9vuXhLMbo3CrutkVhrhpDnPURM,32214
109
+ recce/data/checks/index.txt,sha256=tyKoVY7ibQA_gEXyU72P4OJVVJiC-k1vPryZJKvsfw0,11516
110
+ recce/data/imgs/reload-image.svg,sha256=l-jdOsD0OBCpFrVYh1ubO8oajafPuPNs6MYnbanO7K0,840
111
+ recce/data/imgs/feedback/thumbs-down.png,sha256=q9KVIbaZku1TWkYHuleYlO-b6HsTApYh3St5xNHMGMg,10695
112
+ recce/data/imgs/feedback/thumbs-up.png,sha256=VF3BH8bmYEqcSsMDJO57xMqW4t6crCXUXaMlOPgI_OE,10556
113
+ recce/data/lineage/__next.@lineage.__DEFAULT__.txt,sha256=z2Tao33BxSgm0G4gLlXXb8IwjcOddo2lAygJDt3aims,1268
114
+ recce/data/lineage/__next._full.txt,sha256=Pwd-r45GCsScEKzLgpdzT7JoWWAqkKvJhrkiVFaeGaA,11518
115
+ recce/data/lineage/__next._head.txt,sha256=bwlMRNh8v9PVquYO1AJmVfA9liNOA0ORjXHmGBZMQLU,1088
116
+ recce/data/lineage/__next._index.txt,sha256=ckQvSQcHluZ3xmn6eqizq6g6Dn0KVUSs56xsO-6EHyQ,8070
117
+ recce/data/lineage/__next._tree.txt,sha256=7XFDaJbeDAMO8SIS_Fu9OE8CT2DHwCDt6Sw3NIaV5BE,908
118
+ recce/data/lineage/__next.lineage.__PAGE__.txt,sha256=PrqEITviikmQUs-1AYIdbs0ZnlsUeDWTI4Bn-nUam0I,1559
119
+ recce/data/lineage/__next.lineage.txt,sha256=-HntdvSmiL0r_eX1h1QXLmOcblb0eUVznxNWTL67Uw8,434
120
+ recce/data/lineage/index.html,sha256=IQHrmSA39ozDaUYY1h8wqkx7tf0spFuwPoDBpLlIleU,30935
121
+ recce/data/lineage/index.txt,sha256=Pwd-r45GCsScEKzLgpdzT7JoWWAqkKvJhrkiVFaeGaA,11518
122
+ recce/data/logo/recce-logo-white.png,sha256=y3re8iEucJnMUkAkRS2CjWHTlOydyvgWdWjuQKcXDbk,46923
123
+ recce/data/query/__next.@lineage.__DEFAULT__.txt,sha256=z2Tao33BxSgm0G4gLlXXb8IwjcOddo2lAygJDt3aims,1268
124
+ recce/data/query/__next._full.txt,sha256=2cJV-j3R92S-QrSKHRCWrnljVejmNeIXbJVF_nBXcTM,11183
125
+ recce/data/query/__next._head.txt,sha256=bwlMRNh8v9PVquYO1AJmVfA9liNOA0ORjXHmGBZMQLU,1088
126
+ recce/data/query/__next._index.txt,sha256=ckQvSQcHluZ3xmn6eqizq6g6Dn0KVUSs56xsO-6EHyQ,8070
127
+ recce/data/query/__next._tree.txt,sha256=_00IyHkY6CKCkdzvxDunD2RhbqWJKqGE9iZK4B5fMQU,904
128
+ recce/data/query/__next.query.__PAGE__.txt,sha256=SYFe-etxmHi7st8Ehx4jjxD9LSbFr1qA-1vHSZmpM-I,1260
129
+ recce/data/query/__next.query.txt,sha256=-HntdvSmiL0r_eX1h1QXLmOcblb0eUVznxNWTL67Uw8,434
130
+ recce/data/query/index.html,sha256=meq1LXgVUXae41qH6m6c7Q2227zepWwtYGmvjHcU-B0,69114
131
+ recce/data/query/index.txt,sha256=2cJV-j3R92S-QrSKHRCWrnljVejmNeIXbJVF_nBXcTM,11183
132
+ recce/event/CONFIG,sha256=w8_AVcNu_JF-t8lNmjOqtsXbeOawMzpEhkISaMlm-iU,48
133
+ recce/event/CONFIG.bak,sha256=bs3XW12lptHahbwPpu0ibjLsgqlFK0j9UtjbA0IoTec,25
134
+ recce/event/SENTRY_DNS,sha256=nWXZevLC4qDScvNtjs329X13oxqvtFI_Kiu6cfCDOBA,83
135
+ recce/event/__init__.py,sha256=UKo0U0OZTkWsr7QBnCwXOHu7XtY0dhYPRTXuCsX8uIw,8847
136
+ recce/event/collector.py,sha256=6Vvcz9zejNNMytZ_K0HFV_kN6-S5B-SUOglBrlSPBo8,5884
137
+ recce/event/track.py,sha256=3wBzpB8l2gtnDzjh-wJatmLeBbtnP0q-BLQZQVQ23sM,5310
138
+ recce/models/__init__.py,sha256=F7cgALtdWnwv37R0eEgKZ_yBsMwxWnUfo3jAZ3u6qyU,209
139
+ recce/models/check.py,sha256=dSXnPZIUD8z8xy8Z9csSLxVQSOcqjfftqJLxTDw7GoA,16515
140
+ recce/models/run.py,sha256=QK2gvOWvko9YYhd2NLs3BPt5l4MSCZGwpzTAiqx9zJw,1161
141
+ recce/models/types.py,sha256=K8oWuYueqY2C7pKu65wSCaKMglPvtBH5DUkGrSYfFPk,6700
142
+ recce/state/__init__.py,sha256=V1FRPTQJUz-uwI3Cn8wDa5Z9bueVs86MR_1Ti4RGfPc,650
143
+ recce/state/cloud.py,sha256=7a6g9FXPVfq-beHQ8I7STlRMR2Y_peMJnlqysmeM7OY,25987
144
+ recce/state/const.py,sha256=5XwGWEv4RhGucgl1RHWg_67gVY7fV0-jsbZPpfnOCTs,828
145
+ recce/state/local.py,sha256=bZIkl7cAfyYaGgYEr3uD_JLrtwlHBnu8_o1Qz2djQzw,1920
146
+ recce/state/state.py,sha256=EKx4h0unxjC-dt2EGYFUyjKijotKHbE_wdS5AWBEq1k,3645
147
+ recce/state/state_loader.py,sha256=i4mw0nQ75uwB-O42HZvbYSJFkfSW7ak5mIhfapX5vi4,5965
148
+ recce/tasks/__init__.py,sha256=b553AtDHjYROgmMePv_Hv_X3fjh4iEn11gzzpUJz6_o,610
149
+ recce/tasks/core.py,sha256=JFYa1CfgOiRPQ7KVTwMuxJjhMB-pvCwB-xezVt-h3RU,4080
150
+ recce/tasks/dataframe.py,sha256=F9tOIjdJA_mkgzGmqdzfSfmhpJhdDb9DYYpWXAuBOyE,5868
151
+ recce/tasks/histogram.py,sha256=SMdSznzrBdAFvAbhsoUGAK9o0QUMYy00IVbamUVTpBk,13601
152
+ recce/tasks/lineage.py,sha256=_PbY0ZkDr620U8V2olqoX_T9XA0-G8ILt_6m1Q5TfBs,541
153
+ recce/tasks/profile.py,sha256=gMgms9qvdDsihh2aSC6LvCm9ggah4Oq3xjvmCh_exrU,11352
154
+ recce/tasks/query.py,sha256=NBNYRVgrc84NC12bq_daCPQ5HwMknPI_BQzMVsdqH98,14782
155
+ recce/tasks/rowcount.py,sha256=WZ1vNI0YJ40G-DBgx2apjNAhoQg1bvzrtBpUZFou1Nc,9908
156
+ recce/tasks/schema.py,sha256=s7CsmUoKNDx-WM87X_cCOpKieKxqEZITFzQTEq3ZckU,2432
157
+ recce/tasks/top_k.py,sha256=vY3VCBmg61E8I4V-9-hJOv5RCYCmhxl6sHiKR9Zv7eE,5521
158
+ recce/tasks/utils.py,sha256=xuU_5ZfQEZdSnNgxBJPsd-1sZfrraeKSRco7hhy4RKU,4966
159
+ recce/tasks/valuediff.py,sha256=IV2SOBeGMGHMGatmJQe12-Rfjp9y9B9qXaOndCR_EfM,18837
160
+ recce/util/__init__.py,sha256=cDvL3WT32cJR9CUPIJmibwJoyYcB3ZaKBFbOZDyvqP8,95
161
+ recce/util/api_token.py,sha256=iLS3VzLlsTfbXBLDoPPelmVlj6UdcEtGmfxdFQxXXSg,3223
162
+ recce/util/breaking.py,sha256=QMVq2l2fR7gNT4-n4kdhFTPf2NFev-jzecBSw_AwqFg,13086
163
+ recce/util/cache.py,sha256=QB6wzxe0M3jNTwP0M27Ys8F2hF-oda4-LyXXG9THuZQ,646
164
+ recce/util/cll.py,sha256=p8BrsG_1Lm-jXO8n4ulUgFw13C4mN0WjCXZbihDxQrs,13253
165
+ recce/util/io.py,sha256=UTUDncG4habAZZSZ1Y7i7Zpzu6FBtsfWI3y96k-0zkc,3495
166
+ recce/util/lineage.py,sha256=0XXOO05eJ3GPUNX9V9GBQS2iRFXxWZJoJbV7w-jQ0t8,2470
167
+ recce/util/logger.py,sha256=6UgLFkRiur9jJfu2ZRdo4LUvMw4f75V-l-1HT1-sgKo,747
168
+ recce/util/onboarding_state.py,sha256=kwFirKlfXdl5WFkR_nmilqGKFyELNcSPMqYq-by35fk,1991
169
+ recce/util/perf_tracking.py,sha256=FjhrdbbXIgybxS_oPpFsJ9VUDR93d7bUs8VNNqpXNxw,2483
170
+ recce/util/pydantic_model.py,sha256=KumKuyCjbTzEMsKLE4-b-eZfp0gLhYDdmVtw1-hxiJw,587
171
+ recce/util/recce_cloud.py,sha256=fTYOX8_ihvjovlnfPIl2sS-H72JD7v75--OwxDhISK4,18598
172
+ recce/util/singleton.py,sha256=1cU99I0f9tjuMQLMJyLsK1oK3fZJMsO5-TbRHAMXqds,627
173
+ recce/util/startup_perf.py,sha256=SU5yGG6R-U6VYWcbFtzxzNpfzbBqEgwLoQlj5H0E3vU,3764
174
+ recce/util/cloud/__init__.py,sha256=RIaTM5FZSUj1U4pVTJqvzUQxIdPZK-Re1i_vOwi3ECE,335
175
+ recce/util/cloud/base.py,sha256=vGeQK8YZD-bPTwA9mYuaND5qUnd1HZpXeTaoJ0oixXU,3717
176
+ recce/util/cloud/check_events.py,sha256=o8TibA0XxaPUajJaeS5tSafnDn7NdFfmwWILGMW4I5I,6303
177
+ recce/util/cloud/checks.py,sha256=4hxJpPZHzv3w2fEGXXo3PYMhDFPOE77fhqalaHCnpFI,7289
178
+ recce/yaml/__init__.py,sha256=PAym5akbtL24Ag7VR7EW8SS2VINNaJU06esbfe-ek-U,1328
179
+ recce_nightly-1.30.0.20251221.dist-info/METADATA,sha256=1i7otiJHb8NYrmZzVr34Qigiqez-1giWo0Jq_SWS_Uw,10253
180
+ recce_nightly-1.30.0.20251221.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
181
+ recce_nightly-1.30.0.20251221.dist-info/entry_points.txt,sha256=oqoY_IiwIqXbgrIsPnlqUqao2eiIeP2dprowkOlmeyg,40
182
+ recce_nightly-1.30.0.20251221.dist-info/licenses/LICENSE,sha256=CQjjMy9aYPhfe8xG_bcpIfKtNkdxLZ5IOb8oPygtUhY,11343
183
+ recce_nightly-1.30.0.20251221.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/_error":["static/chunks/pages/_error-e7650df18ca04bde.js"],sortedPages:["/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();