recce-nightly 1.1.0.20250429__py3-none-any.whl → 1.2.0.20250430a0__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/apis/run_func.py +6 -2
- recce/cli.py +8 -5
- recce/data/404.html +1 -1
- recce/data/_next/static/chunks/{831-dcc439bb9b7d5f8d.js → 368-7587b306577df275.js} +32 -32
- recce/data/_next/static/chunks/3a92ee20-3b5d922d4157af5e.js +1 -0
- recce/data/_next/static/chunks/6ef81909-694dc38134099299.js +1 -0
- recce/data/_next/static/chunks/8d700b6a-f0b1f6b9e0d97ce2.js +1 -0
- recce/data/_next/static/chunks/app/page-d47c34b82753df46.js +1 -0
- recce/data/index.html +2 -2
- recce/data/index.txt +2 -2
- recce/server.py +64 -6
- recce/tasks/query.py +3 -1
- {recce_nightly-1.1.0.20250429.dist-info → recce_nightly-1.2.0.20250430a0.dist-info}/METADATA +1 -1
- {recce_nightly-1.1.0.20250429.dist-info → recce_nightly-1.2.0.20250430a0.dist-info}/RECORD +21 -18
- {recce_nightly-1.1.0.20250429.dist-info → recce_nightly-1.2.0.20250430a0.dist-info}/WHEEL +1 -1
- recce/data/_next/static/chunks/app/page-425996646683c959.js +0 -1
- /recce/data/_next/static/{eNeQywlOXVHRHyOE-tkU6 → iqs0yDgOtWMJ59a3I36dk}/_buildManifest.js +0 -0
- /recce/data/_next/static/{eNeQywlOXVHRHyOE-tkU6 → iqs0yDgOtWMJ59a3I36dk}/_ssgManifest.js +0 -0
- {recce_nightly-1.1.0.20250429.dist-info → recce_nightly-1.2.0.20250430a0.dist-info}/entry_points.txt +0 -0
- {recce_nightly-1.1.0.20250429.dist-info → recce_nightly-1.2.0.20250430a0.dist-info}/licenses/LICENSE +0 -0
- {recce_nightly-1.1.0.20250429.dist-info → recce_nightly-1.2.0.20250430a0.dist-info}/top_level.txt +0 -0
recce/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.2.0.20250430a0
|
recce/apis/run_func.py
CHANGED
|
@@ -124,7 +124,8 @@ def submit_run(type, params, check_id=None):
|
|
|
124
124
|
run.result = result
|
|
125
125
|
run.status = RunStatus.FINISHED
|
|
126
126
|
if error is not None:
|
|
127
|
-
|
|
127
|
+
failed_reason = str(error) if str(error) != 'None' else repr(error)
|
|
128
|
+
run.error = failed_reason
|
|
128
129
|
if run.status != RunStatus.CANCELLED:
|
|
129
130
|
run.status = RunStatus.FAILED
|
|
130
131
|
run.progress = None
|
|
@@ -138,7 +139,10 @@ def submit_run(type, params, check_id=None):
|
|
|
138
139
|
asyncio.run_coroutine_threadsafe(update_run_result(run.run_id, None, e), loop)
|
|
139
140
|
if isinstance(e, RecceException) and e.is_raise is False:
|
|
140
141
|
return None
|
|
141
|
-
|
|
142
|
+
import sentry_sdk
|
|
143
|
+
sentry_sdk.capture_exception(e)
|
|
144
|
+
failed_reason = str(e) if str(e) != 'None' else repr(e)
|
|
145
|
+
failed_reason = failed_reason.replace('. ', ".\n")
|
|
142
146
|
logger.error(f"Failed to execute {run_type} task: {failed_reason}")
|
|
143
147
|
return None
|
|
144
148
|
|
recce/cli.py
CHANGED
|
@@ -200,6 +200,7 @@ def diff(sql, primary_keys: List[str] = None, keep_shape: bool = False, keep_equ
|
|
|
200
200
|
@click.argument('state_file', required=False)
|
|
201
201
|
@click.option('--host', default='localhost', show_default=True, help='The host to bind to.')
|
|
202
202
|
@click.option('--port', default=8000, show_default=True, help='The port to bind to.', type=int)
|
|
203
|
+
@click.option('--lifetime', default=0, show_default=True, help='The lifetime of the server in seconds.', type=int)
|
|
203
204
|
@click.option('--review', is_flag=True, help='Open the state file in the review mode.')
|
|
204
205
|
@click.option('--api-token', help='The token used by Recce Cloud API.', type=click.STRING,
|
|
205
206
|
envvar='RECCE_API_TOKEN')
|
|
@@ -208,7 +209,7 @@ def diff(sql, primary_keys: List[str] = None, keep_shape: bool = False, keep_equ
|
|
|
208
209
|
@add_options(recce_options)
|
|
209
210
|
@add_options(recce_dbt_artifact_dir_options)
|
|
210
211
|
@add_options(recce_cloud_options)
|
|
211
|
-
def server(host, port, state_file=None, **kwargs):
|
|
212
|
+
def server(host, port, lifetime, state_file=None, **kwargs):
|
|
212
213
|
"""
|
|
213
214
|
Launch the recce server
|
|
214
215
|
|
|
@@ -299,7 +300,8 @@ def server(host, port, state_file=None, **kwargs):
|
|
|
299
300
|
console.print(f"[[red]Error[/red]] {message}")
|
|
300
301
|
exit(1)
|
|
301
302
|
|
|
302
|
-
state = AppState(state_loader=state_loader, kwargs=kwargs, flag=flag, auth_options=auth_options
|
|
303
|
+
state = AppState(command='server', state_loader=state_loader, kwargs=kwargs, flag=flag, auth_options=auth_options,
|
|
304
|
+
lifetime=lifetime)
|
|
303
305
|
app.state = state
|
|
304
306
|
|
|
305
307
|
uvicorn.run(app, host=host, port=port, lifespan='on')
|
|
@@ -821,7 +823,8 @@ def share(state_file, **kwargs):
|
|
|
821
823
|
@click.argument('state_file', required=True)
|
|
822
824
|
@click.option('--host', default='localhost', show_default=True, help='The host to bind to.')
|
|
823
825
|
@click.option('--port', default=8000, show_default=True, help='The port to bind to.', type=int)
|
|
824
|
-
|
|
826
|
+
@click.option('--lifetime', default=0, show_default=True, help='The lifetime of the server in seconds.', type=int)
|
|
827
|
+
def read_only(host, port, lifetime, state_file=None, **kwargs):
|
|
825
828
|
from .server import app, AppState
|
|
826
829
|
from rich.console import Console
|
|
827
830
|
|
|
@@ -846,10 +849,10 @@ def read_only(host, port, state_file=None, **kwargs):
|
|
|
846
849
|
console.print(f"[[red]Error[/red]] {message}")
|
|
847
850
|
exit(1)
|
|
848
851
|
|
|
849
|
-
app.state = AppState(state_loader=state_loader, kwargs=kwargs, flag=flag)
|
|
852
|
+
app.state = AppState(command='read_only', state_loader=state_loader, kwargs=kwargs, flag=flag, lifetime=lifetime)
|
|
850
853
|
set_default_context(RecceContext.load(**kwargs, review=is_review, state_loader=state_loader))
|
|
851
854
|
|
|
852
|
-
uvicorn.run(app, host=host, port=port, lifespan='
|
|
855
|
+
uvicorn.run(app, host=host, port=port, lifespan='on')
|
|
853
856
|
|
|
854
857
|
|
|
855
858
|
if __name__ == "__main__":
|
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\":\"iqs0yDgOtWMJ59a3I36dk\",\"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>
|