recce-nightly 0.58.0.20250318__py3-none-any.whl → 0.59.0.20250320__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.
- recce/VERSION +1 -1
- recce/adapter/dbt_adapter/__init__.py +13 -3
- recce/config.py +2 -2
- recce/data/404.html +1 -1
- recce/data/_next/static/chunks/7a8a3e83-277b00caf162a419.js +1 -0
- recce/data/_next/static/chunks/app/page-cb35d0a6bd52f477.js +1 -0
- recce/data/index.html +2 -2
- recce/data/index.txt +2 -2
- recce/models/types.py +1 -0
- recce/tasks/__init__.py +1 -1
- recce/tasks/profile.py +70 -6
- {recce_nightly-0.58.0.20250318.dist-info → recce_nightly-0.59.0.20250320.dist-info}/METADATA +3 -2
- {recce_nightly-0.58.0.20250318.dist-info → recce_nightly-0.59.0.20250320.dist-info}/RECORD +20 -20
- {recce_nightly-0.58.0.20250318.dist-info → recce_nightly-0.59.0.20250320.dist-info}/WHEEL +1 -1
- tests/tasks/test_profile.py +20 -3
- recce/data/_next/static/chunks/7a8a3e83-1a4edb77e4d0142d.js +0 -1
- recce/data/_next/static/chunks/app/page-904cdda04903cb1a.js +0 -1
- /recce/data/_next/static/{O27gCGR2ICoHv7Bz0-rDS → TRNetD1eFSVopaij9Ngbm}/_buildManifest.js +0 -0
- /recce/data/_next/static/{O27gCGR2ICoHv7Bz0-rDS → TRNetD1eFSVopaij9Ngbm}/_ssgManifest.js +0 -0
- {recce_nightly-0.58.0.20250318.dist-info → recce_nightly-0.59.0.20250320.dist-info}/entry_points.txt +0 -0
- {recce_nightly-0.58.0.20250318.dist-info → recce_nightly-0.59.0.20250320.dist-info/licenses}/LICENSE +0 -0
- {recce_nightly-0.58.0.20250318.dist-info → recce_nightly-0.59.0.20250320.dist-info}/top_level.txt +0 -0
recce/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.59.0.20250320
|
|
@@ -12,6 +12,7 @@ from typing import Callable, Dict, List, Optional, Tuple, Iterator, Any, Set, Un
|
|
|
12
12
|
from recce.event import log_performance
|
|
13
13
|
from recce.exceptions import RecceException
|
|
14
14
|
from recce.util.cll import cll, CLLPerformanceTracking
|
|
15
|
+
from ...tasks.profile import ProfileTask
|
|
15
16
|
|
|
16
17
|
try:
|
|
17
18
|
import agate
|
|
@@ -38,6 +39,7 @@ dbt_supported_registry: Dict[RunType, Type[Task]] = {
|
|
|
38
39
|
RunType.QUERY_DIFF: QueryDiffTask,
|
|
39
40
|
RunType.VALUE_DIFF: ValueDiffTask,
|
|
40
41
|
RunType.VALUE_DIFF_DETAIL: ValueDiffDetailTask,
|
|
42
|
+
RunType.PROFILE: ProfileTask,
|
|
41
43
|
RunType.PROFILE_DIFF: ProfileDiffTask,
|
|
42
44
|
RunType.ROW_COUNT: RowCountTask,
|
|
43
45
|
RunType.ROW_COUNT_DIFF: RowCountDiffTask,
|
|
@@ -257,6 +259,7 @@ class DbtAdapter(BaseAdapter):
|
|
|
257
259
|
|
|
258
260
|
if 'dbt_profiler' not in supported_dbt_packages:
|
|
259
261
|
support_map[RunType.PROFILE_DIFF.value] = False
|
|
262
|
+
support_map[RunType.PROFILE.value] = False
|
|
260
263
|
|
|
261
264
|
if 'audit_helper' not in supported_dbt_packages:
|
|
262
265
|
support_map[RunType.VALUE_DIFF.value] = False
|
|
@@ -521,10 +524,10 @@ class DbtAdapter(BaseAdapter):
|
|
|
521
524
|
def get_manifest(self, base: bool):
|
|
522
525
|
return self.curr_manifest if base is False else self.base_manifest
|
|
523
526
|
|
|
524
|
-
def generate_sql(self, sql_template: str, base: bool = False, context=None):
|
|
527
|
+
def generate_sql(self, sql_template: str, base: bool = False, context=None, provided_manifest=None):
|
|
525
528
|
if context is None:
|
|
526
529
|
context = {}
|
|
527
|
-
manifest = as_manifest(self.get_manifest(base))
|
|
530
|
+
manifest = provided_manifest if provided_manifest is not None else as_manifest(self.get_manifest(base))
|
|
528
531
|
parser = SqlBlockParser(self.runtime_config, manifest, self.runtime_config)
|
|
529
532
|
|
|
530
533
|
if dbt_version >= dbt_version.parse('v1.8'):
|
|
@@ -777,6 +780,7 @@ class DbtAdapter(BaseAdapter):
|
|
|
777
780
|
|
|
778
781
|
cll_tracker = CLLPerformanceTracking()
|
|
779
782
|
cll_tracker.set_total_nodes(len(nodes))
|
|
783
|
+
manifest = as_manifest(self.get_manifest(base))
|
|
780
784
|
for node in nodes.values():
|
|
781
785
|
resource_type = node.get('resource_type')
|
|
782
786
|
if resource_type not in {'model', 'seed', 'source', 'snapshot'}:
|
|
@@ -790,6 +794,11 @@ class DbtAdapter(BaseAdapter):
|
|
|
790
794
|
_apply_all_columns(node, 'unknown', [])
|
|
791
795
|
continue
|
|
792
796
|
|
|
797
|
+
# dbt <= 1.8, MetricFlow expects the time spine table to be named metricflow_time_spine
|
|
798
|
+
if node.get('name') == 'metricflow_time_spine':
|
|
799
|
+
_apply_all_columns(node, 'source', [])
|
|
800
|
+
continue
|
|
801
|
+
|
|
793
802
|
if not node.get('columns', {}):
|
|
794
803
|
# no catalog
|
|
795
804
|
continue
|
|
@@ -829,7 +838,8 @@ class DbtAdapter(BaseAdapter):
|
|
|
829
838
|
}
|
|
830
839
|
|
|
831
840
|
try:
|
|
832
|
-
|
|
841
|
+
# provide a manifest to speedup and not pollute the manifest
|
|
842
|
+
compiled_sql = self.generate_sql(raw_code, base=base, context=jinja_context, provided_manifest=manifest)
|
|
833
843
|
dialect = self.adapter.type()
|
|
834
844
|
column_lineage = cll(compiled_sql, schema=schema, dialect=dialect)
|
|
835
845
|
except RecceException:
|
recce/config.py
CHANGED
|
@@ -60,8 +60,8 @@ class RecceConfig(metaclass=SingletonMeta):
|
|
|
60
60
|
from recce.tasks.valuediff import ValueDiffCheckValidator
|
|
61
61
|
validator = ValueDiffCheckValidator()
|
|
62
62
|
elif check_type == 'profile_diff':
|
|
63
|
-
from recce.tasks.profile import
|
|
64
|
-
validator =
|
|
63
|
+
from recce.tasks.profile import ProfileCheckValidator
|
|
64
|
+
validator = ProfileCheckValidator()
|
|
65
65
|
elif check_type == 'top_k_diff':
|
|
66
66
|
from recce.tasks.top_k import TopKDiffCheckValidator
|
|
67
67
|
validator = TopKDiffCheckValidator()
|
recce/data/404.html
CHANGED
|
@@ -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\":\"TRNetD1eFSVopaij9Ngbm\",\"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>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[739],{61953:function(t,r,n){n.d(r,{C3L:function(){return i},H33:function(){return a},Rgz:function(){return o},zFh:function(){return u}});var e=n(67623);function o(t){return(0,e.w_)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"line",attr:{x1:"5",y1:"12",x2:"19",y2:"12"}},{tag:"polyline",attr:{points:"12 5 19 12 12 19"}}]})(t)}function i(t){return(0,e.w_)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}},{tag:"path",attr:{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"}}]})(t)}function a(t){return(0,e.w_)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"12",cy:"12",r:"10"}},{tag:"line",attr:{x1:"12",y1:"16",x2:"12",y2:"12"}},{tag:"line",attr:{x1:"12",y1:"8",x2:"12.01",y2:"8"}}]})(t)}function u(t){return(0,e.w_)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"line",attr:{x1:"16.5",y1:"9.4",x2:"7.5",y2:"4.21"}},{tag:"path",attr:{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"}},{tag:"polyline",attr:{points:"3.27 6.96 12 12.01 20.73 6.96"}},{tag:"line",attr:{x1:"12",y1:"22.08",x2:"12",y2:"12"}}]})(t)}}}]);
|