mostlyright-data 0.29.8__tar.gz → 0.29.9__tar.gz
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.
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/PKG-INFO +1 -1
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/pyproject.toml +1 -1
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/recipe.py +6 -5
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/recipe_explain.py +9 -7
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4.py +39 -10
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_query.py +1 -2
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/.gitignore +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/README.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/scripts/hatch_build.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/SKILL.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/agents/openai.yaml +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/1-open-the-page-and-the-link-to-it-in-the-first-message.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/2-brief-two-to-four-questions-each-with-a-recommended-answer.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/3-probe-read-a-source-before-committing-to-it.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/4-decide-say-what-you-chose-what-you-refused-and-ask-one-question.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/5-draft-one-recipe-document-one-call.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/6-build-one-run-sized-to-acquire-every-measured-source-whole.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/7-interrogate-ask-the-run-what-it-actually-delivered.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/8-fix-revise-the-document-and-register-it-again.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/9-present-only-what-survived-inspection-with-caveats.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/agent-protocol.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/autonomous-delivery.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/before-the-first-tool-call.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/boundaries.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/cloud-authentication-preflight.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/commands.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/cross-repository-protocol-reference.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/installation-parity.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/live-run.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/making-a-table-incremental.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/narrating-the-run.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/not-hosted-yet.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/one-install.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/prediction-labels.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/preparing-table-search.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/promote.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/readers.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/receipts.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/recording-a-stream-venue.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/recovering-an-import-failure.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/reference-pages.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/required-protocol.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/source-credentials.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/sources.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/the-one-thing-to-say-about-the-skill-itself.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/transforms.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/user-communication-contract.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/writing-a-decision-record.md +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/__init__.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/agent_protocol.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/canonical.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/formats.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/key_seam.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/page_coverage.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/part_check_evidence.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/session_probes.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/skill_assets.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/table_manifest.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/__init__.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/acquire.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/activity.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/approvals.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/categories.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/commands.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/dataset-categories-v1.json +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/download.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/fast_features.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/narrative.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/parity.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/probe.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/progress_rate.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/progress_vocabulary.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/propose.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/recipe_brief.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/recipe_forecast.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/recipe_lint.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/research.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/router.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/run_diagnose.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/runs.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/session.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/stream.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/studio_capabilities.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/transport.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/user_agent.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_catalog.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_connected.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_public.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_reader.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_search.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/vocabulary.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/__init__.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/attendance.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/clarification.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/credentials.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/login.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/remediation.py +0 -0
- {mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/render.py +0 -0
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/recipe.py
RENAMED
|
@@ -80,11 +80,9 @@ SHOW_SCHEMA = f"{THIN_SCHEMA_PREFIX}-recipe-read.v1"
|
|
|
80
80
|
READINESS_SCHEMA = f"{THIN_SCHEMA_PREFIX}-recipe-readiness.v1"
|
|
81
81
|
PROPOSE_SCHEMA = f"{THIN_SCHEMA_PREFIX}-recipe-propose.v1"
|
|
82
82
|
|
|
83
|
-
#:
|
|
84
|
-
#:
|
|
85
|
-
|
|
86
|
-
#: it has to clear is the canonical form's.
|
|
87
|
-
MAX_DOCUMENT_BYTES = 4 * 262_144
|
|
83
|
+
#: A plain input file may occupy up to Studio's 2 MiB body ceiling. Before submission,
|
|
84
|
+
#: the complete canonical UTF-8 request envelope must also fit that ceiling.
|
|
85
|
+
MAX_DOCUMENT_BYTES = v4.MAX_RECIPE_REQUEST_BYTES
|
|
88
86
|
|
|
89
87
|
#: ``recipe.schema.json#/$defs/recipe_document``'s required members, in the order the schema lists
|
|
90
88
|
#: them. Checked here before the network, for the reason every early refusal in this client
|
|
@@ -1187,6 +1185,9 @@ def register(
|
|
|
1187
1185
|
"""
|
|
1188
1186
|
|
|
1189
1187
|
document = read_document(Path(args.target))
|
|
1188
|
+
# UUIDs have fixed wire length. Refuse an oversized envelope before credentials,
|
|
1189
|
+
# capability reads or delegation writes; the actual client checks it again.
|
|
1190
|
+
v4.recipe_registration_body(document, "00000000-0000-0000-0000-000000000000")
|
|
1190
1191
|
# New grammar must be refused as unserved before local lint can diagnose its shape.
|
|
1191
1192
|
keyless = any(
|
|
1192
1193
|
capability == "keyless_window" for _, capability in recipe_explain.gated_grammar(document)
|
|
@@ -39,6 +39,7 @@ from mostlyright.data_harness.thin.transport import ThinLaneError
|
|
|
39
39
|
from mostlyright.data_harness.thin.v4 import (
|
|
40
40
|
EXPLAIN_AND_FORECAST_REQUEST_VERSION,
|
|
41
41
|
StudioV4Client,
|
|
42
|
+
check_recipe_request_size,
|
|
42
43
|
identifier,
|
|
43
44
|
)
|
|
44
45
|
|
|
@@ -1231,17 +1232,18 @@ def explain_document_at_studio(
|
|
|
1231
1232
|
nothing, which is what makes it safe to ask before a registration.
|
|
1232
1233
|
"""
|
|
1233
1234
|
|
|
1235
|
+
body = {
|
|
1236
|
+
"schema_version": ROUTES_REQUEST_VERSION,
|
|
1237
|
+
"workspace_id": str(client.session.workspace_id),
|
|
1238
|
+
"document": dict(document),
|
|
1239
|
+
}
|
|
1240
|
+
check_recipe_request_size(body)
|
|
1234
1241
|
try:
|
|
1235
|
-
# The one inherited `_call`
|
|
1236
|
-
# ceiling and refusal translation as every other V4 call.
|
|
1242
|
+
# The one inherited `_call` carries the ordinary response ceiling.
|
|
1237
1243
|
answer = client._call(
|
|
1238
1244
|
"POST",
|
|
1239
1245
|
EXPLAIN_REFRESH_PATH,
|
|
1240
|
-
body=
|
|
1241
|
-
"schema_version": ROUTES_REQUEST_VERSION,
|
|
1242
|
-
"workspace_id": str(client.session.workspace_id),
|
|
1243
|
-
"document": dict(document),
|
|
1244
|
-
},
|
|
1246
|
+
body=body,
|
|
1245
1247
|
expected=(200,),
|
|
1246
1248
|
)
|
|
1247
1249
|
except ThinLaneError as refusal:
|
|
@@ -39,6 +39,7 @@ from collections.abc import Mapping
|
|
|
39
39
|
from typing import Any
|
|
40
40
|
from uuid import UUID
|
|
41
41
|
|
|
42
|
+
from mostlyright.data_harness.canonical import canonical_json_bytes
|
|
42
43
|
from mostlyright.data_harness.thin.runs import StudioApiClient
|
|
43
44
|
from mostlyright.data_harness.thin.transport import ThinLaneError
|
|
44
45
|
|
|
@@ -915,6 +916,35 @@ def identifier(value: str, field: str) -> str:
|
|
|
915
916
|
raise ThinLaneError("THIN_REQUEST_INVALID", f"{value!r} is not a {field}") from error
|
|
916
917
|
|
|
917
918
|
|
|
919
|
+
# Studio's API request-body middleware accepts at most 2 MiB. Bound the complete
|
|
920
|
+
# UTF-8 wire envelope, not the recipe's character count or its formatted file size.
|
|
921
|
+
MAX_RECIPE_REQUEST_BYTES = 2 * 1024 * 1024
|
|
922
|
+
# A GET recipe includes the document plus identifiers and registration metadata.
|
|
923
|
+
# Give that envelope 1 MiB headroom; ordinary JSON routes retain their 1 MiB cap.
|
|
924
|
+
MAX_RECIPE_RESPONSE_BYTES = MAX_RECIPE_REQUEST_BYTES + 1024 * 1024
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
def check_recipe_request_size(body: Mapping[str, Any]) -> None:
|
|
928
|
+
size = len(canonical_json_bytes(body))
|
|
929
|
+
if size > MAX_RECIPE_REQUEST_BYTES:
|
|
930
|
+
raise ThinLaneError(
|
|
931
|
+
"THIN_RECIPE_REQUEST_TOO_LARGE",
|
|
932
|
+
f"the serialized recipe request is {size} bytes; Studio accepts at most "
|
|
933
|
+
f"{MAX_RECIPE_REQUEST_BYTES} bytes including its request envelope. "
|
|
934
|
+
"Reduce the recipe before submitting it",
|
|
935
|
+
)
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
def recipe_registration_body(document: Mapping[str, Any], workspace_id: str) -> dict[str, Any]:
|
|
939
|
+
body = {
|
|
940
|
+
"workspace_id": workspace_id,
|
|
941
|
+
"document": dict(document),
|
|
942
|
+
"require_category": True,
|
|
943
|
+
}
|
|
944
|
+
check_recipe_request_size(body)
|
|
945
|
+
return body
|
|
946
|
+
|
|
947
|
+
|
|
918
948
|
class StudioV4Client(StudioApiClient):
|
|
919
949
|
"""The V4 routes, over the transport and the hardening :class:`StudioApiClient` already has.
|
|
920
950
|
|
|
@@ -993,11 +1023,7 @@ class StudioV4Client(StudioApiClient):
|
|
|
993
1023
|
return self._call(
|
|
994
1024
|
"POST",
|
|
995
1025
|
CREATE_RECIPE_PATH,
|
|
996
|
-
body=
|
|
997
|
-
"workspace_id": str(self.session.workspace_id),
|
|
998
|
-
"document": dict(document),
|
|
999
|
-
"require_category": True,
|
|
1000
|
-
},
|
|
1026
|
+
body=recipe_registration_body(document, str(self.session.workspace_id)),
|
|
1001
1027
|
expected=(201,),
|
|
1002
1028
|
)
|
|
1003
1029
|
|
|
@@ -1008,6 +1034,7 @@ class StudioV4Client(StudioApiClient):
|
|
|
1008
1034
|
"GET",
|
|
1009
1035
|
GET_RECIPE_PATH.format(recipe_id=identifier(recipe_id, "recipe identifier")),
|
|
1010
1036
|
expected=(200,),
|
|
1037
|
+
maximum=MAX_RECIPE_RESPONSE_BYTES,
|
|
1011
1038
|
)
|
|
1012
1039
|
|
|
1013
1040
|
def recipe_readiness(
|
|
@@ -1049,14 +1076,16 @@ class StudioV4Client(StudioApiClient):
|
|
|
1049
1076
|
def explain_recipe_refresh(self, document: Mapping[str, Any]) -> dict[str, Any]:
|
|
1050
1077
|
"""Judge one unregistered recipe document for refresh, and read what this Studio serves."""
|
|
1051
1078
|
|
|
1079
|
+
body = {
|
|
1080
|
+
"schema_version": EXPLAIN_AND_FORECAST_REQUEST_VERSION,
|
|
1081
|
+
"workspace_id": str(self.session.workspace_id),
|
|
1082
|
+
"document": dict(document),
|
|
1083
|
+
}
|
|
1084
|
+
check_recipe_request_size(body)
|
|
1052
1085
|
return self._call(
|
|
1053
1086
|
"POST",
|
|
1054
1087
|
EXPLAIN_RECIPE_REFRESH_PATH,
|
|
1055
|
-
body=
|
|
1056
|
-
"schema_version": EXPLAIN_AND_FORECAST_REQUEST_VERSION,
|
|
1057
|
-
"workspace_id": str(self.session.workspace_id),
|
|
1058
|
-
"document": dict(document),
|
|
1059
|
-
},
|
|
1088
|
+
body=body,
|
|
1060
1089
|
expected=(200,),
|
|
1061
1090
|
)
|
|
1062
1091
|
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_query.py
RENAMED
|
@@ -54,7 +54,6 @@ from mostlyright.data_harness.thin.session import (
|
|
|
54
54
|
)
|
|
55
55
|
from mostlyright.data_harness.thin.transport import ThinLaneError, UrlLibTransport
|
|
56
56
|
from mostlyright.data_harness.thin.v4 import (
|
|
57
|
-
GET_RECIPE_PATH,
|
|
58
57
|
GET_RUN_PATH,
|
|
59
58
|
GET_RUN_QUERY_PATH,
|
|
60
59
|
RUN_QUERY_PATH,
|
|
@@ -278,7 +277,7 @@ class StudioV4QueryClient(StudioV4Client):
|
|
|
278
277
|
def recipe_source_ids(self, recipe_id: str) -> list[str]:
|
|
279
278
|
"""The sources a recipe registered, which a session opened for its dataset may probe."""
|
|
280
279
|
|
|
281
|
-
record = self.
|
|
280
|
+
record = self.recipe(recipe_id)
|
|
282
281
|
listed = record.get("source_ids")
|
|
283
282
|
sources = (
|
|
284
283
|
[item for item in listed if isinstance(item, str) and item]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/boundaries.md
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/commands.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/live-run.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/one-install.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/promote.md
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/readers.md
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/receipts.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/sources.md
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/skills/mr-data-build/references/transforms.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/__init__.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/agent_protocol.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/canonical.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/key_seam.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/page_coverage.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/session_probes.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/skill_assets.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/table_manifest.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/__init__.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/acquire.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/activity.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/approvals.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/categories.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/commands.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/download.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/narrative.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/parity.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/probe.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/propose.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/recipe_lint.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/research.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/router.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/runs.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/session.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/stream.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/transport.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/user_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_catalog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_datasets.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_handoff.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_public.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_reader.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_runs.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_search.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_secrets.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_stream.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/v4_tables.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/thin/vocabulary.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/__init__.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/attendance.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/clarification.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/cloud_auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/commands/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/credentials.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/login.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/path_kind.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/plain_file.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/remediation.py
RENAMED
|
File without changes
|
{mostlyright_data-0.29.8 → mostlyright_data-0.29.9}/src/mostlyright/data_harness/ux/render.py
RENAMED
|
File without changes
|