recce-nightly 0.61.0.20250415__py3-none-any.whl → 0.62.0.20250417__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 +15 -2
- recce/cli.py +5 -1
- recce/data/404.html +1 -1
- recce/data/_next/static/chunks/app/page-9adc25782272ed2e.js +1 -0
- recce/data/index.html +2 -2
- recce/data/index.txt +2 -2
- recce/util/breaking.py +60 -88
- {recce_nightly-0.61.0.20250415.dist-info → recce_nightly-0.62.0.20250417.dist-info}/METADATA +1 -1
- {recce_nightly-0.61.0.20250415.dist-info → recce_nightly-0.62.0.20250417.dist-info}/RECORD +16 -16
- recce/data/_next/static/chunks/app/page-635a088390dcb7ac.js +0 -1
- /recce/data/_next/static/{-FZ7AfDqKYJ7K1mEhSe5l → qiyFlux77VkhxiceAJe_F}/_buildManifest.js +0 -0
- /recce/data/_next/static/{-FZ7AfDqKYJ7K1mEhSe5l → qiyFlux77VkhxiceAJe_F}/_ssgManifest.js +0 -0
- {recce_nightly-0.61.0.20250415.dist-info → recce_nightly-0.62.0.20250417.dist-info}/WHEEL +0 -0
- {recce_nightly-0.61.0.20250415.dist-info → recce_nightly-0.62.0.20250417.dist-info}/entry_points.txt +0 -0
- {recce_nightly-0.61.0.20250415.dist-info → recce_nightly-0.62.0.20250417.dist-info}/licenses/LICENSE +0 -0
- {recce_nightly-0.61.0.20250415.dist-info → recce_nightly-0.62.0.20250417.dist-info}/top_level.txt +0 -0
recce/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.62.0.20250417
|
|
@@ -15,7 +15,7 @@ from recce.exceptions import RecceException
|
|
|
15
15
|
from recce.util.cll import cll, CLLPerformanceTracking
|
|
16
16
|
from recce.util.lineage import find_upstream, find_downstream
|
|
17
17
|
from ...tasks.profile import ProfileTask
|
|
18
|
-
from ...util.breaking import parse_change_category
|
|
18
|
+
from ...util.breaking import parse_change_category, BreakingPerformanceTracking
|
|
19
19
|
|
|
20
20
|
try:
|
|
21
21
|
import agate
|
|
@@ -741,8 +741,14 @@ class DbtAdapter(BaseAdapter):
|
|
|
741
741
|
*base.get('nodes', {}).keys(),
|
|
742
742
|
*current.get('nodes', {}).keys()
|
|
743
743
|
}
|
|
744
|
+
|
|
745
|
+
# Start to diff
|
|
746
|
+
perf_tracking = BreakingPerformanceTracking()
|
|
747
|
+
perf_tracking.start_lineage_diff()
|
|
748
|
+
|
|
744
749
|
base_manifest = as_manifest(self.get_manifest(True))
|
|
745
750
|
curr_manifest = as_manifest(self.get_manifest(False))
|
|
751
|
+
perf_tracking.record_checkpoint('manifest')
|
|
746
752
|
|
|
747
753
|
def ref_func(*args):
|
|
748
754
|
if len(args) == 1:
|
|
@@ -775,6 +781,8 @@ class DbtAdapter(BaseAdapter):
|
|
|
775
781
|
|
|
776
782
|
if curr_node.get('resource_type') == 'model':
|
|
777
783
|
try:
|
|
784
|
+
perf_tracking.increment_modified_nodes()
|
|
785
|
+
|
|
778
786
|
def _get_schema(lineage):
|
|
779
787
|
schema = {}
|
|
780
788
|
nodes = lineage['nodes']
|
|
@@ -815,7 +823,8 @@ class DbtAdapter(BaseAdapter):
|
|
|
815
823
|
curr_sql,
|
|
816
824
|
old_schema=base_schema,
|
|
817
825
|
new_schema=curr_schema,
|
|
818
|
-
dialect=dialect
|
|
826
|
+
dialect=dialect,
|
|
827
|
+
perf_tracking=perf_tracking,
|
|
819
828
|
)
|
|
820
829
|
except Exception:
|
|
821
830
|
change = NodeChange(category='unknown')
|
|
@@ -825,6 +834,10 @@ class DbtAdapter(BaseAdapter):
|
|
|
825
834
|
diff[key] = NodeDiff(change_status='removed')
|
|
826
835
|
elif curr_node:
|
|
827
836
|
diff[key] = NodeDiff(change_status='added')
|
|
837
|
+
|
|
838
|
+
perf_tracking.end_lineage_diff()
|
|
839
|
+
log_performance('model lineage diff', perf_tracking.to_dict())
|
|
840
|
+
|
|
828
841
|
return LineageDiff(
|
|
829
842
|
base=base,
|
|
830
843
|
current=current,
|
recce/cli.py
CHANGED
|
@@ -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, hidden=True)
|
|
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')
|
|
@@ -775,6 +775,10 @@ def share(state_file, **kwargs):
|
|
|
775
775
|
|
|
776
776
|
# read or input the api token
|
|
777
777
|
api_token = kwargs.get('api_token') if kwargs.get('api_token') else get_recce_api_token()
|
|
778
|
+
if api_token is None:
|
|
779
|
+
console.print("Recce Share is coming soon — stay tuned!")
|
|
780
|
+
exit(1)
|
|
781
|
+
|
|
778
782
|
if api_token is None:
|
|
779
783
|
console.print("Please login Recce Cloud and copy the API token from the setting page.\n"
|
|
780
784
|
f"{RECCE_CLOUD_API_HOST}/settings#tokens\n"
|
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-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\":\"qiyFlux77VkhxiceAJe_F\",\"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>
|