mostlyright-data 0.17.4__tar.gz → 0.17.5__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.17.4 → mostlyright_data-0.17.5}/PKG-INFO +1 -1
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/pyproject.toml +1 -1
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/skills/mr-data-build/SKILL.md +116 -98
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/cli.py +21 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_deploy.py +2 -1
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_run_worker.py +269 -14
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/inprocess_acquisition.py +764 -4
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/key_seam.py +2 -1
- mostlyright_data-0.17.5/src/mostlyright/data_harness/page_coverage.py +92 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/html_web_extract.py +203 -72
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/registry.py +12 -0
- mostlyright_data-0.17.5/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/article.html +3 -0
- mostlyright_data-0.17.5/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/expected.json +28 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/run_execution_v4.py +51 -1
- mostlyright_data-0.17.5/src/mostlyright/data_harness/sources/page_collections.py +2198 -0
- mostlyright_data-0.17.5/src/mostlyright/data_harness/thin/collection_plan.py +211 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/transport.py +4 -2
- mostlyright_data-0.17.5/src/mostlyright/data_harness/thin/user_agent.py +74 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_runs.py +29 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/cloud_auth.py +3 -1
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/remediation.py +1 -1
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/render.py +6 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_acquisition.py +142 -1
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_recipe.py +184 -3
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_required_controls.py +13 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/.gitignore +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/README.md +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/scripts/hatch_build.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/skills/mr-data-build/agents/openai.yaml +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/http.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/sandbox_bootstrap.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/agent_runtime.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/backends/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/backends/protocol.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/backends/reference.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/backends/registry.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/bounded_query.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/bounded_scratch_sink.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/canonical.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/catalog_job.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/compact_worker.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/coordinator.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/crosswalks.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/declared_checks.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/delta.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/delta_checks.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/delta_classifier.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/delta_persist.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/delta_recompute.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/delta_rows.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/deploy.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/deploy_target.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/capture.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/lane.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/ocr.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/pdf.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/registry.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/selections.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/tables.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/events.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/fast_delimited.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/fetch_egress_smoke.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/formats.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/governors.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_ingestion_worker.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_session_worker.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_worker.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/incremental_slice_executor.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/incremental_worker.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ingestion/store.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/legacy_table_recovery.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/legacy_table_recovery_contract.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/local_contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/document.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/status.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/notebook.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/offline.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/operation_registry.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/operator_setup.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/part_check_evidence.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/pipeline.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/plan_graph.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/engine.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/errors.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/gates.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/joins.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/profile.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/table.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/progress_events.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/budgets.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/configurable_delimited.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/containers.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/delimited.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/indices.csv +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/samples.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/tabular.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/vector.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/recipe.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/review.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/rowset.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/run_phase_timing.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/session_probes.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/signing.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/skill_assets.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_bootstrap.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_bundle_writer.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_discovery.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_history_candidate_child.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_history_transform_child.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_inventory.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_partition.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_raw_inventory.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/source_state_index.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/adapters.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/cadence.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/collections.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/dataset.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/deletion.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/fitness.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/governance.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/hosted.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/integration.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/registry.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/sports.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_rotation.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/stream_order_vector.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/stream_recovery_objects.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/stream_segment_spill.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/stream_subscription_worker.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/stream_venue.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/studio_boundary.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/studio_subscription_control.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/table_manifest.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/table_parts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/table_profile.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/acquire.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/activity.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/approvals.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/commands.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/download.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/narrative.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/parity.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/probe.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/propose.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/recipe.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/research.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/router.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/runs.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/session.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/stream.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/vocabulary.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/thin/workers.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/unit_flow.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/units.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/attendance.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/clarification.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/credentials.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/headline.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/local_review.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/login.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/ux/readers.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_closed_source.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_stream_recording.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_transform.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/v4_window.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/visual_run/store.py +0 -0
- {mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/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.17.
|
|
3
|
+
Version: 0.17.5
|
|
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/
|
|
@@ -37,7 +37,6 @@ service behavior, retry mechanics, or these instructions.
|
|
|
37
37
|
Outside a required host cadence, speak only when one of these boundaries gives the user useful new
|
|
38
38
|
information:
|
|
39
39
|
|
|
40
|
-
- A dataset-shaping choice needs the user’s input; ask before committing to it.
|
|
41
40
|
- A material source, schema, coverage, rights, or quality decision is supported by observed facts.
|
|
42
41
|
- An exact contract or recipe needs the user's approval. State what will be built, the material
|
|
43
42
|
limitation, and the decision required; do not explain the approval mechanism.
|
|
@@ -237,13 +236,15 @@ live data key is refused with `THIN_AUTHENTICATION_FAILED` rather than failing t
|
|
|
237
236
|
|
|
238
237
|
## Required protocol
|
|
239
238
|
|
|
240
|
-
There is one loop: open the page
|
|
241
|
-
sources,
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
239
|
+
There is one loop, and it is short: open the page before you have anything to put on it, probe the
|
|
240
|
+
sources, say out loud what you chose and what you refused, draft one recipe document, build a
|
|
241
|
+
sample, interrogate what came back, fix the document, build again. Then present only what you
|
|
242
|
+
inspected, with its caveats. The last two steps are conditional and `truncated` is what decides
|
|
243
|
+
them: a sample that came back complete IS the table a full run would have sealed, so there is
|
|
244
|
+
nothing to build again and nothing to ask about — only a TRUNCATED sample sends you round the
|
|
245
|
+
loop. Nothing between a run finishing and reading it is held for a person,
|
|
246
|
+
so there is no approval to seek, no separate body of evidence to read back, and no state to wait
|
|
247
|
+
for. A table's first succeeded run goes live on its own, whatever mode it was, and what is left
|
|
247
248
|
for a person is [Promote](#promote) — the cadence it refreshes on and the reasoning behind it.
|
|
248
249
|
|
|
249
250
|
**The page is the work, and it exists first.** A dataset used to come into being as a side effect
|
|
@@ -278,10 +279,11 @@ again, and the failure triples on recent runs tell you what the backend is refus
|
|
|
278
279
|
`SANDBOX_MEMORY_BOUNDARY` on somebody else's recipe an hour ago means the room is unwell and your
|
|
279
280
|
first failure will not be your document's fault. Keep this check silent.
|
|
280
281
|
|
|
281
|
-
**Then
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
282
|
+
**Then settle anything only the user can settle, before probing.** Read the request for a word with
|
|
283
|
+
two defensible readings, a population whose edges are unstated, or a window nobody named.
|
|
284
|
+
`mr-data clarify --question TEXT` says whether there is anybody to ask and whether it is still early
|
|
285
|
+
enough; [Autonomous delivery](#autonomous-delivery) is the rule for what may be asked and what stays
|
|
286
|
+
yours to decide.
|
|
285
287
|
|
|
286
288
|
Pass `--json` to automated commands. A command receipt is the only record that a Harness action
|
|
287
289
|
succeeded.
|
|
@@ -387,10 +389,10 @@ around a probe from an hour ago still being warm.
|
|
|
387
389
|
|
|
388
390
|
Where a source needs a credential, enrol it by name first — see
|
|
389
391
|
[Source credentials](#source-credentials) — and reference the name from the recipe document. Where
|
|
390
|
-
neither a probe nor a run can reach the bytes, because the source is
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
392
|
+
neither a probe nor a run can reach the bytes, because the source is not registered in the
|
|
393
|
+
workspace, establish shape from the provider's own documentation and published schema, say
|
|
394
|
+
plainly that the shape is documented rather than observed, and let the hosted Clean room be the
|
|
395
|
+
first thing that opens the bytes. Named messages out of one large object are
|
|
394
396
|
[`acquire-slices`](#not-hosted-yet), which is not hosted yet.
|
|
395
397
|
|
|
396
398
|
Hold the comparison in the shape [Narrating the run](#narrating-the-run) takes: one `source` block
|
|
@@ -400,8 +402,10 @@ blocks file; stage 3 is what puts them on the page.
|
|
|
400
402
|
### 3. Decide — say what you chose, what you refused, and what unblocks it
|
|
401
403
|
|
|
402
404
|
**Post one Sources and decisions message before you register anything.** It goes to two places, in
|
|
403
|
-
the same words: the dataset's own decision record, and the chat.
|
|
404
|
-
|
|
405
|
+
the same words: the dataset's own decision record, and the chat. This is the decision point that
|
|
406
|
+
replaced the old one-question rule, and the reason for the change is that a question is not what a
|
|
407
|
+
person mostly needs — what they need is to see the search, while there is still time to disagree
|
|
408
|
+
with it.
|
|
405
409
|
|
|
406
410
|
```sh
|
|
407
411
|
mr-data dataset note DATASET_ID --heading "Sources and decisions" \
|
|
@@ -413,9 +417,8 @@ EOF
|
|
|
413
417
|
The cell carries a `source` block for every feed evaluated — the ones being used, the ones
|
|
414
418
|
considered, and the ones rejected with the clause that ruled each out — and a `decision` block for
|
|
415
419
|
every grain, key, join and cutoff settled. Post the same content in the chat as one short message.
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
Silence after a proposal is not an answer to a pending question.
|
|
420
|
+
Then **keep going**: this is a statement, not a gate, and waiting for a reply to it is the pause
|
|
421
|
+
this document does not allow.
|
|
419
422
|
|
|
420
423
|
**Blocked sources: always say what unlocks it and how to enrol the credential.** A source you could
|
|
421
424
|
not reach because it needs an API key, an account or an approval is not a dead end and must never
|
|
@@ -425,21 +428,23 @@ who issues the credential, where to apply for it, and the exact command that enr
|
|
|
425
428
|
source with no route back is a decision the user cannot revisit; one with a route back is a
|
|
426
429
|
decision they can.
|
|
427
430
|
|
|
428
|
-
**
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
`
|
|
432
|
-
|
|
431
|
+
**Ask only at a genuine fork.** A fork is a question whose two answers produce two different tables
|
|
432
|
+
and which no evidence can settle — what an ambiguous word in the request means, how wide the
|
|
433
|
+
population is, how far back it goes. Write it as a `clarification` block carrying `question` and no
|
|
434
|
+
`answer`, which is what the page shows as a pending question, and ask it in the chat in the same
|
|
435
|
+
words. `mr-data clarify --question TEXT` says whether there is anybody to ask and whether it is
|
|
436
|
+
still early enough. When the answer comes back, write it as the answer on that block:
|
|
433
437
|
|
|
434
438
|
```sh
|
|
435
439
|
mr-data dataset note DATASET_ID --heading "The stage grain is settled" \
|
|
436
|
-
--revise
|
|
440
|
+
--revise "one-fork-to-settle" --blocks-file ANSWERED.json --json <<'EOF'
|
|
437
441
|
Daily maxima, on the user's answer.
|
|
438
442
|
EOF
|
|
439
443
|
```
|
|
440
444
|
|
|
441
|
-
|
|
442
|
-
|
|
445
|
+
Everything under [Autonomous delivery](#autonomous-delivery) still holds: which source, Reader,
|
|
446
|
+
engine, format, workspace, retry tactic or cleaning operation to use is settled by the evidence and
|
|
447
|
+
is never a fork. If nothing is genuinely forked, ask nothing and carry on.
|
|
443
448
|
|
|
444
449
|
### 4. Draft — one recipe document, one call
|
|
445
450
|
|
|
@@ -794,9 +799,12 @@ one", not as a failure: a document declaring 8 MiB over a feed that answers 40 K
|
|
|
794
799
|
**If a source really does deliver more than the Reader holds, do not answer it by lowering the
|
|
795
800
|
ceiling on that source:** that does not fetch less data, it truncates the sample or refuses the
|
|
796
801
|
full run. Split the window across several sources — one per month, per region, or per whatever the
|
|
797
|
-
publisher paginates on — and union them in a first transform step. A recipe names up to
|
|
798
|
-
which is a great many windows. [The recipe document](../../docs/RECIPE-DOCUMENT.md)
|
|
799
|
-
measured numbers behind the ceiling.
|
|
802
|
+
publisher paginates on — and union them in a first transform step. A recipe names up to 256
|
|
803
|
+
sources, which is a great many windows. [The recipe document](../../docs/RECIPE-DOCUMENT.md)
|
|
804
|
+
carries the measured numbers behind the ceiling.
|
|
805
|
+
|
|
806
|
+
**A corpus of many pages behind one index is a COLLECTION, not many sources.** See
|
|
807
|
+
[Authoring a collection source](#authoring-a-collection-source).
|
|
800
808
|
|
|
801
809
|
**The dataset's record is the primary one; a run's own record is for what happened inside that
|
|
802
810
|
run.** The sources, the decisions and the questions went onto the dataset in stage 3, where they
|
|
@@ -1436,79 +1444,41 @@ each table rather than what the exit code said about the set. A table that is li
|
|
|
1436
1444
|
`archive` until it is withdrawn, and a table a run is still writing to is refused by both until the
|
|
1437
1445
|
run has finished; neither refusal deletes anything, and neither ends the command.
|
|
1438
1446
|
|
|
1439
|
-
## Dataset discovery
|
|
1440
|
-
|
|
1441
|
-
Make the user a participant in shaping the first dataset. Before registering a recipe, review the
|
|
1442
|
-
request and prior answers for choices whose alternatives would materially change the result. Lead
|
|
1443
|
-
with the unresolved choices most likely to make the first dataset wrong. The agent chooses the
|
|
1444
|
-
questions and follow-ups; this is a decision guide, not a form to recite:
|
|
1445
|
-
|
|
1446
|
-
- **Purpose:** What analysis, decision, or downstream use should the dataset support? Ask when it
|
|
1447
|
-
helps choose between plausible definitions or shapes, not for background already supplied.
|
|
1448
|
-
- **Table structure and joins:** One joined table, separate related tables, or both? If joining,
|
|
1449
|
-
what should match, and should unmatched records remain? Explain when a join could duplicate rows
|
|
1450
|
-
or lose records; do not require the user to write SQL or select a join algorithm.
|
|
1451
|
-
- **Granularity:** What does one row represent — an event, a company, a station-hour, a country-year?
|
|
1452
|
-
Resolve raw observations versus aggregates, time frequency, and geographic detail where relevant.
|
|
1453
|
-
- **Sources:** Are particular publishers, uploaded files, or sources required or excluded, or should
|
|
1454
|
-
the agent recommend them? Research concrete source options yourself. Ask about consequential choices
|
|
1455
|
-
such as official but delayed data versus broader recent coverage, or a source requiring access.
|
|
1456
|
-
- **Coverage:** Which entities, geography, date range, and inclusion/exclusion rules matter? For
|
|
1457
|
-
changing data, distinguish a fixed historical snapshot from continuing updates.
|
|
1458
|
-
- **Fields and definitions:** Which measures and identifiers are essential? Resolve ambiguous
|
|
1459
|
-
metrics, units, currencies, time zones, or adjusted versus raw values when they affect the use.
|
|
1460
|
-
- **Quality and tradeoffs:** Is incomplete coverage acceptable? Ask before dropping unmatched rows,
|
|
1461
|
-
filling missing values, estimating data, or substituting a proxy when that changes the meaning.
|
|
1462
|
-
- **Delivery constraints:** Ask about freshness, destination, format, or scale/budget only when
|
|
1463
|
-
relevant and not already specified. Existing spend and cadence decisions still apply.
|
|
1464
|
-
|
|
1465
|
-
For every discovery question, including the initial questions before probing, check attendance with
|
|
1466
|
-
`mr-data clarify --attended --question TEXT` when a person is in chat. Record a pending
|
|
1467
|
-
`clarification` block on the dataset and ask the same wording in chat. Record the answer by revising
|
|
1468
|
-
that same cell, as in stage 3; a plain narrative note alone does not mark a question as pending.
|
|
1469
|
-
The command checks whether asking is allowed; the host conversation asks and waits for the answer.
|
|
1470
|
-
|
|
1471
|
-
Usually ask one to three related questions per turn, with short bold labels such as **Table shape**,
|
|
1472
|
-
**Sources**, and **Granularity**. Use plain language and domain-specific examples. Offer a recommended
|
|
1473
|
-
option and explain its consequence when evidence supports it; allow a free-text answer or “you
|
|
1474
|
-
choose.” Do not overwhelm the user with the entire list, repeatedly ask answered questions, or ask
|
|
1475
|
-
about facts you can determine from source inspection. There is no total question quota: follow up
|
|
1476
|
-
when an answer or source finding exposes another consequential decision.
|
|
1477
|
-
|
|
1478
|
-
Wait for answers to the questions you ask before committing dependent work. Continue independent
|
|
1479
|
-
research where useful, but do not register or run the first recipe with unanswered material
|
|
1480
|
-
questions. An elapsed wait is not permission to assume an answer. If the request is already specific
|
|
1481
|
-
enough, summarize its shape and proceed. If the user explicitly delegates choices or asks for no
|
|
1482
|
-
questions, use evidence-backed defaults and state them without forcing another confirmation.
|
|
1483
|
-
|
|
1484
|
-
Before the first build, give a compact recap of purpose, table shape, row grain, sources, coverage,
|
|
1485
|
-
and important fields or limitations. Highlight unresolved decisions as questions; otherwise proceed
|
|
1486
|
-
on the answers already given. During verification compare the sample with this agreed shape, not
|
|
1487
|
-
just whether the run succeeded. If research or the sample requires a material semantic change,
|
|
1488
|
-
return to the user with concrete alternatives before building a revised recipe; use the existing
|
|
1489
|
-
contract revision/approval path once a recipe has been registered.
|
|
1490
|
-
|
|
1491
1447
|
## Autonomous delivery
|
|
1492
1448
|
|
|
1493
1449
|
Own the run until the requested outcome is delivered: a run that succeeded, its declared checks
|
|
1494
|
-
read, its coverage inspected
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1450
|
+
read, its coverage inspected, and its refresh cadence recorded when the user has said what it should
|
|
1451
|
+
be. What is live is what Studio returns as live; catch-up and continuing freshness require separate
|
|
1452
|
+
durable evidence from the deployed component that owns them. The allowed user pauses
|
|
1453
|
+
are the cadence decision, the decision to start a full run after a TRUNCATED sample, and a spend
|
|
1454
|
+
confirmation on a run over the threshold. Do not ask the user to choose sources, Readers, engines,
|
|
1455
|
+
formats, workspaces, retry tactics, cleaning operations, or validation repairs. Make those
|
|
1456
|
+
operational decisions from the question, observed evidence, registered capabilities, and
|
|
1457
|
+
deterministic receipts.
|
|
1458
|
+
|
|
1459
|
+
**The decision point replaces the one-question rule.** There used to be a budget of exactly one
|
|
1460
|
+
clarifying question, and it was the wrong instrument: it made the agent hoard its one question
|
|
1461
|
+
against a fork that might arrive later, and it left the user with no view of the search at all
|
|
1462
|
+
until the page was finished. What stage 3 asks for instead is a STATEMENT — sources chosen, sources
|
|
1463
|
+
rejected or blocked with the concrete unblock step, the assumption taken about window and grain —
|
|
1464
|
+
posted to the dataset's record and to the chat, after which the build continues without waiting.
|
|
1465
|
+
A person who disagrees with it says so; a person who does not is not made to answer anything.
|
|
1466
|
+
|
|
1467
|
+
A question is still asked, and it is asked at a genuine FORK: two answers that produce two
|
|
1468
|
+
different tables, and no evidence that can settle it. `Throughput: movements or passengers?` is
|
|
1469
|
+
such a fork. Which Reader parses the feed is not, and neither is anything else named above; those
|
|
1470
|
+
stay banned because the evidence settles them. There is no budget of one — a build with two real
|
|
1471
|
+
forks asks about both — but a fork is rare, and a question that the evidence could have answered is
|
|
1472
|
+
still the failure this section is about. Ask before registering, while nothing is running and
|
|
1473
|
+
nothing has been spent, write it as a pending `clarification` block on the dataset, and carry the
|
|
1474
|
+
answer back as a revision of that cell.
|
|
1502
1475
|
|
|
1503
1476
|
`mr-data clarify --question TEXT` says whether to ask at all. It exits non-zero when no person can
|
|
1504
1477
|
answer, which is what a scheduled or headless session reports, and when `--recipe RECIPE_ID` names
|
|
1505
1478
|
a registered recipe, because the answer to a question asked after the contract is a revision and
|
|
1506
|
-
goes through the contract approval instead.
|
|
1507
|
-
|
|
1508
|
-
report
|
|
1509
|
-
registered, use the revision/approval path for material changes rather than treating the refusal
|
|
1510
|
-
as permission to choose new semantics. Other command failures are not evidence that the user is
|
|
1511
|
-
unavailable. `mr-data clarify --question TEXT --answer TEXT` composes the exchange as one `clarification`
|
|
1479
|
+
goes through the contract approval instead. On a non-zero exit ask nothing: decide from the
|
|
1480
|
+
evidence, write the assumption into the recipe document, and state it as a limitation in the final
|
|
1481
|
+
report. `mr-data clarify --question TEXT --answer TEXT` composes the exchange as one `clarification`
|
|
1512
1482
|
block. Carry its wording into the recipe document the answer settles — the question text, the table
|
|
1513
1483
|
description, the column description — so the assumption the table rests on reads the same in the
|
|
1514
1484
|
document, in the Dataset, and in the report.
|
|
@@ -1603,6 +1573,53 @@ What it costs the protocol, and what to do instead:
|
|
|
1603
1573
|
- Preserve event time, available time, acquisition time, source revision, and timezone. Do not use
|
|
1604
1574
|
post-cutoff information in targets, labels, features, joins, or validation decisions.
|
|
1605
1575
|
|
|
1576
|
+
### Authoring a collection source
|
|
1577
|
+
|
|
1578
|
+
A corpus published as an index plus many detail pages is **one** source through
|
|
1579
|
+
`public.https.collection@2.0.0`, not one source per page. Source count and publisher count are
|
|
1580
|
+
unaffected by how many pages sit behind it: 2,819 pages is one source, one publisher, one line on
|
|
1581
|
+
the dataset's sources card.
|
|
1582
|
+
|
|
1583
|
+
Write it as a source whose connector is that coordinate plus a `collection` member:
|
|
1584
|
+
|
|
1585
|
+
- `collection.discovery` says how the corpus is LISTED — `json_api` with RFC 6901 pointers,
|
|
1586
|
+
`html_index` with the reader's closed selectors, `sitemap`, or an `explicit` member list — and
|
|
1587
|
+
which pagination grammar the listing uses. The run follows only that grammar and never a link
|
|
1588
|
+
found inside a detail page.
|
|
1589
|
+
- `collection.pages` says what may be fetched and how much: `allowed_origins` (which must include
|
|
1590
|
+
the discovery address's own origin), `max_pages`, `max_fetches_per_run`, `concurrency` (1 or 2),
|
|
1591
|
+
`min_interval_seconds` as a whole number of seconds (one or more), `request_timeout_seconds`,
|
|
1592
|
+
`retries`, and a `revisit` rule. Only `allowed_origins` is required; every other member has a
|
|
1593
|
+
stated meaning when it is left out.
|
|
1594
|
+
- `limits.max_requests` is REQUIRED and bounds every request the run makes, discovery and detail
|
|
1595
|
+
pages together. `limits.max_source_bytes` bounds the fetched bytes; `limits.max_rows` clamps the
|
|
1596
|
+
merged relation.
|
|
1597
|
+
- The Reader pin is required, must be `html.web_extract`, and is the SAME settings for every page.
|
|
1598
|
+
|
|
1599
|
+
The relation the transform reads is the reader's columns plus `page_id`, `page_url`,
|
|
1600
|
+
`page_fetched_at`, `page_content_sha256`, `page_revision`, `page_discovered_at` and `page_ordinal`.
|
|
1601
|
+
Those names are reserved: a reader that declares one is a registration refusal. Select them in the
|
|
1602
|
+
transform so every row on the table says which page and which revision produced it.
|
|
1603
|
+
|
|
1604
|
+
**Expect the first run not to finish, and say so.** A run that spends its fetch budget still
|
|
1605
|
+
SUCCEEDS; its coverage block reports `complete: false` and names the budget that ended it. The
|
|
1606
|
+
next refresh continues from the ledger — new pages first, then failures oldest first, then
|
|
1607
|
+
revisits — and every row of a page this run did not fetch survives byte for byte. Report the
|
|
1608
|
+
shortfall as what it is, a backfill in progress, not as a failure and not as a complete corpus.
|
|
1609
|
+
|
|
1610
|
+
A page that disappears from the index deletes nothing. A page answering with different content
|
|
1611
|
+
replaces exactly its own rows, increments `page_revision`, and keeps the previous digest: that is
|
|
1612
|
+
a correction, and it is worth saying on the run record when it happens.
|
|
1613
|
+
|
|
1614
|
+
Before registering it, read the discovery block back the way a run will: the address the first
|
|
1615
|
+
request goes to, whether the pagination parameter is already written into that address, whether
|
|
1616
|
+
the records pointer names an array, and whether `discovery.max_requests` plus
|
|
1617
|
+
`pages.max_fetches_per_run` fits inside `limits.max_requests`. Registration refuses all four, and
|
|
1618
|
+
they are the four that are cheapest to get right before a run spends anybody's rate limit.
|
|
1619
|
+
|
|
1620
|
+
The full contract, including every bound and the coverage block's members, is
|
|
1621
|
+
[Source collections](../../docs/SOURCE-COLLECTIONS.md).
|
|
1622
|
+
|
|
1606
1623
|
## Readers
|
|
1607
1624
|
|
|
1608
1625
|
`docs/READERS.md` defines Reader behavior. Certified Readers may be pinned on an exact
|
|
@@ -1697,6 +1714,7 @@ decoder. Zero matches and multiple matches both refuse.
|
|
|
1697
1714
|
| `xml.tabular@1.0.0` | Absolute record element path, declared namespace prefixes, and relative field selectors ending in `text()` or `@attribute`; fields are required unless `required: false`. |
|
|
1698
1715
|
| `html.tabular@1.0.0` | Absolute record element path and relative text/attribute field selectors; fields are required unless `required: false`. |
|
|
1699
1716
|
| `html.web_extract@1.0.0` | `mode: dom` with closed CSS-like record/field selectors, or `mode: json` with an inert JSON script selector and RFC 6901 field pointers. |
|
|
1717
|
+
| `html.web_extract@1.1.0` | Same settings as 1.0.0; extracted text follows DOM order, with one space at block-element boundaries and `<br>` and none between inline runs. |
|
|
1700
1718
|
| `protobuf.tabular@1.0.0` | Digest-pinned base64 FileDescriptorSet, fully-qualified message type, `single` or `length_delimited` framing, and fields with an explicit repeated `explode` or `refuse` choice. |
|
|
1701
1719
|
| `parquet.tabular@1.0.0` | Optional `columns` selects a bounded ordered Parquet projection. |
|
|
1702
1720
|
| `xbrl.facts@1.0.0` | `document_kind` (`xbrl` or constrained XML `ixbrl`) and exact namespace/name fact projection; contexts, units, and metadata remain evidence fields, not joins. |
|
|
@@ -575,6 +575,7 @@ def _dispatch(
|
|
|
575
575
|
or selected_command == "propose"
|
|
576
576
|
or selected_command == "acquire-cancel"
|
|
577
577
|
or selected_command == "clarify"
|
|
578
|
+
or selected_command == "collection-plan"
|
|
578
579
|
or selected_command in _RESEARCH_COMMANDS
|
|
579
580
|
):
|
|
580
581
|
# `note`, `propose` and the research commands are the hosted lane's own implementation, run
|
|
@@ -586,6 +587,8 @@ def _dispatch(
|
|
|
586
587
|
# nothing and is identical in both profiles. It refuses in the thin lane's typed vocabulary
|
|
587
588
|
# because that is the vocabulary the agent driving it already branches on, and a fifth
|
|
588
589
|
# refusal class for four sentences would be a fifth remediation family for no reader.
|
|
590
|
+
# `collection-plan` is the same shape again: it reaches nothing, and it refuses in that
|
|
591
|
+
# same vocabulary because the agent authoring a collection is already reading it.
|
|
589
592
|
from mostlyright.data_harness.thin.transport import ThinLaneError
|
|
590
593
|
|
|
591
594
|
handled_errors += (ThinLaneError,)
|
|
@@ -754,6 +757,10 @@ def _dispatch(
|
|
|
754
757
|
if args.command == "crosswalk-inspect":
|
|
755
758
|
payload["rows"] = [row.to_dict() for row in crosswalk.rows]
|
|
756
759
|
_emit(payload)
|
|
760
|
+
elif args.command == "collection-plan":
|
|
761
|
+
from mostlyright.data_harness.thin import collection_plan as _collection_plan
|
|
762
|
+
|
|
763
|
+
_emit(_collection_plan.collection_plan(args))
|
|
757
764
|
elif args.command == "recipe-validate":
|
|
758
765
|
recipe = parse_fresh_recipe(_read_json(args.recipe))
|
|
759
766
|
_emit(
|
|
@@ -1694,6 +1701,20 @@ def _parser(
|
|
|
1694
1701
|
)
|
|
1695
1702
|
recipe_validate.add_argument("--recipe", type=Path, required=True, help=_RECIPE_FILE)
|
|
1696
1703
|
|
|
1704
|
+
# DECLARED BY THE MODULE THAT IMPLEMENTS IT, which is the rule `probe` and `recipe` already
|
|
1705
|
+
# follow. It is registered HERE and not in the hosted lane, for the reason that module's own
|
|
1706
|
+
# header states: rendering the plan parses the recipe with the engine's parser, and `mr-data`
|
|
1707
|
+
# installs without it. This is where `recipe-validate` -- the other command that reads a
|
|
1708
|
+
# recipe and reaches nothing -- already lives.
|
|
1709
|
+
from mostlyright.data_harness.thin import collection_plan as _collection_plan
|
|
1710
|
+
|
|
1711
|
+
_collection_plan.declare_arguments(
|
|
1712
|
+
_add(
|
|
1713
|
+
"collection-plan",
|
|
1714
|
+
help="show what a recipe's collection source would discover, fetch and seal",
|
|
1715
|
+
)
|
|
1716
|
+
)
|
|
1717
|
+
|
|
1697
1718
|
crosswalk_validate = _add(
|
|
1698
1719
|
"crosswalk-validate",
|
|
1699
1720
|
help="validate a canonical authored crosswalk and print its digest",
|
{mostlyright_data-0.17.4 → mostlyright_data-0.17.5}/src/mostlyright/data_harness/hosted_deploy.py
RENAMED
|
@@ -30,6 +30,7 @@ from mostlyright.data_harness.hosted_crawler_protocol import (
|
|
|
30
30
|
PUBLIC_HTTPS_EGRESS_POLICY_ATTESTATION,
|
|
31
31
|
)
|
|
32
32
|
from mostlyright.data_harness.studio_boundary import StudioBoundaryError, client_contract_identity
|
|
33
|
+
from mostlyright.data_harness.thin.user_agent import with_user_agent
|
|
33
34
|
from mostlyright.data_harness.ux.credentials import ResolvedCloudCredentials
|
|
34
35
|
|
|
35
36
|
CLOUD_TOKEN_PATH = "/api/cli/studio-token"
|
|
@@ -178,7 +179,7 @@ class UrlLibTokenExchangeTransport:
|
|
|
178
179
|
body: bytes | None,
|
|
179
180
|
maximum: int,
|
|
180
181
|
) -> tuple[int, bytes, Mapping[str, str]]:
|
|
181
|
-
request = Request(url, data=body, headers=
|
|
182
|
+
request = Request(url, data=body, headers=with_user_agent(headers), method=method)
|
|
182
183
|
try:
|
|
183
184
|
response = self._opener.open(request, timeout=REQUEST_TIMEOUT_SECONDS)
|
|
184
185
|
except HTTPError as error:
|