mostlyright-data 0.11.1__tar.gz → 0.13.0__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.11.1 → mostlyright_data-0.13.0}/PKG-INFO +1 -1
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/pyproject.toml +1 -1
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/skills/mr-data-build/SKILL.md +166 -41
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/cli.py +15 -2
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_run_worker.py +160 -19
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +2 -2
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +178 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/run_execution_v4.py +266 -14
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_rotation.py +27 -7
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_series.py +1261 -105
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/stream_subscription_sealer.py +51 -1
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/stream_subscription_worker.py +811 -15
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/stream_venue.py +9 -1
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/studio_boundary.py +2 -2
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/studio_subscription_control.py +109 -5
- mostlyright_data-0.13.0/src/mostlyright/data_harness/thin/activity.py +902 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/recipe.py +99 -1
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/router.py +28 -1
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/stream_venue.py +338 -33
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/transport.py +25 -4
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4.py +115 -4
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_artifacts.py +14 -4
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_datasets.py +267 -38
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_query.py +193 -5
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_runs.py +4 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_stream.py +37 -3
- mostlyright_data-0.13.0/src/mostlyright/data_harness/thin/v4_tables.py +1300 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/vocabulary.py +16 -1
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/clarify.py +49 -2
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/remediation.py +1 -1
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/render.py +21 -2
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_stream_recording.py +5 -2
- mostlyright_data-0.11.1/src/mostlyright/data_harness/thin/v4_tables.py +0 -488
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/.gitignore +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/README.md +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/scripts/hatch_build.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/skills/mr-data-build/agents/openai.yaml +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/http.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/agent_runtime.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/backends/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/backends/protocol.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/backends/reference.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/backends/registry.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/bounded_query.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/canonical.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/catalog_job.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/coordinator.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/crosswalks.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/declared_checks.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/deploy.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/deploy_target.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/agent_request.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/capture.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/lane.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/ocr.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/pdf.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/registry.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/selections.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/tables.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/events.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/fast_delimited.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/formats.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/governors.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_dataset.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_handoff.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_session_worker.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/hosted_worker.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ingestion/store.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/inprocess_acquisition.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/key_seam.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/local_contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/local_search/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/local_search/build_index.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/local_search/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/local_search/query_trace.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/local_search/retrieval.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/local_search/sealed.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/local_search/service.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/document.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/status.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/notebook.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/offline.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/operation_registry.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/operator_setup.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/pipeline.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/plan_graph.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/engine.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/errors.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/gates.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/joins.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/profile.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/table.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/progress_events.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/budgets.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/containers.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/delimited.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/html_web_extract.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/registry.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/himawari-hsd-b13-complete.zip +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/samples.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/tabular.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/vector.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/recipe.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/repair/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/repair/adapters.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/repair/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/repair/coordinator.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/repair/errors.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/review.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/rowset.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/session_probes.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/signing.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/skill_assets.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/source_discovery.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/adapters.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/cadence.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/delta.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/health.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/rights_decisions.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/collections.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/dataset.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/deletion.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/fitness.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/governance.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/hosted.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/integration.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/registry.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/sports.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/acquire.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/approvals.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/commands.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/download.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/narrative.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/parity.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/probe.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/propose.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/research.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/runs.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/session.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/stream.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/thin/workers.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/unit_flow.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/units.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/approve.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/attendance.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/author_yaml.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/clarification.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/approve.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/author.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/catalog_fill.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/catalog_search.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/catalog_update.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/deploy.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/deploy_dataset.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/deploy_plan.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/deploy_status.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/diff.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/document.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/index.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/inventory.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/list_builds.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/peek.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/plan_check.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/preflight.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/review_setup.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/search.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/show.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/credentials.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/diffing.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/headline.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/hosted_run_status.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/inventory.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/local_review.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/login.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/peek.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/plan_check.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/preflight.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/readers.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/ux/workload.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_acquisition.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_recipe.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_required_controls.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/v4_transform.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/query.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/store.py +0 -0
- {mostlyright_data-0.11.1 → mostlyright_data-0.13.0}/src/mostlyright/data_harness/visual_run/transport.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mostlyright-data
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0
|
|
4
4
|
Summary: Mostly Right CLI for reproducible, reviewed Parquet datasets
|
|
5
5
|
Project-URL: Homepage, https://mostlyright.md/
|
|
6
6
|
Project-URL: Documentation, https://mostlyright.md/docs/guides/cli/
|
|
@@ -59,6 +59,13 @@ not the other: silent work stays silent in both, and a message that is not worth
|
|
|
59
59
|
not worth sending. This is a rule about the messages this contract already allows — it does not
|
|
60
60
|
license one extra update.
|
|
61
61
|
|
|
62
|
+
**Activity is not narration.** Setting the dataset's activity is a routine, silent act like any
|
|
63
|
+
other command: it never produces a chat message and never a cell. The rule above governs what is
|
|
64
|
+
said; activity governs what is happening. They answer different questions and never stand in for
|
|
65
|
+
each other — a phase is not a message, and a message is not a substitute for the phase. So
|
|
66
|
+
`mr-data dataset activity` is written wherever the stages below say to write it, in silence, under
|
|
67
|
+
the same rule that keeps authentication checks and receipt parsing silent.
|
|
68
|
+
|
|
62
69
|
For hosted work, register the Dataset first and open its canonical page immediately in the host's
|
|
63
70
|
in-app browser: `mr-data open /datasets/DATASET_ID` mints a single-use address for it, and
|
|
64
71
|
when that address cannot be minted, carry on without it rather than blocking.
|
|
@@ -88,14 +95,14 @@ the one command with no implementation behind it.
|
|
|
88
95
|
There is no second profile and no lane to choose. `--hosted` is accepted and does nothing, because
|
|
89
96
|
the lane it names is the only one; a script that already carries it keeps working.
|
|
90
97
|
|
|
91
|
-
`mr-data --help` lists every command this product has — twenty-
|
|
98
|
+
`mr-data --help` lists every command this product has — twenty-eight of them, and the page is the
|
|
92
99
|
whole list. A name that is not on it is not a command: typing one answers `THIN_UNKNOWN_COMMAND`,
|
|
93
100
|
exactly as a misspelling does. Do not retry it under a different install, and do not report its
|
|
94
101
|
absence as a defect.
|
|
95
102
|
|
|
96
103
|
## Commands
|
|
97
104
|
|
|
98
|
-
These twenty-
|
|
105
|
+
These twenty-eight are the whole surface, alongside `acquire-slices`, which names a capability
|
|
99
106
|
gap rather than doing anything, and `export-hosted-candidate`, which is a backend operator step.
|
|
100
107
|
|
|
101
108
|
| Command | What it does |
|
|
@@ -105,7 +112,7 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
|
|
|
105
112
|
| `mr-data whoami` | Use the compatibility alias for the remotely validated `auth status` answer. |
|
|
106
113
|
| `mr-data clarify` | Say whether one clarifying question may be put to the user right now, and compose the record of their answer. It reaches nothing, asks nobody and waits for nothing. Exits non-zero when no person can answer or when a recipe is already registered. |
|
|
107
114
|
| `mr-data probe` | Ask one registered source one question and print the answer. **Currently unusable:** it reaches `/v3/sessions`, which Studio refuses, and it takes a question identifier that no v4 receipt returns. Do not plan a source inspection around it. |
|
|
108
|
-
| `mr-data dataset` | Bring the dataset page into existence before there is anything on it, then fill it in while somebody watches. `dataset create --name TEXT` mints it and prints the `dataset_id`; `dataset show ID` reads it back; `dataset set ID --name TEXT --description-file F` writes the title and the description under the version it was read at, retrying once if somebody else wrote first; `dataset note ID --heading H --blocks-file B` writes one cell of the decision record that OUTLIVES every run, and `--list` reads it back; `dataset watch ID` follows the page's own event stream. |
|
|
115
|
+
| `mr-data dataset` | Bring the dataset page into existence before there is anything on it, then fill it in while somebody watches. `dataset create --name TEXT` mints it and prints the `dataset_id`; `dataset show ID` reads it back; `dataset set ID --name TEXT --description-file F` writes the title and the description under the version it was read at, retrying once if somebody else wrote first; `dataset note ID --heading H --blocks-file B` writes one cell of the decision record that OUTLIVES every run, and `--list` reads it back; `dataset watch ID` follows the page's own event stream; `dataset activity ID --phase P --message TEXT` says what is happening right now, silently, and is never a chat message and never a cell; `dataset archive ID --confirm-name TITLE` retires the page and frees its title, deleting nothing. |
|
|
109
116
|
| `mr-data recipe` | Register one recipe document — dataset, question, table plan, sources, transform, checks and units — in one call, and print the identifiers the server derived. `mr-data recipe show ID` reads one back. |
|
|
110
117
|
| `mr-data cover` | Generate and attach one branded 1200×630 dataset cover. Give it the dataset ID and what the image should depict; Studio fixes the model, single-color style, curated random palette, dimensions and storage. |
|
|
111
118
|
| `mr-data run` | Start one run against a registered recipe, named as `--recipe RECIPE_ID --digest RECIPE_DIGEST` — both required, neither positional, and the digest is the bare hex the registration receipt printed. The command accepts `--sample`, `--full`, `--refresh`, `--backfill` and `--window`, and the worker executes `--sample`, `--full` and `--refresh` (a refresh re-acquires the declared addresses over the previous version and claims no window); `--backfill` and a `--window` on a sample or full are refused before acquisition. `--max-rows` and `--max-source-bytes` remain supported, and each bounds ONE SOURCE rather than the finished table. A large run is held for a spend confirmation, which `--confirm` settles; a sample-first held full requires Studio's interactive human approval instead. `--cancel RUN` stops one. |
|
|
@@ -123,15 +130,19 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
|
|
|
123
130
|
| `mr-data stream` | Record a public `wss://` venue so a build can read it. `stream document register --file F` admits the connector document, `stream registry create --digest D` admits a set of them, `stream probe` listens briefly and seals nothing, `stream capture --seconds N` records a bounded window, `stream subscribe` keeps recording, `stream subscription {show|pause|resume|stop} ID` moves one, `stream status ID` reads a capture or a probe, and `stream recordings --document-digest D` names what a build could read and until when. `--seconds` is at most 600. `mr-data run` takes no duration: a build reads sealed batches and is bounded by them. |
|
|
124
131
|
| `mr-data open` | Mint a single-use, short-lived address that continues this session in a browser at one dashboard path, and print it. `--open` hands it to the platform opener. The credential decides who mints: a device credential — what `mr-data login` stores — mints at Cloud, and a personal access token mints at Studio. |
|
|
125
132
|
| `mr-data promote` | Ask Studio to publish one table after a person's decision. The Harness worker does not perform the catch-up or scheduled refresh; report those only when another deployed component returns durable evidence that it did. |
|
|
133
|
+
| `mr-data reschedule` | Change how often one live table refreshes, without the demote and promote that would reset its bookkeeping and buy a catch-up run. `--cadence` takes a cron expression or an interval such as `every 6h`; `--why` records the reasoning. It starts no run. `--lock` freezes the schedule so Studio stops adjusting it; `--unlock` lets it follow the source again. |
|
|
134
|
+
| `mr-data table` | Report what one table is serving and how its refresh schedule is going: the state in plain words, the schedule in force, the next refresh, the schedule that was asked for and the reason given for it, and — once Studio has settled on one — the interval it measured and how many source updates that rests on. `table rename TABLE --name NAME` writes a new name, lowercase snake_case and unique within its dataset, fenced on that dataset's version and retried once if somebody else wrote first; nothing is rebuilt, because every run, version and schedule hangs off the identifier, which does not move. `table archive TABLE --confirm-name NAME` retires the table and frees its name; a live table is refused until you `demote` it, and nothing built is deleted. |
|
|
126
135
|
| `mr-data pin` | Ask Studio to freeze one table pointer on an exact version, for a rollback or a hold. |
|
|
127
136
|
| `mr-data unpin` | Ask Studio to resume pointer tracking; read the returned state before claiming it resumed. |
|
|
128
137
|
| `mr-data demote` | Ask Studio to withdraw the pointer and any schedule it owns. |
|
|
129
138
|
|
|
130
139
|
`auth`, `login`, `whoami` and `clarify` are the same implementation in both profiles, and
|
|
131
|
-
`clarify` alone reaches nothing at all. The other twenty-
|
|
132
|
-
read: `status`, `runs`, `watch`, `peek`, `receipt`, `checks`, `download` and `diff`.
|
|
133
|
-
start or change something: `dataset`, `recipe`, `cover`, `run`, `query`, `probe`, `keys`,
|
|
134
|
-
`stream`, `open`, `note`, `promote`, `pin`, `unpin` and `demote`.
|
|
140
|
+
`clarify` alone reaches nothing at all. The other twenty-four answer from Studio. Eight only
|
|
141
|
+
read: `status`, `runs`, `watch`, `peek`, `receipt`, `checks`, `download` and `diff`.
|
|
142
|
+
Sixteen start or change something: `dataset`, `recipe`, `cover`, `run`, `query`, `probe`, `keys`,
|
|
143
|
+
`stream`, `open`, `note`, `promote`, `reschedule`, `table`, `pin`, `unpin` and `demote`. The split
|
|
144
|
+
is over names, not over invocations: `table TABLE` reads and `table rename` writes, and the name
|
|
145
|
+
sits on the side of whichever half changes something.
|
|
135
146
|
|
|
136
147
|
**Any successful run is readable straight away.** There is no approval, no admission and no release
|
|
137
148
|
step between a run finishing and reading it: `download`, `receipt`, `checks`, `peek` and `query`
|
|
@@ -219,7 +230,10 @@ live data key is refused with `THIN_AUTHENTICATION_FAILED` rather than failing t
|
|
|
219
230
|
There is one loop, and it is short: open the page before you have anything to put on it, probe the
|
|
220
231
|
sources, say out loud what you chose and what you refused, draft one recipe document, build a
|
|
221
232
|
sample, interrogate what came back, fix the document, build again. Then present only what you
|
|
222
|
-
inspected, with its caveats.
|
|
233
|
+
inspected, with its caveats. The last two steps are conditional and `truncated` is what decides
|
|
234
|
+
them: a sample that came back complete IS the table a full run would have sealed, so there is
|
|
235
|
+
nothing to build again and nothing to ask about — only a TRUNCATED sample sends you round the
|
|
236
|
+
loop. Nothing between a run finishing and reading it is held for a person,
|
|
223
237
|
so there is no approval to seek, no separate body of evidence to read back, and no state to wait
|
|
224
238
|
for; the only human gate in the product is [Promote](#promote), which comes after the loop has
|
|
225
239
|
produced a table worth making live.
|
|
@@ -294,6 +308,30 @@ Hold the `dataset_id` for the rest of the session: stage 3 writes the decision r
|
|
|
294
308
|
|
|
295
309
|
### 2. Probe — read a source before committing to it
|
|
296
310
|
|
|
311
|
+
**Say what is happening, three times, silently.** The dataset's activity is the state the page's
|
|
312
|
+
own indicator reads. It is not a message and not a cell: write it and say nothing, exactly as you
|
|
313
|
+
run every other command. Write it as the search starts, again once the shortlist is in hand, and
|
|
314
|
+
again when the document is being written:
|
|
315
|
+
|
|
316
|
+
```sh
|
|
317
|
+
mr-data dataset activity DATASET_ID --phase researching \
|
|
318
|
+
--message "Looking for feeds that carry hourly stage for the Bagmati" --json
|
|
319
|
+
mr-data dataset activity DATASET_ID --phase comparing \
|
|
320
|
+
--message "Comparing four candidate gauges against the question" \
|
|
321
|
+
--fact candidates=4 --fact sources_probed=2 --json
|
|
322
|
+
mr-data dataset activity DATASET_ID --phase drafting \
|
|
323
|
+
--message "Writing the recipe: three gauges, one hourly table" --json
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
The message is one plain line about what you are doing right now, and the facts are counts you
|
|
327
|
+
already hold — how many sources the discovery lanes shortlisted, how many of them you actually
|
|
328
|
+
opened. Do not invent either; a fact you have not counted is a fact to leave out.
|
|
329
|
+
|
|
330
|
+
**Then stop writing it by hand.** Every later phase comes from the commands themselves:
|
|
331
|
+
registering a recipe, starting a run, reading a finished one, asking the user a question and
|
|
332
|
+
promoting a table each move the page on their own. Stage 2 is the one stretch of the build where
|
|
333
|
+
nothing has been submitted yet, which is why it is the one stretch that has to say so.
|
|
334
|
+
|
|
297
335
|
**Judge the sources.** This stays with the external agent and is the substance of the task. Search
|
|
298
336
|
every available discovery lane with no lane priority: a configured sealed catalog, host public-web
|
|
299
337
|
search, official provider catalogs/APIs/download indexes/documentation, and user-supplied sources.
|
|
@@ -556,6 +594,11 @@ window into any source request, so any stated `--window` is refused before acqui
|
|
|
556
594
|
mr-data run --recipe RECIPE_ID --digest RECIPE_DIGEST --sample --max-rows 2000 --json
|
|
557
595
|
```
|
|
558
596
|
|
|
597
|
+
Two thousand is the number to use before you have measured anything: it exercises every column,
|
|
598
|
+
every cast and every declared check, and it comes back while the person who asked is still
|
|
599
|
+
watching. Once stage 2 has measured the sources, raise it above the largest of them — the
|
|
600
|
+
paragraphs below say why a ceiling under the real size costs more than the run it saved.
|
|
601
|
+
|
|
559
602
|
**Both flags are required and neither is a positional.** `mr-data run RECIPE_ID` is refused:
|
|
560
603
|
`--recipe` names the registered recipe and `--digest` states which bytes of it you mean to run,
|
|
561
604
|
as the bare lowercase hex `recipe_digest` the registration receipt printed — no `sha256:` prefix.
|
|
@@ -564,16 +607,40 @@ a revision nobody read, which is why the client will not derive it for you. Hold
|
|
|
564
607
|
from the registration receipt: every run of that recipe needs the pair.
|
|
565
608
|
|
|
566
609
|
**`--max-rows` is a per-source ceiling, not a table size.** Each acquired source is truncated at
|
|
567
|
-
that many rows, so a recipe with eight sources delivers up to eight times the number you
|
|
568
|
-
— 2,000 becomes 16,000. Read the delivered size off the run's `coverage` and say the
|
|
569
|
-
reports, never the number you passed.
|
|
570
|
-
|
|
571
|
-
**
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
610
|
+
that many rows on its own, so a recipe with eight sources delivers up to eight times the number you
|
|
611
|
+
asked for — 2,000 becomes 16,000. Read the delivered size off the run's `coverage` and say the
|
|
612
|
+
number the run reports, never the number you passed.
|
|
613
|
+
|
|
614
|
+
**And because it is per source, a low ceiling breaks a multi-source recipe's own checks.** Eight
|
|
615
|
+
sources each cut at 2,000 rows are eight partial spans stitched into one table, and the seams are
|
|
616
|
+
gaps that exist nowhere in the data: a continuity or completeness check that would pass over the
|
|
617
|
+
whole thing fails over the sample, and it fails for a reason that has nothing to do with the
|
|
618
|
+
recipe. Debugging that costs more than the run it saved. The ceiling is there to stop a source you
|
|
619
|
+
have not measured from running away with the afternoon, not to make a small table.
|
|
620
|
+
|
|
621
|
+
**So: when you have measured the sources, set the ceiling above the largest one.** Stage 2 opened
|
|
622
|
+
these feeds and knows roughly how many rows each carries. Pick a number comfortably above the
|
|
623
|
+
biggest of them and the sample acquires every source whole — no artificial seams, every declared
|
|
624
|
+
check meaningful, and `coverage` untruncated on every entry, which is what makes the sample
|
|
625
|
+
finished work rather than a shape test. Where a source was never opened, and its size is therefore
|
|
626
|
+
a guess, two thousand rows a source is the fallback: it exercises every column, every cast and
|
|
627
|
+
every declared check, and it comes back while the person who asked is still watching the page.
|
|
628
|
+
|
|
629
|
+
**One Reader holds about 3 MiB of one source at a time, and that bounds what a source DELIVERS.**
|
|
630
|
+
It is the largest single source rather than the total — one Reader opens one source at a time — and
|
|
631
|
+
a source that really delivers more than that dies mid-run with `SANDBOX_MEMORY_LIMIT`. This is
|
|
632
|
+
yours to apply to the sizes stage 2 measured, not something the command decides for you:
|
|
633
|
+
`limits.max_source_bytes` states where fetching STOPS rather than how big the source is, so
|
|
634
|
+
`mr-data recipe` does not refuse a large one. It registers the document and puts one sentence on
|
|
635
|
+
the receipt under `warnings`, naming the source and both numbers. Read that as "go and check this
|
|
636
|
+
one", not as a failure: a document declaring 8 MiB over a feed that answers 40 KB is fine.
|
|
637
|
+
|
|
638
|
+
**If a source really does deliver more than the Reader holds, do not answer it by lowering the
|
|
639
|
+
ceiling on that source:** that does not fetch less data, it truncates the sample or refuses the
|
|
640
|
+
full run. Split the window across several sources — one per month, per region, or per whatever the
|
|
641
|
+
publisher paginates on — and union them in a first transform step. A recipe names up to 64 sources,
|
|
642
|
+
which is a great many windows. [The recipe document](../../docs/RECIPE-DOCUMENT.md) carries the
|
|
643
|
+
measured numbers behind the ceiling.
|
|
577
644
|
|
|
578
645
|
**The dataset's record is the primary one; a run's own record is for what happened inside that
|
|
579
646
|
run.** The sources, the decisions and the questions went onto the dataset in stage 3, where they
|
|
@@ -629,7 +696,7 @@ Four reads, and none of them waits on anything:
|
|
|
629
696
|
|
|
630
697
|
```sh
|
|
631
698
|
mr-data peek RUN --json # columns, logical types, first rows
|
|
632
|
-
mr-data query RUN "select count(*) from
|
|
699
|
+
mr-data query RUN "select count(*) from run_table" --json
|
|
633
700
|
mr-data checks RUN --json # every check the recipe declared
|
|
634
701
|
mr-data receipt RUN --json # sources, digests, coverage, snapshot members
|
|
635
702
|
```
|
|
@@ -650,11 +717,13 @@ The refusals are cheap and legible by design, so read the code rather than retry
|
|
|
650
717
|
| `QUERY_RESULT_TOO_LARGE` | The answer was over the byte ceiling. It is a refusal, never a truncation: a short answer that looked complete would be worse than none. |
|
|
651
718
|
| `QUERY_TIMEOUT` | The statement outran its deadline. |
|
|
652
719
|
| `QUERY_TABLE_UNAVAILABLE` | The run has no readable table — it did not succeed, or its artifact is not there. |
|
|
653
|
-
| `QUERY_NO_WARM_EXECUTOR` | No warm worker holds this workspace.
|
|
720
|
+
| `QUERY_NO_WARM_EXECUTOR` | No warm worker holds this workspace. `mr-data query` answers it by opening a research session for the run's dataset, asking, and closing it; with `--no-session` the refusal is printed instead, carrying a retry window. |
|
|
654
721
|
|
|
655
722
|
**Studio deliberately does not start a worker on a query.** Scale-to-session is a cost invariant,
|
|
656
|
-
so
|
|
657
|
-
|
|
723
|
+
so the cold start is spent only on a question actually asked: `mr-data query` opens a session for
|
|
724
|
+
the run's own dataset when no worker is warm, waits for its worker (the states are printed as they
|
|
725
|
+
happen), asks, and closes the session behind the answer. Pass `--no-session` to be refused instead,
|
|
726
|
+
and then wait through the window the refusal names rather than retrying in a tight loop.
|
|
658
727
|
|
|
659
728
|
**The statement gate is a word-boundary scan over a masked copy of the statement, and it does not
|
|
660
729
|
read SQL.**
|
|
@@ -688,38 +757,71 @@ the checks and the coverage say what you need them to say.
|
|
|
688
757
|
### 8. Present — only what survived inspection, with caveats
|
|
689
758
|
|
|
690
759
|
Report what you inspected, and nothing you did not. Nothing else checks this run: `verified` is not
|
|
691
|
-
a word some other worker said about it, it is what you established by reading it.
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
> Inspected 2,000 rows from the acquired source snapshot — a sample. All four declared checks
|
|
695
|
-
> passed. Coverage was truncated at the row ceiling, and no run window was applied, so this is not
|
|
696
|
-
> evidence for a stated calendar interval.
|
|
697
|
-
|
|
698
|
-
Three facts carry that sentence and all three are on the run: how many rows you actually looked at,
|
|
699
|
-
what the declared checks reported, and whether `coverage.truncated` was true. A null coverage
|
|
760
|
+
a word some other worker said about it, it is what you established by reading it. Three facts carry
|
|
761
|
+
whatever you say and all three are on the run: how many rows you actually looked at, what the
|
|
762
|
+
declared checks reported, and whether `coverage.truncated` was true on any entry. A null coverage
|
|
700
763
|
window means the acquisition was unwindowed, not that it covered all time. Never present a sampled
|
|
701
764
|
row as a whole-population value, never call a run verified because it succeeded, and never report
|
|
702
765
|
coverage you did not read off `coverage`.
|
|
703
766
|
|
|
704
|
-
**
|
|
705
|
-
|
|
706
|
-
|
|
767
|
+
**Read `truncated` first, because it decides which of two endings this is.** Every coverage entry
|
|
768
|
+
carries it. When it is false on every source, nothing was cut: each source was acquired whole, and
|
|
769
|
+
the table this run sealed is the table a full run would have sealed. When it is true anywhere,
|
|
770
|
+
something was cut, and what you have is a shape rather than an answer.
|
|
771
|
+
|
|
772
|
+
**A complete sample is the build. Present it as one.** The mode a run was started in is not what
|
|
773
|
+
makes a table finished — untruncated coverage is — and calling a complete table "a sample" tells
|
|
774
|
+
somebody their dataset does not exist yet when it does. Say what was built and offer the decision
|
|
775
|
+
that is actually in front of them, which is whether to make it live:
|
|
776
|
+
|
|
777
|
+
> Built 43,812 rows from four sources, every source acquired whole and nothing truncated. All four
|
|
778
|
+
> declared checks passed. This is the table, not a sample of it.
|
|
707
779
|
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
780
|
+
Then offer to enable it, and enable it when they say so — `mr-data promote TABLE_ID --cadence
|
|
781
|
+
"every 6h" --why "..."`, which is [Promote](#promote), the one human gate. Do not run the whole
|
|
782
|
+
thing again to produce a table you already have.
|
|
783
|
+
|
|
784
|
+
**A truncated sample is not the build, and this is where the pause is.** State what the sample
|
|
785
|
+
established, name what was cut and on which sources, say what a full run would cover, and ask. This
|
|
786
|
+
pause is the second one this document allows alongside the promote decision, and it exists only
|
|
787
|
+
here: a full run over a real window costs real time and real money, and it is a decision about the
|
|
788
|
+
user's data rather than about the recipe, so it is theirs and not yours. Only when they say so:
|
|
713
789
|
|
|
714
790
|
```sh
|
|
715
791
|
mr-data run --recipe RECIPE_ID --digest RECIPE_DIGEST --full --json
|
|
716
792
|
```
|
|
717
793
|
|
|
794
|
+
**The same decision is a button on the dataset page.** A truncated sample puts "Run the full
|
|
795
|
+
build" on the agent pill, and pressing it starts the full run through the same spend gate the
|
|
796
|
+
command does, bare — the exact coordinate the command above names — so the answer to this pause
|
|
797
|
+
can arrive as words here or as a run you did not start. Ask, then give the turn back; do not hold
|
|
798
|
+
a stream open waiting for either. Before acting on this recipe again — on their answer, or on your
|
|
799
|
+
next turn — read `mr-data runs --json --mode full` and, for any run newer than the sample that you
|
|
800
|
+
did not start, `mr-data status RUN_ID --json` to see whether it names this recipe and digest. One
|
|
801
|
+
that does, with empty `clamps` and the default `resource_class`, is the pill's run, and its state
|
|
802
|
+
says what to do. `queued`, `running` or `succeeded` is the full run, so adopt it as if the command
|
|
803
|
+
above had started it — write its stage 5 cell, `mr-data watch RUN_ID --json` if it has not ended,
|
|
804
|
+
then stage 6. `awaiting_confirmation` is the spend gate, which they settle from the page or by
|
|
805
|
+
telling you to run the command again with `--confirm`. `awaiting_sample_approval` means Studio is
|
|
806
|
+
sampling first: read its `sample_run_id` off that status and treat that sample as another stage 6
|
|
807
|
+
while the full waits on their approval on the page, and if the sample is itself
|
|
808
|
+
`awaiting_confirmation` that is the spend gate above, on the sample. `failed` is the full run too:
|
|
809
|
+
read its triple as stage 6 says and report it, and do not start another, because a bare run of
|
|
810
|
+
this coordinate replays that failure and a new attempt is a revision (stage 7). `cancelled` means
|
|
811
|
+
they withdrew the decision, so say so and ask nothing further unless they raise it. Start a full
|
|
812
|
+
run yourself only when they said so here and that list shows none, and start it bare — no
|
|
813
|
+
ceiling, no resource class — because one coordinate is one run and a clamp is what would make a
|
|
814
|
+
second.
|
|
815
|
+
|
|
718
816
|
Then interrogate that run as stage 6 says, and present it with the sample's caveats removed and
|
|
719
817
|
its own read off `coverage`. Do not start a full run because the sample looked good, because the
|
|
720
818
|
checks passed, or because the user asked for the dataset in the first place — the request was for a
|
|
721
819
|
dataset, and the decision in front of them is whether THIS is the recipe to spend a full run on.
|
|
722
820
|
|
|
821
|
+
**Either way, offer the bytes.** A sealed table is downloadable whatever mode produced it —
|
|
822
|
+
`mr-data download RUN --output DIR --json` — so somebody who wants to look before agreeing to
|
|
823
|
+
anything can. Say so.
|
|
824
|
+
|
|
723
825
|
## Live run
|
|
724
826
|
|
|
725
827
|
`mr-data run` answers with the run identifier and Studio's own run record. These are machine-facing
|
|
@@ -1053,9 +1155,32 @@ strength of having asked.
|
|
|
1053
1155
|
Once the user has approved it:
|
|
1054
1156
|
|
|
1055
1157
|
```sh
|
|
1056
|
-
mr-data promote TABLE_ID --cadence
|
|
1158
|
+
mr-data promote TABLE_ID --cadence "every 6h from 2026-09-03T02:40:00Z" --why "..." --json
|
|
1057
1159
|
```
|
|
1058
1160
|
|
|
1161
|
+
**Reason about the refresh schedule; do not reach for a default.** You have already read the
|
|
1162
|
+
source's own documentation and watched it answer, so you are the one party who knows anything about
|
|
1163
|
+
when it publishes. Say what you know: the times of day it posts, how often it changes, and how long
|
|
1164
|
+
after the stated publication time the bytes actually appear. `--cadence` takes a five-field cron
|
|
1165
|
+
expression, an interval such as `every 6h` or `every 30m from 2026-09-03T12:20:00Z`, or the word
|
|
1166
|
+
`source` to decline the question and let Studio choose. `--why` is one paragraph recording the
|
|
1167
|
+
reasoning, and it is required unless you asked for `source`; it is kept beside the table and read by
|
|
1168
|
+
whoever looks next, so write it for them rather than for yourself.
|
|
1169
|
+
|
|
1170
|
+
**What you give is a seed, not a setting.** Studio watches what each source actually does on every
|
|
1171
|
+
refresh and moves the schedule to match, so a seed that is roughly right is worth far more than a
|
|
1172
|
+
safe guess, and one that is wrong is corrected rather than obeyed. Until the table reports its
|
|
1173
|
+
schedule as settled, the schedule is still being worked out: `mr-data table TABLE_ID` says which it
|
|
1174
|
+
is, in plain words, along with the schedule in force, the next refresh, what you asked for and why,
|
|
1175
|
+
and — once there is one — the interval Studio measured and how many source updates it rests on.
|
|
1176
|
+
**Never describe a schedule as learned, settled or confirmed while that command says otherwise.**
|
|
1177
|
+
|
|
1178
|
+
`mr-data reschedule TABLE_ID --cadence ... --why "..."` changes the schedule of a table that is
|
|
1179
|
+
already live without starting a run or spending anything. Adding `--lock` freezes the schedule so
|
|
1180
|
+
Studio stops adjusting it, which is how a person overrides the evidence; `--unlock` lets it follow
|
|
1181
|
+
the source again. Do not lock a schedule on your own judgement — it is the same kind of decision as
|
|
1182
|
+
promotion, and it belongs to the user.
|
|
1183
|
+
|
|
1059
1184
|
This call is a publication request, not proof of data continuation. The current Harness worker
|
|
1060
1185
|
cannot execute the catch-up backfill, refresh mode, or windowed acquisition needed to close the
|
|
1061
1186
|
idle interval after the last successful run. It also does not attach or execute a warehouse
|
|
@@ -1075,7 +1200,7 @@ Own the run until the requested outcome is delivered: a run that succeeded, its
|
|
|
1075
1200
|
read, its coverage inspected, and a publication request made when the user asked for it. Promotion
|
|
1076
1201
|
is complete only when Studio returns the resulting live state; catch-up and continuing freshness
|
|
1077
1202
|
require separate durable evidence from the deployed component that owns them. The allowed user pauses
|
|
1078
|
-
are the promote decision, the decision to start a full run after
|
|
1203
|
+
are the promote decision, the decision to start a full run after a TRUNCATED sample, and a spend
|
|
1079
1204
|
confirmation on a run over the threshold. Do not ask the user to choose sources, Readers, engines,
|
|
1080
1205
|
formats, workspaces, retry tactics, cleaning operations, or validation repairs. Make those
|
|
1081
1206
|
operational decisions from the question, observed evidence, registered capabilities, and
|
|
@@ -1371,6 +1371,11 @@ def _parser(
|
|
|
1371
1371
|
parser.add_argument("--version", action="version", version=f"%(prog)s {package_version()}")
|
|
1372
1372
|
subparsers = parser.add_subparsers(dest="command", required=True)
|
|
1373
1373
|
|
|
1374
|
+
# ⚠ IMPORTED HERE RATHER THAN AT MODULE SCOPE, the rule every thin-lane import in this file
|
|
1375
|
+
# follows: `cli` is the local front door and the hosted lane is loaded when a parser is built,
|
|
1376
|
+
# not when this module is.
|
|
1377
|
+
from mostlyright.data_harness.thin import activity as _thin_activity
|
|
1378
|
+
|
|
1374
1379
|
# `--json` lives on the subcommands, never on the top-level parser: one dest declared at both
|
|
1375
1380
|
# levels lets the subparser default silently overwrite a value the caller gave up front.
|
|
1376
1381
|
json_parent = argparse.ArgumentParser(add_help=False)
|
|
@@ -1381,9 +1386,17 @@ def _parser(
|
|
|
1381
1386
|
)
|
|
1382
1387
|
|
|
1383
1388
|
def _add(*args: Any, **kwargs: Any) -> argparse.ArgumentParser:
|
|
1384
|
-
"""Add one subcommand. Every subcommand takes `--json`; that is not optional.
|
|
1389
|
+
"""Add one subcommand. Every subcommand takes `--json`; that is not optional.
|
|
1390
|
+
|
|
1391
|
+
And the commands that tell the dataset page what they are doing take `--no-activity`,
|
|
1392
|
+
through the same function `thin.router` calls: every gate in the suite holds the two front
|
|
1393
|
+
doors' argument surfaces equal command for command, so a flag one of them grows is a flag
|
|
1394
|
+
the other grows in the same commit or not at all.
|
|
1395
|
+
"""
|
|
1385
1396
|
|
|
1386
|
-
|
|
1397
|
+
added = subparsers.add_parser(*args, parents=[json_parent], **kwargs)
|
|
1398
|
+
_thin_activity.declare_opt_out(str(args[0]) if args else "", added)
|
|
1399
|
+
return added
|
|
1387
1400
|
|
|
1388
1401
|
# The arguments several commands share, written once. `--help` is the first thing anyone reads
|
|
1389
1402
|
# and often the only thing, so an argument that says nothing is an argument someone has to go
|