recce-nightly 1.8.0.20250613__py3-none-any.whl → 1.8.0.20250613.post1__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/cli.py +61 -95
- recce/core.py +1 -1
- recce/data/404.html +1 -1
- recce/data/index.html +1 -1
- recce/data/index.txt +1 -1
- recce/event/__init__.py +5 -0
- recce/util/api_token.py +14 -4
- {recce_nightly-1.8.0.20250613.dist-info → recce_nightly-1.8.0.20250613.post1.dist-info}/METADATA +1 -1
- {recce_nightly-1.8.0.20250613.dist-info → recce_nightly-1.8.0.20250613.post1.dist-info}/RECORD +16 -16
- /recce/data/_next/static/{1b9RkhMnOELoqdFmnzuo9 → neOLMn23ZycuVI9Knbz0x}/_buildManifest.js +0 -0
- /recce/data/_next/static/{1b9RkhMnOELoqdFmnzuo9 → neOLMn23ZycuVI9Knbz0x}/_ssgManifest.js +0 -0
- {recce_nightly-1.8.0.20250613.dist-info → recce_nightly-1.8.0.20250613.post1.dist-info}/WHEEL +0 -0
- {recce_nightly-1.8.0.20250613.dist-info → recce_nightly-1.8.0.20250613.post1.dist-info}/entry_points.txt +0 -0
- {recce_nightly-1.8.0.20250613.dist-info → recce_nightly-1.8.0.20250613.post1.dist-info}/licenses/LICENSE +0 -0
- {recce_nightly-1.8.0.20250613.dist-info → recce_nightly-1.8.0.20250613.post1.dist-info}/top_level.txt +0 -0
recce/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.8.0.20250613
|
|
1
|
+
1.8.0.20250613-post1
|
recce/cli.py
CHANGED
|
@@ -199,62 +199,40 @@ def debug(**kwargs):
|
|
|
199
199
|
|
|
200
200
|
console = Console()
|
|
201
201
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
curr_catalog_is_ready = True
|
|
208
|
-
base_dir_is_ready = True
|
|
209
|
-
base_manifest_is_ready = True
|
|
210
|
-
base_catalog_is_ready = True
|
|
211
|
-
conn_is_ready = True
|
|
202
|
+
def check_artifacts(env_name, target_path):
|
|
203
|
+
console.rule(f"{env_name} Environment", style="orange3")
|
|
204
|
+
if not target_path.is_dir():
|
|
205
|
+
console.print(f"[[red]MISS[/red]] Directory does not exist: {target_path}")
|
|
206
|
+
return [False, False, False]
|
|
212
207
|
|
|
213
|
-
console.rule("Development Environment", style="orange3")
|
|
214
|
-
if not target_path.is_dir():
|
|
215
|
-
console.print(f"[[red]MISS[/red]] Directory does not exist: {target_path}")
|
|
216
|
-
curr_dir_is_ready = False
|
|
217
|
-
else:
|
|
218
208
|
console.print(f"[[green]OK[/green]] Directory exists: {target_path}")
|
|
219
209
|
|
|
220
210
|
manifest_path = target_path / "manifest.json"
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
curr_manifest_is_ready = False
|
|
224
|
-
else:
|
|
211
|
+
manifest_is_ready = manifest_path.is_file()
|
|
212
|
+
if manifest_is_ready:
|
|
225
213
|
console.print(f"[[green]OK[/green]] Manifest JSON file exists : {manifest_path}")
|
|
214
|
+
else:
|
|
215
|
+
console.print(f"[[red]MISS[/red]] Manifest JSON file does not exist: {manifest_path}")
|
|
226
216
|
|
|
227
217
|
catalog_path = target_path / "catalog.json"
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
curr_catalog_is_ready = False
|
|
231
|
-
else:
|
|
218
|
+
catalog_is_ready = catalog_path.is_file()
|
|
219
|
+
if catalog_is_ready:
|
|
232
220
|
console.print(f"[[green]OK[/green]] Catalog JSON file exists: {catalog_path}")
|
|
221
|
+
else:
|
|
222
|
+
console.print(f"[[red]MISS[/red]] Catalog JSON file does not exist: {catalog_path}")
|
|
233
223
|
|
|
234
|
-
|
|
235
|
-
if not target_base_path.is_dir():
|
|
236
|
-
console.print(f"[[red]MISS[/red]] Directory does not exist: {target_base_path}")
|
|
237
|
-
base_dir_is_ready = False
|
|
238
|
-
else:
|
|
239
|
-
console.print(f"[[green]OK[/green]] Directory exists: {target_base_path}")
|
|
224
|
+
return [True, manifest_is_ready, catalog_is_ready]
|
|
240
225
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
console.print(f"[[red]MISS[/red]] Manifest JSON file does not exist: {manifest_path}")
|
|
244
|
-
base_manifest_is_ready = False
|
|
245
|
-
else:
|
|
246
|
-
console.print(f"[[green]OK[/green]] Manifest JSON file exists : {manifest_path}")
|
|
226
|
+
target_path = Path(kwargs.get("target_path", "target"))
|
|
227
|
+
target_base_path = Path(kwargs.get("target_base_path", "target-base"))
|
|
247
228
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
console.print(f"[[red]MISS[/red]] Catalog JSON file does not exist: {catalog_path}")
|
|
251
|
-
base_catalog_is_ready = False
|
|
252
|
-
else:
|
|
253
|
-
console.print(f"[[green]OK[/green]] Catalog JSON file exists: {catalog_path}")
|
|
229
|
+
curr_is_ready = check_artifacts("development", target_path)
|
|
230
|
+
base_is_ready = check_artifacts("Base", target_base_path)
|
|
254
231
|
|
|
255
232
|
console.rule("Warehouse Connection", style="orange3")
|
|
233
|
+
conn_is_ready = True
|
|
256
234
|
try:
|
|
257
|
-
context_kwargs = {**kwargs, "target_base_path": kwargs.get("
|
|
235
|
+
context_kwargs = {**kwargs, "target_base_path": kwargs.get("target_path")}
|
|
258
236
|
ctx = load_context(**context_kwargs)
|
|
259
237
|
dbt_adapter: DbtAdapter = ctx.adapter
|
|
260
238
|
sql = dbt_adapter.generate_sql("select 1", False)
|
|
@@ -265,49 +243,41 @@ def debug(**kwargs):
|
|
|
265
243
|
console.print("[[red]FAIL[/red]] Connection test")
|
|
266
244
|
|
|
267
245
|
console.rule("Result", style="orange3")
|
|
268
|
-
if (
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
and base_catalog_is_ready
|
|
273
|
-
and conn_is_ready
|
|
274
|
-
):
|
|
275
|
-
console.print("[[green]OK[/green]] You're ready for [bold]Recce[/bold]! Launch it with `recce server`")
|
|
276
|
-
elif curr_manifest_is_ready and curr_catalog_is_ready and conn_is_ready:
|
|
277
|
-
console.print(
|
|
278
|
-
"[[orange3]OK[/orange3]] You're ready for the [bold]single environment mode[/bold]! Launch Recce with `recce server`"
|
|
279
|
-
)
|
|
246
|
+
if all(curr_is_ready) and all(base_is_ready) and conn_is_ready:
|
|
247
|
+
console.print("[[green]OK[/green]] Ready to launch! Type 'recce server'.")
|
|
248
|
+
elif all(curr_is_ready) and conn_is_ready:
|
|
249
|
+
console.print("[[orange3]OK[/orange3]] Ready to launch with [i]limited features[/i]. Type 'recce server'.")
|
|
280
250
|
|
|
281
|
-
if not
|
|
251
|
+
if not curr_is_ready[0]:
|
|
282
252
|
console.print(
|
|
283
|
-
"[[orange3]TIP[/orange3]] Run dbt or overwrite the default directory of the development environment with
|
|
253
|
+
"[[orange3]TIP[/orange3]] Run dbt or overwrite the default directory of the development environment with '--target-path'."
|
|
284
254
|
)
|
|
285
255
|
else:
|
|
286
|
-
if not
|
|
256
|
+
if not curr_is_ready[1]:
|
|
287
257
|
console.print(
|
|
288
|
-
"[[orange3]TIP[/orange3]]
|
|
258
|
+
"[[orange3]TIP[/orange3]] 'dbt run' to generate the manifest JSON file for the development environment."
|
|
289
259
|
)
|
|
290
|
-
if not
|
|
260
|
+
if not curr_is_ready[2]:
|
|
291
261
|
console.print(
|
|
292
|
-
"[[orange3]TIP[/orange3]]
|
|
262
|
+
"[[orange3]TIP[/orange3]] 'dbt docs generate' to generate the catalog JSON file for the development environment."
|
|
293
263
|
)
|
|
294
264
|
|
|
295
|
-
if not
|
|
265
|
+
if not base_is_ready[0]:
|
|
296
266
|
console.print(
|
|
297
|
-
"[[orange3]TIP[/orange3]] Run dbt with
|
|
267
|
+
"[[orange3]TIP[/orange3]] Run dbt with '--target-path target-base' or overwrite the default directory of the base environment with '--target-base-path'."
|
|
298
268
|
)
|
|
299
269
|
else:
|
|
300
|
-
if not
|
|
270
|
+
if not base_is_ready[1]:
|
|
301
271
|
console.print(
|
|
302
|
-
"[[orange3]TIP[/orange3]]
|
|
272
|
+
"[[orange3]TIP[/orange3]] 'dbt run --target-path target-base' to generate the manifest JSON file for the base environment."
|
|
303
273
|
)
|
|
304
|
-
if not
|
|
274
|
+
if not base_is_ready[2]:
|
|
305
275
|
console.print(
|
|
306
|
-
"[[orange3]TIP[/orange3]]
|
|
276
|
+
"[[orange3]TIP[/orange3]] 'dbt docs generate --target-path target-base' to generate the catalog JSON file for the base environment."
|
|
307
277
|
)
|
|
308
278
|
|
|
309
279
|
if not conn_is_ready:
|
|
310
|
-
console.print("[[orange3]TIP[/orange3]] Run
|
|
280
|
+
console.print("[[orange3]TIP[/orange3]] Run 'dbt debug' to check the connection.")
|
|
311
281
|
|
|
312
282
|
|
|
313
283
|
@cli.command(hidden=True, cls=TrackCommand)
|
|
@@ -446,53 +416,49 @@ def server(host, port, lifetime, state_file=None, **kwargs):
|
|
|
446
416
|
auth_options["api_token"] = api_token
|
|
447
417
|
|
|
448
418
|
# Check Single Environment Onboarding Mode if the review mode is False
|
|
449
|
-
if not
|
|
419
|
+
if not Path(kwargs.get("target_base_path", "target-base")).is_dir() and not is_review:
|
|
450
420
|
# Mark as single env onboarding mode if user provides the target-path only
|
|
451
421
|
flag["single_env_onboarding"] = True
|
|
452
422
|
flag["show_relaunch_hint"] = True
|
|
453
|
-
target_path = kwargs.get("target_path")
|
|
454
423
|
# Use the target path as the base path
|
|
455
|
-
kwargs["target_base_path"] = target_path
|
|
424
|
+
kwargs["target_base_path"] = kwargs.get("target_path")
|
|
425
|
+
|
|
426
|
+
state_loader = create_state_loader(is_review, is_cloud, state_file, cloud_options)
|
|
427
|
+
|
|
428
|
+
if not state_loader.verify():
|
|
429
|
+
error, hint = state_loader.error_and_hint
|
|
430
|
+
console.print(f"[[red]Error[/red]] {error}")
|
|
431
|
+
console.print(f"{hint}")
|
|
432
|
+
exit(1)
|
|
433
|
+
|
|
434
|
+
result, message = RecceContext.verify_required_artifacts(**kwargs)
|
|
435
|
+
if not result:
|
|
436
|
+
console.rule("Notice", style="orange3")
|
|
437
|
+
console.print(f"[[red]Error[/red]] {message}")
|
|
438
|
+
exit(1)
|
|
456
439
|
|
|
440
|
+
if state_loader.review_mode is True:
|
|
441
|
+
console.rule("Recce Server : Review Mode")
|
|
442
|
+
elif flag["single_env_onboarding"]:
|
|
457
443
|
# Show warning message
|
|
458
444
|
console.rule("Notice", style="orange3")
|
|
459
445
|
console.print(
|
|
460
|
-
"Recce
|
|
461
|
-
"\n\n"
|
|
462
|
-
"Single Environment Mode allows you to explore your dbt project but won't show "
|
|
463
|
-
"data comparisons between environments. For full functionality, configure a "
|
|
464
|
-
"base environment."
|
|
465
|
-
"\n\n"
|
|
466
|
-
"To set up full environment comparison:"
|
|
467
|
-
"\n- Run `recce debug` for setup assistance"
|
|
468
|
-
"\n- Visit https://docs.datarecce.io/configure-diff/ for configuration guide"
|
|
446
|
+
"Recce will launch with limited features (no environment comparison).\n"
|
|
469
447
|
"\n"
|
|
448
|
+
"For full functionality, set up a base environment first.\n"
|
|
449
|
+
"Setup help: 'recce debug' or https://docs.datarecce.io/configure-diff/\n"
|
|
470
450
|
)
|
|
471
451
|
|
|
472
452
|
single_env_flag = kwargs.get("single_env", False)
|
|
473
453
|
if not single_env_flag:
|
|
474
|
-
lanch_in_single_env = Confirm.ask("
|
|
454
|
+
lanch_in_single_env = Confirm.ask("Continue with limited mode?")
|
|
475
455
|
if not lanch_in_single_env:
|
|
476
456
|
exit(0)
|
|
477
457
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
if not state_loader.verify():
|
|
481
|
-
error, hint = state_loader.error_and_hint
|
|
482
|
-
console.print(f"[[red]Error[/red]] {error}")
|
|
483
|
-
console.print(f"{hint}")
|
|
484
|
-
exit(1)
|
|
485
|
-
|
|
486
|
-
if state_loader.review_mode is True:
|
|
487
|
-
console.rule("Recce Server : Review Mode")
|
|
458
|
+
console.rule("Recce Server : Limited Features")
|
|
488
459
|
else:
|
|
489
460
|
console.rule("Recce Server")
|
|
490
461
|
|
|
491
|
-
result, message = RecceContext.verify_required_artifacts(**kwargs)
|
|
492
|
-
if not result:
|
|
493
|
-
console.print(f"[[red]Error[/red]] {message}")
|
|
494
|
-
exit(1)
|
|
495
|
-
|
|
496
462
|
state = AppState(
|
|
497
463
|
command="server",
|
|
498
464
|
state_loader=state_loader,
|
recce/core.py
CHANGED
|
@@ -286,7 +286,7 @@ class RecceContext:
|
|
|
286
286
|
try:
|
|
287
287
|
DbtAdapter.load(**kwargs)
|
|
288
288
|
except FileNotFoundError as e:
|
|
289
|
-
return False, f"Cannot load the manifest: '{e.filename}'"
|
|
289
|
+
return False, f"Cannot load the manifest: '{e.filename}'. Type 'recce debug'."
|
|
290
290
|
|
|
291
291
|
return True, None
|
|
292
292
|
|
recce/data/404.html
CHANGED
|
@@ -19,4 +19,4 @@
|
|
|
19
19
|
pre
|
|
20
20
|
){margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}:where(ol, ul){margin:0;padding:0;}textarea{resize:vertical;}:where(button, [role="button"]){cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}:where(h1, h2, h3, h4, h5, h6){font-size:inherit;font-weight:inherit;}:where(button, input, optgroup, select, textarea){padding:0;line-height:inherit;color:inherit;}:where(img, svg, video, canvas, audio, iframe, embed, object){display:block;}:where(img, video){max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]):not(
|
|
21
21
|
[data-focus-visible-disabled]
|
|
22
|
-
){outline:none;box-shadow:none;}select::-ms-expand{display:none;}:root,:host{--chakra-vh:100vh;}@supports (height: -webkit-fill-available){:root,:host{--chakra-vh:-webkit-fill-available;}}@supports (height: -moz-fill-available){:root,:host{--chakra-vh:-moz-fill-available;}}@supports (height: 100dvh){:root,:host{--chakra-vh:100dvh;}}</style><style data-emotion="css-global 1cgn62j">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-chakra-body-text);background:var(--chakra-colors-chakra-body-bg);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*::-moz-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*:-ms-input-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*::placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*,*::before,::after{border-color:var(--chakra-colors-chakra-border-color);}</style><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><span></span><span id="__chakra_env" hidden=""></span><script src="/_next/static/chunks/webpack-c84693803e08b48b.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:HL[\"/_next/static/css/1b121dc4d36aeb4d.css\",\"style\"]\n2:HL[\"/_next/static/css/951e2e0eea2d4a5b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"3:I[39532,[],\"\"]\n5:I[80915,[],\"\"]\n6:I[11126,[],\"\"]\n7:I[22910,[\"509\",\"static/chunks/9746af58-ac9a4d1b8160c197.js\",\"989\",\"static/chunks/47d8844f-57ea99282765dce5.js\",\"147\",\"static/chunks/a30376cd-2d324b6b8687d57b.js\",\"495\",\"static/chunks/6dc81886-e6963cc22929fc61.js\",\"376\",\"static/chunks/3a92ee20-146003bc9f4294f5.js\",\"678\",\"static/chunks/3998a672-0426e04aa28a4198.js\",\"20\",\"static/chunks/1bff33f1-39d26ad38ba4fe06.js\",\"413\",\"static/chunks/bbda5537-10da060bd56d475e.js\",\"627\",\"static/chunks/627-1b5619ef0c492f2b.js\",\"184\",\"static/chunks/184-dc0879f75e9506c3.js\",\"249\",\"static/chunks/249-aeaf2fd44b7d8946.js\",\"185\",\"static/chunks/app/layout-83da1e1a59dea607.js\"],\"default\"]\nd:I[12395,[],\"\"]\n8:{\"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\"}\n9:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\na:{\"display\":\"inline-block\"}\nb:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\ne:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L3\",null,{\"buildId\":\"
|
|
22
|
+
){outline:none;box-shadow:none;}select::-ms-expand{display:none;}:root,:host{--chakra-vh:100vh;}@supports (height: -webkit-fill-available){:root,:host{--chakra-vh:-webkit-fill-available;}}@supports (height: -moz-fill-available){:root,:host{--chakra-vh:-moz-fill-available;}}@supports (height: 100dvh){:root,:host{--chakra-vh:100dvh;}}</style><style data-emotion="css-global 1cgn62j">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-chakra-body-text);background:var(--chakra-colors-chakra-body-bg);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*::-moz-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*:-ms-input-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*::placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*,*::before,::after{border-color:var(--chakra-colors-chakra-border-color);}</style><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><span></span><span id="__chakra_env" hidden=""></span><script src="/_next/static/chunks/webpack-c84693803e08b48b.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:HL[\"/_next/static/css/1b121dc4d36aeb4d.css\",\"style\"]\n2:HL[\"/_next/static/css/951e2e0eea2d4a5b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"3:I[39532,[],\"\"]\n5:I[80915,[],\"\"]\n6:I[11126,[],\"\"]\n7:I[22910,[\"509\",\"static/chunks/9746af58-ac9a4d1b8160c197.js\",\"989\",\"static/chunks/47d8844f-57ea99282765dce5.js\",\"147\",\"static/chunks/a30376cd-2d324b6b8687d57b.js\",\"495\",\"static/chunks/6dc81886-e6963cc22929fc61.js\",\"376\",\"static/chunks/3a92ee20-146003bc9f4294f5.js\",\"678\",\"static/chunks/3998a672-0426e04aa28a4198.js\",\"20\",\"static/chunks/1bff33f1-39d26ad38ba4fe06.js\",\"413\",\"static/chunks/bbda5537-10da060bd56d475e.js\",\"627\",\"static/chunks/627-1b5619ef0c492f2b.js\",\"184\",\"static/chunks/184-dc0879f75e9506c3.js\",\"249\",\"static/chunks/249-aeaf2fd44b7d8946.js\",\"185\",\"static/chunks/app/layout-83da1e1a59dea607.js\"],\"default\"]\nd:I[12395,[],\"\"]\n8:{\"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\"}\n9:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\na:{\"display\":\"inline-block\"}\nb:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\ne:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L3\",null,{\"buildId\":\"neOLMn23ZycuVI9Knbz0x\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L4\",[[\"$\",\"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,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1b121dc4d36aeb4d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/951e2e0eea2d4a5b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"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\":\"$9\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$a\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$b\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lc\"],\"globalErrorComponent\":\"$d\",\"missingSlots\":\"$We\"}]\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"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\"}]]\n4:null\n"])</script></body></html>
|
recce/data/index.html
CHANGED
|
@@ -24,4 +24,4 @@
|
|
|
24
24
|
transparent 0%,
|
|
25
25
|
#3182ce 50%,
|
|
26
26
|
transparent 100%
|
|
27
|
-
);position:absolute;will-change:left;min-width:50%;-webkit-animation:animation-11lmxjq 1s ease infinite normal none running;animation:animation-11lmxjq 1s ease infinite normal none running;}@-webkit-keyframes animation-11lmxjq{0%{left:-40%;}100%{left:100%;}}@keyframes animation-11lmxjq{0%{left:-40%;}100%{left:100%;}}</style><div style="width:0%" data-indeterminate="" aria-valuemax="100" aria-valuemin="0" role="progressbar" class="css-h5ends"></div></div></div><div class="css-0"></div></div></div></div><span></span><span id="__chakra_env" hidden=""></span><script src="/_next/static/chunks/webpack-c84693803e08b48b.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:HL[\"/_next/static/css/1b121dc4d36aeb4d.css\",\"style\"]\n2:HL[\"/_next/static/css/951e2e0eea2d4a5b.css\",\"style\"]\n3:HL[\"/_next/static/css/17a96168e3a9db13.css\",\"style\"]\n4:HL[\"/_next/static/css/35c6679a098e1e34.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"5:I[39532,[],\"\"]\n7:I[96213,[],\"ClientPageRoot\"]\n8:I[14602,[\"509\",\"static/chunks/9746af58-ac9a4d1b8160c197.js\",\"989\",\"static/chunks/47d8844f-57ea99282765dce5.js\",\"147\",\"static/chunks/a30376cd-2d324b6b8687d57b.js\",\"495\",\"static/chunks/6dc81886-e6963cc22929fc61.js\",\"376\",\"static/chunks/3a92ee20-146003bc9f4294f5.js\",\"678\",\"static/chunks/3998a672-0426e04aa28a4198.js\",\"20\",\"static/chunks/1bff33f1-39d26ad38ba4fe06.js\",\"413\",\"static/chunks/bbda5537-10da060bd56d475e.js\",\"648\",\"static/chunks/ce84277d-7f0a33888bf731d9.js\",\"995\",\"static/chunks/fee69bc6-288939bd73e3e49c.js\",\"739\",\"static/chunks/7a8a3e83-933490bb996ac49b.js\",\"283\",\"static/chunks/450c323b-3dd665b028d8e184.js\",\"303\",\"static/chunks/36e1c10d-6d59e8aae9eec8b4.js\",\"22\",\"static/chunks/29e3cc0d-e95ebef603672925.js\",\"25\",\"static/chunks/b63b1b3f-a380b9fe5be938d3.js\",\"355\",\"static/chunks/7f27ae6c-f6aa983aa05b83cd.js\",\"599\",\"static/chunks/c132bf7d-d6e713672e7030a1.js\",\"63\",\"static/chunks/febdd86e-d96ff090bf0a928d.js\",\"627\",\"static/chunks/627-1b5619ef0c492f2b.js\",\"33\",\"static/chunks/33-27f5a26fea26baf4.js\",\"249\",\"static/chunks/249-aeaf2fd44b7d8946.js\",\"931\",\"static/chunks/app/page-3404ed4ba8cffb0b.js\"],\"default\",1]\n9:I[22910,[\"509\",\"static/chunks/9746af58-ac9a4d1b8160c197.js\",\"989\",\"static/chunks/47d8844f-57ea99282765dce5.js\",\"147\",\"static/chunks/a30376cd-2d324b6b8687d57b.js\",\"495\",\"static/chunks/6dc81886-e6963cc22929fc61.js\",\"376\",\"static/chunks/3a92ee20-146003bc9f4294f5.js\",\"678\",\"static/chunks/3998a672-0426e04aa28a4198.js\",\"20\",\"static/chunks/1bff33f1-39d26ad38ba4fe06.js\",\"413\",\"static/chunks/bbda5537-10da060bd56d475e.js\",\"627\",\"static/chunks/627-1b5619ef0c492f2b.js\",\"184\",\"static/chunks/184-dc0879f75e9506c3.js\",\"249\",\"static/chunks/249-aeaf2fd44b7d8946.js\",\"185\",\"static/chunks/app/layout-83da1e1a59dea607.js\"],\"default\"]\na:I[80915,[],\"\"]\nb:I[11126,[],\"\"]\nd:I[12395,[],\"\"]\ne:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L5\",null,{\"buildId\":\"
|
|
27
|
+
);position:absolute;will-change:left;min-width:50%;-webkit-animation:animation-11lmxjq 1s ease infinite normal none running;animation:animation-11lmxjq 1s ease infinite normal none running;}@-webkit-keyframes animation-11lmxjq{0%{left:-40%;}100%{left:100%;}}@keyframes animation-11lmxjq{0%{left:-40%;}100%{left:100%;}}</style><div style="width:0%" data-indeterminate="" aria-valuemax="100" aria-valuemin="0" role="progressbar" class="css-h5ends"></div></div></div><div class="css-0"></div></div></div></div><span></span><span id="__chakra_env" hidden=""></span><script src="/_next/static/chunks/webpack-c84693803e08b48b.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:HL[\"/_next/static/css/1b121dc4d36aeb4d.css\",\"style\"]\n2:HL[\"/_next/static/css/951e2e0eea2d4a5b.css\",\"style\"]\n3:HL[\"/_next/static/css/17a96168e3a9db13.css\",\"style\"]\n4:HL[\"/_next/static/css/35c6679a098e1e34.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"5:I[39532,[],\"\"]\n7:I[96213,[],\"ClientPageRoot\"]\n8:I[14602,[\"509\",\"static/chunks/9746af58-ac9a4d1b8160c197.js\",\"989\",\"static/chunks/47d8844f-57ea99282765dce5.js\",\"147\",\"static/chunks/a30376cd-2d324b6b8687d57b.js\",\"495\",\"static/chunks/6dc81886-e6963cc22929fc61.js\",\"376\",\"static/chunks/3a92ee20-146003bc9f4294f5.js\",\"678\",\"static/chunks/3998a672-0426e04aa28a4198.js\",\"20\",\"static/chunks/1bff33f1-39d26ad38ba4fe06.js\",\"413\",\"static/chunks/bbda5537-10da060bd56d475e.js\",\"648\",\"static/chunks/ce84277d-7f0a33888bf731d9.js\",\"995\",\"static/chunks/fee69bc6-288939bd73e3e49c.js\",\"739\",\"static/chunks/7a8a3e83-933490bb996ac49b.js\",\"283\",\"static/chunks/450c323b-3dd665b028d8e184.js\",\"303\",\"static/chunks/36e1c10d-6d59e8aae9eec8b4.js\",\"22\",\"static/chunks/29e3cc0d-e95ebef603672925.js\",\"25\",\"static/chunks/b63b1b3f-a380b9fe5be938d3.js\",\"355\",\"static/chunks/7f27ae6c-f6aa983aa05b83cd.js\",\"599\",\"static/chunks/c132bf7d-d6e713672e7030a1.js\",\"63\",\"static/chunks/febdd86e-d96ff090bf0a928d.js\",\"627\",\"static/chunks/627-1b5619ef0c492f2b.js\",\"33\",\"static/chunks/33-27f5a26fea26baf4.js\",\"249\",\"static/chunks/249-aeaf2fd44b7d8946.js\",\"931\",\"static/chunks/app/page-3404ed4ba8cffb0b.js\"],\"default\",1]\n9:I[22910,[\"509\",\"static/chunks/9746af58-ac9a4d1b8160c197.js\",\"989\",\"static/chunks/47d8844f-57ea99282765dce5.js\",\"147\",\"static/chunks/a30376cd-2d324b6b8687d57b.js\",\"495\",\"static/chunks/6dc81886-e6963cc22929fc61.js\",\"376\",\"static/chunks/3a92ee20-146003bc9f4294f5.js\",\"678\",\"static/chunks/3998a672-0426e04aa28a4198.js\",\"20\",\"static/chunks/1bff33f1-39d26ad38ba4fe06.js\",\"413\",\"static/chunks/bbda5537-10da060bd56d475e.js\",\"627\",\"static/chunks/627-1b5619ef0c492f2b.js\",\"184\",\"static/chunks/184-dc0879f75e9506c3.js\",\"249\",\"static/chunks/249-aeaf2fd44b7d8946.js\",\"185\",\"static/chunks/app/layout-83da1e1a59dea607.js\"],\"default\"]\na:I[80915,[],\"\"]\nb:I[11126,[],\"\"]\nd:I[12395,[],\"\"]\ne:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L5\",null,{\"buildId\":\"neOLMn23ZycuVI9Knbz0x\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L6\",[\"$\",\"$L7\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$8\"}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/17a96168e3a9db13.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/35c6679a098e1e34.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1b121dc4d36aeb4d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/951e2e0eea2d4a5b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"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.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Lc\"],\"globalErrorComponent\":\"$d\",\"missingSlots\":\"$We\"}]\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"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\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"32x32\"}]]\n6:null\n"])</script></body></html>
|
recce/data/index.txt
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
4:I[22910,["509","static/chunks/9746af58-ac9a4d1b8160c197.js","989","static/chunks/47d8844f-57ea99282765dce5.js","147","static/chunks/a30376cd-2d324b6b8687d57b.js","495","static/chunks/6dc81886-e6963cc22929fc61.js","376","static/chunks/3a92ee20-146003bc9f4294f5.js","678","static/chunks/3998a672-0426e04aa28a4198.js","20","static/chunks/1bff33f1-39d26ad38ba4fe06.js","413","static/chunks/bbda5537-10da060bd56d475e.js","627","static/chunks/627-1b5619ef0c492f2b.js","184","static/chunks/184-dc0879f75e9506c3.js","249","static/chunks/249-aeaf2fd44b7d8946.js","185","static/chunks/app/layout-83da1e1a59dea607.js"],"default"]
|
|
4
4
|
5:I[80915,[],""]
|
|
5
5
|
6:I[11126,[],""]
|
|
6
|
-
0:["
|
|
6
|
+
0:["neOLMn23ZycuVI9Knbz0x",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/17a96168e3a9db13.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/35c6679a098e1e34.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1b121dc4d36aeb4d.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/951e2e0eea2d4a5b.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"suppressHydrationWarning":true,"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","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."}]}]]}]}]],"notFoundStyles":[]}]}]}]}]],null],null],["$L7",null]]]]
|
|
7
7
|
7:[["$","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"}],["$","link","4",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"32x32"}]]
|
|
8
8
|
1:null
|
recce/event/__init__.py
CHANGED
|
@@ -277,6 +277,11 @@ def log_performance(feature_name: str, metrics: Dict):
|
|
|
277
277
|
_collector.schedule_flush()
|
|
278
278
|
|
|
279
279
|
|
|
280
|
+
def log_connected_to_cloud():
|
|
281
|
+
log_event({"action": "connected_to_cloud"}, "Connect OSS to Cloud")
|
|
282
|
+
_collector.schedule_flush()
|
|
283
|
+
|
|
284
|
+
|
|
280
285
|
def capture_exception(e):
|
|
281
286
|
user_id = load_user_profile().get("user_id")
|
|
282
287
|
if is_ci_env() is True:
|
recce/util/api_token.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import click
|
|
2
2
|
from rich.console import Console
|
|
3
3
|
|
|
4
|
+
from recce import event
|
|
4
5
|
from recce.event import get_recce_api_token, update_recce_api_token
|
|
5
6
|
from recce.exceptions import RecceConfigException
|
|
6
7
|
from recce.util.recce_cloud import (
|
|
@@ -36,29 +37,38 @@ def prepare_api_token(
|
|
|
36
37
|
valid = RecceCloud(new_api_token).verify_token()
|
|
37
38
|
if not valid:
|
|
38
39
|
raise RecceConfigException("Invalid Recce Cloud API token")
|
|
40
|
+
event.log_connected_to_cloud()
|
|
39
41
|
api_token = new_api_token
|
|
40
42
|
update_recce_api_token(api_token)
|
|
41
|
-
console.print(
|
|
43
|
+
console.print(
|
|
44
|
+
"[[green]Success[/green]] User profile has been updated to include the Recce Cloud API Token. "
|
|
45
|
+
"You no longer need to append --api-token to the recce command"
|
|
46
|
+
)
|
|
42
47
|
elif api_token:
|
|
43
48
|
# Verify the API token from the user profile
|
|
44
49
|
valid = RecceCloud(api_token).verify_token()
|
|
45
50
|
if not valid:
|
|
46
51
|
console.print("[[yellow]Warning[/yellow]] Invalid Recce Cloud API token. Skipping the share link.")
|
|
47
52
|
api_token = None
|
|
53
|
+
if valid:
|
|
54
|
+
event.log_connected_to_cloud()
|
|
48
55
|
else:
|
|
49
56
|
# No api_token provided
|
|
50
57
|
if interaction is True:
|
|
51
58
|
console.print(
|
|
52
|
-
"An API token is required
|
|
59
|
+
"An API token is required for this feature. This can be obtained in your user account settings.\n"
|
|
53
60
|
f"{RECCE_CLOUD_BASE_URL}/settings#tokens\n"
|
|
54
|
-
"Your API token
|
|
61
|
+
"Your API token can be added to '~/.recce/profile.yml' for more convenient sharing."
|
|
55
62
|
)
|
|
56
63
|
api_token = click.prompt("Your Recce API token", type=str, hide_input=True, show_default=False)
|
|
57
64
|
valid = RecceCloud(api_token).verify_token()
|
|
58
65
|
if not valid:
|
|
59
66
|
raise RecceConfigException("Invalid Recce Cloud API token")
|
|
60
67
|
update_recce_api_token(api_token)
|
|
61
|
-
console.print(
|
|
68
|
+
console.print(
|
|
69
|
+
"[[green]Success[/green]] User profile has been updated to include the Recce Cloud API Token. "
|
|
70
|
+
"You no longer need to append --api-token to the recce command"
|
|
71
|
+
)
|
|
62
72
|
|
|
63
73
|
if api_token:
|
|
64
74
|
cloud_onboarding_state = get_recce_cloud_onboarding_state(api_token)
|
{recce_nightly-1.8.0.20250613.dist-info → recce_nightly-1.8.0.20250613.post1.dist-info}/RECORD
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
recce/VERSION,sha256=
|
|
1
|
+
recce/VERSION,sha256=R8S-sFYdZi62lT5u2PSghaj3wM91TURgGZrLarbh9U4,21
|
|
2
2
|
recce/__init__.py,sha256=yNb0QT-yoStex0VZALNJvUwtPLommoVCStcow31guqo,2392
|
|
3
3
|
recce/artifact.py,sha256=tKQAHSrLRjiR3ppOI4sym8SxYiiLTuD3DPMYh4DWQdA,6506
|
|
4
|
-
recce/cli.py,sha256=
|
|
4
|
+
recce/cli.py,sha256=hNUy20Yk5e_iDv_gpCJ6LI5q3SzKZPAd3LQ-UNw1CcU,39725
|
|
5
5
|
recce/config.py,sha256=fs22mpFj8CFIxftGbhFAV5xIsPLX2xNTwWSer3UYn5k,4658
|
|
6
|
-
recce/core.py,sha256=
|
|
6
|
+
recce/core.py,sha256=3Nv2QWBGz3yj1QI0wyPNRaDj1rH80DsX2qRQn9ydpg0,10747
|
|
7
7
|
recce/diff.py,sha256=L2_bzQ3__PO-0aeir8PHF8FvSOUmQ8WcDXgML1-mHdY,748
|
|
8
8
|
recce/exceptions.py,sha256=SclQ678GrHGjw7p_ZFJ3vZaL_yMU5xABeIAm2u_W2bk,592
|
|
9
9
|
recce/git.py,sha256=8Eg-6NzL-KjA3rT-ibbAyaCwGlzV0JqH3yGikrJNMDA,2344
|
|
@@ -23,12 +23,10 @@ recce/apis/check_api.py,sha256=KMCXSMl1qqzx2jQgRqCrD4j_cY3EHBbM3H2-t-6saAU,6227
|
|
|
23
23
|
recce/apis/check_func.py,sha256=gktbCcyk3WGvWRJJ-wDnwv7NrIny2nTHWLl1-kdiVRo,4183
|
|
24
24
|
recce/apis/run_api.py,sha256=eOaxOxXDkH59uqGCd4blld7edavUx7JU_DCd2WAYrL8,3416
|
|
25
25
|
recce/apis/run_func.py,sha256=6wC8TDU-h7TLr2VZH7HNsWaUVlQ9HBN5N_dwqfi4lMY,7440
|
|
26
|
-
recce/data/404.html,sha256=
|
|
26
|
+
recce/data/404.html,sha256=J-nlKUk5YC19lSEU8ptPUSpUB5G7DwauN5L2LW2eyq4,26579
|
|
27
27
|
recce/data/favicon.ico,sha256=B2mBumUOnzvUrXrqNkrc5QfdDXjzEXRcWkWur0fJ6sM,2565
|
|
28
|
-
recce/data/index.html,sha256=
|
|
29
|
-
recce/data/index.txt,sha256=
|
|
30
|
-
recce/data/_next/static/1b9RkhMnOELoqdFmnzuo9/_buildManifest.js,sha256=RtyFkoNcorOw40S27S4Dvq7EWYCPgIlcyfK1fypRxkY,224
|
|
31
|
-
recce/data/_next/static/1b9RkhMnOELoqdFmnzuo9/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
28
|
+
recce/data/index.html,sha256=19_7f0r0w_RKmsJOSQGorYCxPstk_l9-FFZZ61EcOGE,42162
|
|
29
|
+
recce/data/index.txt,sha256=kpqamDI5nXzhp4RVT7w0nIhorqNXR91xp1_axVYR1do,4469
|
|
32
30
|
recce/data/_next/static/chunks/0d0b8943-1c8ef4728d0e645b.js,sha256=wJfK5fVnS1kuhkU9mpzg9BPhdc2UUIOqqVchtaMU-PA,172837
|
|
33
31
|
recce/data/_next/static/chunks/184-dc0879f75e9506c3.js,sha256=D60eEdD_Oqlk2CtuvIknSQOiJ1vNkZqVZ32HUdwnouw,97873
|
|
34
32
|
recce/data/_next/static/chunks/1bff33f1-39d26ad38ba4fe06.js,sha256=ldwDhIDmr8JhhNm6xffwe0HEm4Xs4e9lDkwTWKxJW7E,153777
|
|
@@ -79,13 +77,15 @@ recce/data/_next/static/media/montserrat-latin-ext-800-normal.2e5381b2.woff,sha2
|
|
|
79
77
|
recce/data/_next/static/media/montserrat-vietnamese-800-normal.20c545e6.woff,sha256=U5YlWNp5ytuS5tfT8Tt07U5xG3Qs0b2ze6vPx2KKG4s,7328
|
|
80
78
|
recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2,sha256=bnmP7vEVe-4gLSDBsmKqD-SATv6-Pg-pxnTpSj7BCeI,7948
|
|
81
79
|
recce/data/_next/static/media/reload-image.79aabb7d.svg,sha256=l-jdOsD0OBCpFrVYh1ubO8oajafPuPNs6MYnbanO7K0,840
|
|
80
|
+
recce/data/_next/static/neOLMn23ZycuVI9Knbz0x/_buildManifest.js,sha256=RtyFkoNcorOw40S27S4Dvq7EWYCPgIlcyfK1fypRxkY,224
|
|
81
|
+
recce/data/_next/static/neOLMn23ZycuVI9Knbz0x/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
82
82
|
recce/data/imgs/reload-image.svg,sha256=l-jdOsD0OBCpFrVYh1ubO8oajafPuPNs6MYnbanO7K0,840
|
|
83
83
|
recce/data/imgs/feedback/thumbs-down.png,sha256=q9KVIbaZku1TWkYHuleYlO-b6HsTApYh3St5xNHMGMg,10695
|
|
84
84
|
recce/data/imgs/feedback/thumbs-up.png,sha256=VF3BH8bmYEqcSsMDJO57xMqW4t6crCXUXaMlOPgI_OE,10556
|
|
85
85
|
recce/data/logo/recce-logo-white.png,sha256=y3re8iEucJnMUkAkRS2CjWHTlOydyvgWdWjuQKcXDbk,46923
|
|
86
86
|
recce/event/CONFIG,sha256=w8_AVcNu_JF-t8lNmjOqtsXbeOawMzpEhkISaMlm-iU,48
|
|
87
87
|
recce/event/SENTRY_DNS,sha256=nWXZevLC4qDScvNtjs329X13oxqvtFI_Kiu6cfCDOBA,83
|
|
88
|
-
recce/event/__init__.py,sha256=
|
|
88
|
+
recce/event/__init__.py,sha256=q82uD7GvAvp9nknyrOC2E-OtGsk0x-aM_rWEqzpkEgY,8613
|
|
89
89
|
recce/event/collector.py,sha256=1Y02A77CkMMrRv-5F1KUAMGebG7m3wXhsvcPdXM2Ugg,5661
|
|
90
90
|
recce/event/track.py,sha256=xDyDWblhR6mp0tezEYhkA0aOyZLqXBpJyHZwhI2xhU8,4803
|
|
91
91
|
recce/models/__init__.py,sha256=F7cgALtdWnwv37R0eEgKZ_yBsMwxWnUfo3jAZ3u6qyU,209
|
|
@@ -104,7 +104,7 @@ recce/tasks/schema.py,sha256=HHrSvhd_ZJdrNj2QKi9W8vmig0NuYci5cgsKFvp2bu4,2274
|
|
|
104
104
|
recce/tasks/top_k.py,sha256=vY3VCBmg61E8I4V-9-hJOv5RCYCmhxl6sHiKR9Zv7eE,5521
|
|
105
105
|
recce/tasks/valuediff.py,sha256=XJWkA307B5qTerT87fJRhJxPCqjmXn5eILYCXDfPtSQ,16439
|
|
106
106
|
recce/util/__init__.py,sha256=cDvL3WT32cJR9CUPIJmibwJoyYcB3ZaKBFbOZDyvqP8,95
|
|
107
|
-
recce/util/api_token.py,sha256=
|
|
107
|
+
recce/util/api_token.py,sha256=w_NI4pzcRv2FpBkYPW9Bg9TtQa50pB-hV1ukriIrQdg,3102
|
|
108
108
|
recce/util/breaking.py,sha256=evT-xlDWMgIbuPQH6w5yNoDjOqopKzBXnCF9_xTn1S0,12591
|
|
109
109
|
recce/util/cache.py,sha256=QB6wzxe0M3jNTwP0M27Ys8F2hF-oda4-LyXXG9THuZQ,646
|
|
110
110
|
recce/util/cll.py,sha256=VXhtyoPIcPEW3_SmNUTbZWwOmmv8_JRfAB9CLJ4S2Wg,13315
|
|
@@ -115,7 +115,7 @@ recce/util/pydantic_model.py,sha256=KumKuyCjbTzEMsKLE4-b-eZfp0gLhYDdmVtw1-hxiJw,
|
|
|
115
115
|
recce/util/recce_cloud.py,sha256=g7uhWkknR9ulTuGxaz14erOGiUwIv3q3C0mfCEG3gl8,7925
|
|
116
116
|
recce/util/singleton.py,sha256=1cU99I0f9tjuMQLMJyLsK1oK3fZJMsO5-TbRHAMXqds,627
|
|
117
117
|
recce/yaml/__init__.py,sha256=EgXYlFeJZchatUClRDXbIC5Oqb2_nBvB2NqItYVihio,1292
|
|
118
|
-
recce_nightly-1.8.0.20250613.dist-info/licenses/LICENSE,sha256=CQjjMy9aYPhfe8xG_bcpIfKtNkdxLZ5IOb8oPygtUhY,11343
|
|
118
|
+
recce_nightly-1.8.0.20250613.post1.dist-info/licenses/LICENSE,sha256=CQjjMy9aYPhfe8xG_bcpIfKtNkdxLZ5IOb8oPygtUhY,11343
|
|
119
119
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
120
|
tests/test_cli.py,sha256=_ikuZW4bYEGyj5A_V7nDSyBa1tVZqc0TVm-TJ0rEYVo,5467
|
|
121
121
|
tests/test_config.py,sha256=ODDFe_XF6gphmSmmc422dGLBaCCmG-IjDzTkD5SJsJE,1557
|
|
@@ -143,8 +143,8 @@ tests/tasks/test_row_count.py,sha256=21PaP2aq-x8-pqwzWHRT1sixhQ8g3CQNRWOZTTmbK0s
|
|
|
143
143
|
tests/tasks/test_schema.py,sha256=7ds4Vx8ixaiIWDR49Lvjem4xlPkRP1cXazDRY3roUak,3121
|
|
144
144
|
tests/tasks/test_top_k.py,sha256=YR_GS__DJsbDlQVaEEdJvNQ3fh1VmV5Nb3G7lb0r6YM,1779
|
|
145
145
|
tests/tasks/test_valuediff.py,sha256=_xQJGgxsXoy2NYk_Z6Hsw2FlVh6zk2nN_iUueyRN1e8,2046
|
|
146
|
-
recce_nightly-1.8.0.20250613.dist-info/METADATA,sha256=
|
|
147
|
-
recce_nightly-1.8.0.20250613.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
148
|
-
recce_nightly-1.8.0.20250613.dist-info/entry_points.txt,sha256=oqoY_IiwIqXbgrIsPnlqUqao2eiIeP2dprowkOlmeyg,40
|
|
149
|
-
recce_nightly-1.8.0.20250613.dist-info/top_level.txt,sha256=6PKGVpf75idP0C6KEaldDzzZUauIxNu1ZDstau1pI4I,12
|
|
150
|
-
recce_nightly-1.8.0.20250613.dist-info/RECORD,,
|
|
146
|
+
recce_nightly-1.8.0.20250613.post1.dist-info/METADATA,sha256=MILiATMsQEdg1miN8wriFY4ePi71Wzp8HIWalWWgkaM,9403
|
|
147
|
+
recce_nightly-1.8.0.20250613.post1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
148
|
+
recce_nightly-1.8.0.20250613.post1.dist-info/entry_points.txt,sha256=oqoY_IiwIqXbgrIsPnlqUqao2eiIeP2dprowkOlmeyg,40
|
|
149
|
+
recce_nightly-1.8.0.20250613.post1.dist-info/top_level.txt,sha256=6PKGVpf75idP0C6KEaldDzzZUauIxNu1ZDstau1pI4I,12
|
|
150
|
+
recce_nightly-1.8.0.20250613.post1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{recce_nightly-1.8.0.20250613.dist-info → recce_nightly-1.8.0.20250613.post1.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|