mostlyright-data 0.18.2__tar.gz → 0.18.3__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.18.2 → mostlyright_data-0.18.3}/PKG-INFO +1 -1
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/pyproject.toml +1 -1
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/skills/mr-data-build/SKILL.md +6 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_run_worker.py +171 -8
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/run_execution_v4.py +17 -1
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/studio_boundary.py +1 -1
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_tables.py +6 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/remediation.py +1 -1
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_recipe.py +203 -22
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_window.py +472 -13
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/.gitignore +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/README.md +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/scripts/hatch_build.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/skills/mr-data-build/agents/openai.yaml +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/http.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/sandbox_bootstrap.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/agent_runtime.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/backends/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/backends/protocol.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/backends/reference.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/backends/registry.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/bounded_query.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/bounded_scratch_sink.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/canonical.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/catalog_job.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/cli.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/compact_worker.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/coordinator.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/crosswalks.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/declared_checks.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/delta.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/delta_checks.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/delta_classifier.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/delta_persist.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/delta_recompute.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/delta_rows.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/deploy.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/deploy_target.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/capture.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/lane.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/ocr.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/pdf.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/registry.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/selections.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/tables.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/events.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/fast_delimited.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/fetch_egress_smoke.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/formats.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/governors.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_ingestion_worker.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_session_worker.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/hosted_worker.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/incremental_slice_executor.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/incremental_worker.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ingestion/store.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/inprocess_acquisition.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/key_seam.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/legacy_table_recovery.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/legacy_table_recovery_contract.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/local_contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/document.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/status.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/notebook.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/offline.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/operation_registry.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/operator_setup.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/page_coverage.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/part_check_evidence.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/pipeline.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/plan_graph.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/engine.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/errors.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/gates.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/joins.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/profile.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/table.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/progress_events.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/budgets.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/configurable_delimited.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/containers.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/delimited.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/html_web_extract.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/registry.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/indices.csv +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/article.html +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/samples.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/tabular.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/vector.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/recipe.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/review.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/rowset.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/run_phase_timing.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/session_probes.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/signing.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/skill_assets.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_bootstrap.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_bundle_writer.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_discovery.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_history_candidate_child.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_history_transform_child.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_inventory.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_partition.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_raw_inventory.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/source_state_index.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/adapters.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/cadence.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/collections.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/dataset.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/deletion.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/fitness.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/governance.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/hosted.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/integration.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/page_collections.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/registry.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/sports.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.array-frames.v4.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.json-keepalive.v4.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.loose-frames.v4.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.text-keepalive.v4.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_numbers.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_rotation.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/stream_order_vector.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/stream_recovery_objects.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/stream_segment_spill.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/stream_subscription_worker.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/stream_venue.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/studio_subscription_control.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/table_manifest.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/table_parts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/table_profile.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/acquire.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/activity.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/approvals.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/categories.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/collection_plan.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/commands.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/dataset-categories-v1.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/download.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/narrative.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/parity.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/probe.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/propose.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/recipe.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/research.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/router.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/runs.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/session.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/stream.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/transport.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/user_agent.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_catalog.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/vocabulary.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/workers.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/unit_flow.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/units.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/attendance.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/clarification.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/credentials.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/headline.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/local_review.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/login.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/readers.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/render.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_acquisition.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_closed_source.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_required_controls.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_stream_recording.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/v4_transform.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/visual_run/store.py +0 -0
- {mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/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.18.
|
|
3
|
+
Version: 0.18.3
|
|
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/
|
|
@@ -1665,6 +1665,12 @@ What it costs the protocol, and what to do instead:
|
|
|
1665
1665
|
revision behavior, entity and geographic coverage, cost, and refresh fit. Reject prohibited use.
|
|
1666
1666
|
- Preserve event time, available time, acquisition time, source revision, and timezone. Do not use
|
|
1667
1667
|
post-cutoff information in targets, labels, features, joins, or validation decisions.
|
|
1668
|
+
- When the question is **what changed over time**, or the table needs point-in-time features, and
|
|
1669
|
+
the source answers only with the present, declare a `snapshot` window on that source: it stamps
|
|
1670
|
+
every row with the UTC day it was acquired on and keeps one partition per day. Compute a
|
|
1671
|
+
transition with `lag(column) over (partition by <identity> order by <snapshot column>)` and keep
|
|
1672
|
+
the rows where the two are `is distinct from` each other. Never diff two sealed versions by hand;
|
|
1673
|
+
a version is not a date, and nothing outside the seal can be replayed.
|
|
1668
1674
|
|
|
1669
1675
|
### Authoring a collection source
|
|
1670
1676
|
|
|
@@ -307,10 +307,15 @@ from mostlyright.data_harness.v4_window import (
|
|
|
307
307
|
align_down,
|
|
308
308
|
applied_window,
|
|
309
309
|
assert_mergeable_format,
|
|
310
|
+
assert_snapshot_has_begun,
|
|
311
|
+
assert_snapshot_slice_is_whole,
|
|
312
|
+
assert_snapshot_within_bounds,
|
|
310
313
|
instant,
|
|
311
314
|
merge_slice,
|
|
312
315
|
partition_keys,
|
|
313
316
|
resolve_physical_scope,
|
|
317
|
+
snapshot_day,
|
|
318
|
+
stamp_snapshot,
|
|
314
319
|
)
|
|
315
320
|
|
|
316
321
|
# ------------------------------------------------------------------------------------------------
|
|
@@ -5511,6 +5516,13 @@ def _source_history_refresh_enabled(job: RunExecution) -> bool:
|
|
|
5511
5516
|
Keeping this deliberately narrow is important: a source-history predecessor is authority for
|
|
5512
5517
|
one direct CSV projection, not a hint that an arbitrary multi-source SQL graph may reuse raw
|
|
5513
5518
|
bytes. The old path remains responsible for every other document.
|
|
5519
|
+
|
|
5520
|
+
A SNAPSHOT SOURCE IS NOT THIS SHAPE, THOUGH IT IS SINGLE AND IT IS WINDOWED. This route
|
|
5521
|
+
acquires with ``merge_windowed=False``, and :func:`_windowed_relation` -- the only place the
|
|
5522
|
+
observed day is written onto a snapshot's rows and the only place its merge runs -- is
|
|
5523
|
+
reachable only when that is true. A snapshot admitted here would hand the build a relation
|
|
5524
|
+
with no day on it at all, so the run either dies in the transform on a missing column or seals
|
|
5525
|
+
a table that records no days, which is the whole member absent under a green run.
|
|
5514
5526
|
"""
|
|
5515
5527
|
|
|
5516
5528
|
return bool(
|
|
@@ -5521,11 +5533,17 @@ def _source_history_refresh_enabled(job: RunExecution) -> bool:
|
|
|
5521
5533
|
and job.predecessor.source_history is not None
|
|
5522
5534
|
and len(job.recipe.sources) == 1
|
|
5523
5535
|
and job.recipe.sources[0].window is not None
|
|
5536
|
+
and job.recipe.sources[0].window.snapshot is None
|
|
5524
5537
|
)
|
|
5525
5538
|
|
|
5526
5539
|
|
|
5527
5540
|
def _source_history_initial_enabled(job: RunExecution) -> bool:
|
|
5528
|
-
"""Return whether a full run emits the first bounded source-history version.
|
|
5541
|
+
"""Return whether a full run emits the first bounded source-history version.
|
|
5542
|
+
|
|
5543
|
+
A snapshot source is excluded for the reason :func:`_source_history_refresh_enabled` records,
|
|
5544
|
+
and excluded HERE rather than only there: an initial run that took this route seals a
|
|
5545
|
+
predecessor carrying ``source_history``, and every refresh after it takes the route again.
|
|
5546
|
+
"""
|
|
5529
5547
|
|
|
5530
5548
|
return bool(
|
|
5531
5549
|
(job.mode == "full" or is_initial_bootstrap_refresh(job))
|
|
@@ -5534,6 +5552,7 @@ def _source_history_initial_enabled(job: RunExecution) -> bool:
|
|
|
5534
5552
|
and job.predecessor is None
|
|
5535
5553
|
and len(job.recipe.sources) == 1
|
|
5536
5554
|
and job.recipe.sources[0].window is not None
|
|
5555
|
+
and job.recipe.sources[0].window.snapshot is None
|
|
5537
5556
|
)
|
|
5538
5557
|
|
|
5539
5558
|
|
|
@@ -10214,6 +10233,13 @@ def _applied_windows(job: RunExecution, *, requested_at: str) -> Mapping[str, Ap
|
|
|
10214
10233
|
Empty for a recipe that declares no window, which is what makes every registered document
|
|
10215
10234
|
written before this member behave exactly as it did: no address is rendered, no merge runs and
|
|
10216
10235
|
no coverage entry claims a range.
|
|
10236
|
+
|
|
10237
|
+
THIS IS WHAT BINDS THE ACQUISITION CACHE KEY, and for a snapshot that is what keeps a day out
|
|
10238
|
+
of the day before's bytes. The key is ``(source_id, query_digest, window)`` and this mapping
|
|
10239
|
+
supplies the third member, so two runs whose ``requested_at`` fall on different UTC days can
|
|
10240
|
+
never be served each other's fetch -- a snapshot's derived range IS its day. A snapshot does
|
|
10241
|
+
not take its partition from here, though: the day it stamps comes from the receipt the fetch
|
|
10242
|
+
wrote, and this range is what routes the source into the merge at all.
|
|
10217
10243
|
"""
|
|
10218
10244
|
|
|
10219
10245
|
moment = instant(requested_at, "the run's requested_at")
|
|
@@ -10236,6 +10262,82 @@ def _applied_windows(job: RunExecution, *, requested_at: str) -> Mapping[str, Ap
|
|
|
10236
10262
|
)
|
|
10237
10263
|
|
|
10238
10264
|
|
|
10265
|
+
def _stamped_snapshot(
|
|
10266
|
+
job: RunExecution,
|
|
10267
|
+
source: V4Source,
|
|
10268
|
+
*,
|
|
10269
|
+
relation: RelationInput,
|
|
10270
|
+
coverage: V4AcquisitionCoverage,
|
|
10271
|
+
destination: Path,
|
|
10272
|
+
) -> tuple[AppliedWindow, RelationInput, V4AcquisitionCoverage]:
|
|
10273
|
+
"""Write this source's own acquisition day onto every decoded row, and say so.
|
|
10274
|
+
|
|
10275
|
+
⚠ THE DAY COMES FROM THE RECEIPT AND NEVER FROM A CLOCK. ``coverage.fetched_at`` is the instant
|
|
10276
|
+
this acquisition already recorded and the instant the sealed receipt states for this source, so
|
|
10277
|
+
a rerun of the same sealed run stamps the day it sealed rather than the day it is re-run on.
|
|
10278
|
+
Reading a clock here would make a replay a different relation from the one it is replaying.
|
|
10279
|
+
|
|
10280
|
+
ONE INSTANT ANSWERS EVERY QUESTION ABOUT THE DAY. The stamp on each row, the range this run
|
|
10281
|
+
reports as ``coverage.window``, the receipt's ``observed_date`` and the partition the merge
|
|
10282
|
+
replaces are all derived from ``coverage.fetched_at`` and from nothing else, so the four can
|
|
10283
|
+
never be four renderings. The ``applied`` window this function is handed is the run's own,
|
|
10284
|
+
derived before the first fetch over the clock the dispatch carried; it is what routed this
|
|
10285
|
+
source into the merge and what bound its acquisition cache key, and a snapshot derives its
|
|
10286
|
+
partition from the receipt rather than from it so that a replay of a sealed run answers with
|
|
10287
|
+
the day it sealed.
|
|
10288
|
+
|
|
10289
|
+
THE CACHE CANNOT PUT A DAY IN ANOTHER DAY'S BYTES. That derived range is the third member of
|
|
10290
|
+
the acquisition cache key (``inprocess_acquisition.AcquisitionCacheKey``), and for a snapshot
|
|
10291
|
+
the range IS the day, so a cached read is never served across a UTC midnight and
|
|
10292
|
+
``coverage.fetched_at`` always falls on the day the run asked for.
|
|
10293
|
+
|
|
10294
|
+
The stamped column is appended to ``relation.columns`` because that tuple is what binds the
|
|
10295
|
+
transform's source columns; a relation whose bytes carry a column its header does not name is a
|
|
10296
|
+
column no statement can select.
|
|
10297
|
+
"""
|
|
10298
|
+
|
|
10299
|
+
window = source.window
|
|
10300
|
+
assert window is not None and window.snapshot is not None
|
|
10301
|
+
observed = instant(coverage.fetched_at, f"the acquisition receipt for {source.name}")
|
|
10302
|
+
applied = applied_window(job.mode, window, clamps_window=None, now=observed)
|
|
10303
|
+
# THE DECLARED FIRST DAY IS HELD OVER THE RECEIPT'S OWN WINDOW, which is the window every
|
|
10304
|
+
# other fact about this day is derived from. Holding it over the run's pre-fetch derivation
|
|
10305
|
+
# instead would be a second authority on one question, and two authorities on one question are
|
|
10306
|
+
# two answers waiting to disagree.
|
|
10307
|
+
assert_snapshot_has_begun(window, applied)
|
|
10308
|
+
assert_mergeable_format(source.name, relation.data_format)
|
|
10309
|
+
stamped = stamp_snapshot(
|
|
10310
|
+
window, source_id=source.name, acquired=relation.content, applied=applied
|
|
10311
|
+
)
|
|
10312
|
+
# ONLY THE BYTE CEILING IS MEANINGFUL BEFORE THE MERGE. This slice is one day by construction
|
|
10313
|
+
# and `max_partitions` is at least one, so the partition arm cannot answer here; what it can
|
|
10314
|
+
# answer on is the merged relation below.
|
|
10315
|
+
assert_snapshot_within_bounds(
|
|
10316
|
+
window.snapshot,
|
|
10317
|
+
source_id=source.name,
|
|
10318
|
+
partitions=1,
|
|
10319
|
+
byte_count=len(stamped.content),
|
|
10320
|
+
)
|
|
10321
|
+
digest = hashlib.sha256(stamped.content).hexdigest()
|
|
10322
|
+
return (
|
|
10323
|
+
applied,
|
|
10324
|
+
replace(
|
|
10325
|
+
relation,
|
|
10326
|
+
path=destination,
|
|
10327
|
+
content=stamped.content,
|
|
10328
|
+
columns=stamped.columns,
|
|
10329
|
+
row_count=stamped.rows,
|
|
10330
|
+
content_sha256=digest,
|
|
10331
|
+
),
|
|
10332
|
+
replace(
|
|
10333
|
+
coverage,
|
|
10334
|
+
snapshot_sha256=digest,
|
|
10335
|
+
snapshot_bytes=len(stamped.content),
|
|
10336
|
+
rows_kept=stamped.rows,
|
|
10337
|
+
),
|
|
10338
|
+
)
|
|
10339
|
+
|
|
10340
|
+
|
|
10239
10341
|
def _windowed_relation(
|
|
10240
10342
|
job: RunExecution,
|
|
10241
10343
|
source: V4Source,
|
|
@@ -10260,19 +10362,50 @@ def _windowed_relation(
|
|
|
10260
10362
|
A first, full or sample run of a windowed source MERGES NOTHING. Its slice IS the relation: it
|
|
10261
10363
|
fetched the whole range it claims to cover, and there is no earlier version to continue.
|
|
10262
10364
|
|
|
10263
|
-
``truncated`` says whether the sealed relation is less than the whole table. A
|
|
10264
|
-
never truncated, a clipped one included -- after the merge the relation covers
|
|
10265
|
-
the corpus's start, and nothing was cut. A sample that narrowed its window IS
|
|
10266
|
-
has to be: a latest build whose coverage is untruncated on every source is
|
|
10267
|
-
build whatever mode produced it, so a windowed sample claiming otherwise
|
|
10268
|
-
day's rows as the finished table.
|
|
10365
|
+
``truncated`` says whether the sealed relation is less than the whole table. A REQUEST window's
|
|
10366
|
+
refresh is never truncated, a clipped one included -- after the merge the relation covers
|
|
10367
|
+
everything from the corpus's start, and nothing was cut. A sample that narrowed its window IS
|
|
10368
|
+
truncated, and it has to be: a latest build whose coverage is untruncated on every source is
|
|
10369
|
+
read as the full build whatever mode produced it, so a windowed sample claiming otherwise
|
|
10370
|
+
would present one day's rows as the finished table.
|
|
10371
|
+
|
|
10372
|
+
A SNAPSHOT'S REFRESH REFUSES A CLAMPED SLICE RATHER THAN MERGING IT, AND THAT IS THE
|
|
10373
|
+
DIFFERENCE BETWEEN THE TWO GRAMMARS. A clipped request window will be re-requested: the
|
|
10374
|
+
partitions it did not reach are the predecessor's and the next tick fetches them. A snapshot
|
|
10375
|
+
cannot re-request anything -- the publisher answers with now and cannot be asked for a day that
|
|
10376
|
+
has passed -- so a day whose rows a row clamp cut short is a hole nothing later repairs, and
|
|
10377
|
+
the run refuses with ``SNAPSHOT_RELATION_TRUNCATED`` before the merge rather than sealing a day
|
|
10378
|
+
it cannot complete. A full or a sample carries the clamp through instead: neither merges, so
|
|
10379
|
+
neither has a predecessor's days to lose, and an incomplete first build is what a later full
|
|
10380
|
+
replaces.
|
|
10381
|
+
|
|
10382
|
+
A SNAPSHOT IS NEVER NARROWED, AND THAT IS NOT THE SAME SENTENCE. A request window's applied
|
|
10383
|
+
range is a cut of a corpus the publisher already holds, so a range that starts after
|
|
10384
|
+
``start_at`` really is less of it. A snapshot's range is an OBSERVATION: the publisher serves
|
|
10385
|
+
one document saying what is true now, this run read the whole of it, and the one partition it
|
|
10386
|
+
seals is everything a run of any mode could have produced today. Deriving `truncated` from the
|
|
10387
|
+
start here would mark every snapshot run from the second day of the table's life onward as an
|
|
10388
|
+
incomplete build -- and `truncated` is what Studio's one definition of a finished build reads
|
|
10389
|
+
(`build_profile.build_is_complete`), so the button that starts a full would never say the table
|
|
10390
|
+
already has one, and a complete sample would never release the full it is holding. A row clamp
|
|
10391
|
+
that really did cut the fetched relation short arrives on ``relation.truncated``, and what
|
|
10392
|
+
becomes of it is the mode's: carried through by a run that merges nothing, refused above by
|
|
10393
|
+
one that merges.
|
|
10394
|
+
|
|
10395
|
+
A SNAPSHOT SOURCE IS STAMPED BEFORE ANY OF THAT, and the stamp is what makes the rest of this
|
|
10396
|
+
function true of it: its rows arrive carrying no time at all, and the column the merge reads
|
|
10397
|
+
its partition off is written here.
|
|
10269
10398
|
"""
|
|
10270
10399
|
|
|
10271
10400
|
window = source.window
|
|
10272
10401
|
assert window is not None
|
|
10402
|
+
if window.snapshot is not None:
|
|
10403
|
+
applied, relation, coverage = _stamped_snapshot(
|
|
10404
|
+
job, source, relation=relation, coverage=coverage, destination=destination
|
|
10405
|
+
)
|
|
10273
10406
|
fetched_window = applied.wire
|
|
10274
10407
|
if job.mode not in WINDOW_MERGE_MODES:
|
|
10275
|
-
narrowed = applied.start_inclusive > align_down(window.start_at)
|
|
10408
|
+
narrowed = window.snapshot is None and applied.start_inclusive > align_down(window.start_at)
|
|
10276
10409
|
return (
|
|
10277
10410
|
replace(relation, truncated=relation.truncated or narrowed),
|
|
10278
10411
|
replace(
|
|
@@ -10281,6 +10414,8 @@ def _windowed_relation(
|
|
|
10281
10414
|
truncated=coverage.truncated or narrowed,
|
|
10282
10415
|
),
|
|
10283
10416
|
)
|
|
10417
|
+
if window.snapshot is not None:
|
|
10418
|
+
assert_snapshot_slice_is_whole(source_id=source.name, truncated=relation.truncated)
|
|
10284
10419
|
if predecessor is None or predecessor_sources is None:
|
|
10285
10420
|
raise _predecessor_refusal(
|
|
10286
10421
|
f"source {source.name} is windowed and this run holds none of the bytes its "
|
|
@@ -10306,7 +10441,21 @@ def _windowed_relation(
|
|
|
10306
10441
|
acquired=relation.content,
|
|
10307
10442
|
keys=partition_keys(window, applied),
|
|
10308
10443
|
)
|
|
10444
|
+
# BEFORE THE RELATION IS WRITTEN INTO THE BUILD'S INPUT TREE, which is before anything this
|
|
10445
|
+
# run produces is uploaded. A snapshot grows by one partition a day forever, so the two
|
|
10446
|
+
# ceilings its registrant declared are met on an ordinary day by an ordinary run; what that run
|
|
10447
|
+
# must not do is seal a version whose successor cannot be built.
|
|
10448
|
+
if window.snapshot is not None:
|
|
10449
|
+
assert_snapshot_within_bounds(
|
|
10450
|
+
window.snapshot,
|
|
10451
|
+
source_id=source.name,
|
|
10452
|
+
partitions=merged.partitions,
|
|
10453
|
+
byte_count=len(merged.content),
|
|
10454
|
+
)
|
|
10309
10455
|
digest = hashlib.sha256(merged.content).hexdigest()
|
|
10456
|
+
# NOTHING THAT REACHES HERE IS SHORT. A request window's merge leaves the relation covering
|
|
10457
|
+
# the corpus from its own start, so a clip it recorded on the way in is no longer a shortfall
|
|
10458
|
+
# of the sealed bytes; a snapshot's clipped slice never reaches the merge at all.
|
|
10310
10459
|
return (
|
|
10311
10460
|
replace(
|
|
10312
10461
|
relation,
|
|
@@ -10343,6 +10492,20 @@ def _windowed_relation(
|
|
|
10343
10492
|
"predecessor_digest": committed,
|
|
10344
10493
|
"predecessor_rows": merged.predecessor_rows,
|
|
10345
10494
|
"slice_rows": merged.slice_rows,
|
|
10495
|
+
# WHICH DAY THIS RUN WROTE, AND HOW MANY THE RELATION NOW HOLDS. For a
|
|
10496
|
+
# request window both are already legible from the range; for a snapshot the
|
|
10497
|
+
# range IS the observed day, and a reader of the receipt should not have to
|
|
10498
|
+
# recover the table's depth by counting partitions in the sealed bytes. The
|
|
10499
|
+
# day is spelled by the one function that spells it, so the receipt and the
|
|
10500
|
+
# cell the merge reads its partition off can never be two renderings.
|
|
10501
|
+
**(
|
|
10502
|
+
{}
|
|
10503
|
+
if window.snapshot is None
|
|
10504
|
+
else {
|
|
10505
|
+
"observed_date": snapshot_day(applied),
|
|
10506
|
+
"partitions": merged.partitions,
|
|
10507
|
+
}
|
|
10508
|
+
),
|
|
10346
10509
|
}
|
|
10347
10510
|
),
|
|
10348
10511
|
),
|
{mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/run_execution_v4.py
RENAMED
|
@@ -279,6 +279,17 @@ V4_FAILURE_CODES: tuple[str, ...] = (
|
|
|
279
279
|
"RUN_RECORDING_INVALID",
|
|
280
280
|
"RUN_WATERMARK_INVALID",
|
|
281
281
|
"RUN_WINDOW_REQUIRED",
|
|
282
|
+
"SNAPSHOT_BEFORE_START_AT",
|
|
283
|
+
"SNAPSHOT_COLUMN_RESERVED",
|
|
284
|
+
"SNAPSHOT_IDENTITY_INCOMPLETE",
|
|
285
|
+
"SNAPSHOT_PARTITIONS_EXHAUSTED",
|
|
286
|
+
"SNAPSHOT_PARTITION_MISMATCH",
|
|
287
|
+
"SNAPSHOT_RELATION_EMPTY",
|
|
288
|
+
"SNAPSHOT_RELATION_TOO_LARGE",
|
|
289
|
+
"SNAPSHOT_RELATION_TRUNCATED",
|
|
290
|
+
"SNAPSHOT_REQUEST_EXCLUSIVE",
|
|
291
|
+
"SNAPSHOT_SCOPES_UNSUPPORTED",
|
|
292
|
+
"SNAPSHOT_SPAN_FIXED",
|
|
282
293
|
"SOURCE_HTTP_5XX",
|
|
283
294
|
"SOURCE_PHYSICAL_SCOPE_UNKNOWN",
|
|
284
295
|
"SOURCE_PROXY_BUSY",
|
|
@@ -2585,6 +2596,10 @@ def _applied_execution_window(job: RunExecution, *, now: str) -> RunWindow | Non
|
|
|
2585
2596
|
A refresh of a recipe with a windowed source and no ``clamps.window`` is refused here. An
|
|
2586
2597
|
absent range on a continuing run is not a neutral default: it would re-request the whole corpus
|
|
2587
2598
|
from the publisher, which is the cost this member exists to remove.
|
|
2599
|
+
|
|
2600
|
+
A SNAPSHOT SOURCE IS NOT ONE OF THOSE. It re-requests nothing: its address is fetched literally
|
|
2601
|
+
and its range is the day the fetch happened in, so a dispatch that states no range costs a
|
|
2602
|
+
snapshot-only recipe nothing and there is no resumption point for one to continue from.
|
|
2588
2603
|
"""
|
|
2589
2604
|
|
|
2590
2605
|
from mostlyright.data_harness.v4_window import applied_window, instant, intersect
|
|
@@ -2592,7 +2607,8 @@ def _applied_execution_window(job: RunExecution, *, now: str) -> RunWindow | Non
|
|
|
2592
2607
|
windows = [source.window for source in job.recipe.sources if source.window is not None]
|
|
2593
2608
|
if not windows:
|
|
2594
2609
|
return None
|
|
2595
|
-
|
|
2610
|
+
requested = [window for window in windows if window.snapshot is None]
|
|
2611
|
+
if job.mode == "refresh" and requested and job.clamps.window is None:
|
|
2596
2612
|
raise _refuse(
|
|
2597
2613
|
"RUN_WINDOW_REQUIRED",
|
|
2598
2614
|
"a refresh of a recipe with a windowed source must state the clamps.window it "
|
{mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/studio_boundary.py
RENAMED
|
@@ -85,7 +85,7 @@ PINNED_OPENAPI_SOURCE_SHA256 = "2dfdef306229bf211333211354a948742e9759dd5399f66b
|
|
|
85
85
|
#: One line, and it stays one line: ``_replace_exactly`` in the repin matches the whole assignment
|
|
86
86
|
#: as a literal and refuses on any count but one, so a wrapped constant is a constant the repin can
|
|
87
87
|
#: no longer rewrite.
|
|
88
|
-
PINNED_V4_OPENAPI_SOURCE_SHA256 = "
|
|
88
|
+
PINNED_V4_OPENAPI_SOURCE_SHA256 = "244d4953c4d650da1ef448cb6846582c0d139b3e16b2798d743ec02f129e55ea"
|
|
89
89
|
|
|
90
90
|
_DIGEST = re.compile(r"^sha256:[0-9a-f]{64}$")
|
|
91
91
|
_IMAGE_DIGEST = re.compile(r"^[a-z0-9][a-z0-9._/-]{0,254}@sha256:[0-9a-f]{64}$")
|
{mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/thin/v4_tables.py
RENAMED
|
@@ -942,6 +942,8 @@ def cadence_state(record: Mapping[str, Any]) -> dict[str, Any] | None:
|
|
|
942
942
|
applied = applied if isinstance(applied, Mapping) else {}
|
|
943
943
|
basis = applied.get("basis")
|
|
944
944
|
basis = basis if isinstance(basis, Mapping) else {}
|
|
945
|
+
floor = cadence.get("floor")
|
|
946
|
+
floor = floor if isinstance(floor, Mapping) else {}
|
|
945
947
|
return {
|
|
946
948
|
# ⚠ THE WIRE OBJECT TRAVELS WHOLE, BESIDE THE PROSE RATHER THAN INSTEAD OF IT. The members
|
|
947
949
|
# below are a rendering for somebody reading a terminal, and a rendering necessarily drops
|
|
@@ -959,6 +961,10 @@ def cadence_state(record: Mapping[str, Any]) -> dict[str, Any] | None:
|
|
|
959
961
|
"updates_seen": basis.get("evidence_count"),
|
|
960
962
|
"measured_gap": _interval_phrase(basis.get("interval_seconds")),
|
|
961
963
|
"quickest_source": basis.get("fastest_source"),
|
|
964
|
+
# A source with a snapshot window records the day it was read, so the loop never lets the
|
|
965
|
+
# table refresh slower than that day; the bound is shown as the gap it never exceeds.
|
|
966
|
+
"no_slower_than": _interval_phrase(floor.get("max_interval_seconds")),
|
|
967
|
+
"bounded_by_source": floor.get("source"),
|
|
962
968
|
}
|
|
963
969
|
|
|
964
970
|
|
{mostlyright_data-0.18.2 → mostlyright_data-0.18.3}/src/mostlyright/data_harness/ux/remediation.py
RENAMED
|
@@ -5,7 +5,7 @@ for the commonest failure of all -- pointing a command at a folder that is not t
|
|
|
5
5
|
engineering wording reads like a security incident. This module turns a code into the two or three
|
|
6
6
|
plain sentences that say what happened and what to do next.
|
|
7
7
|
|
|
8
|
-
There are two layers, because
|
|
8
|
+
There are two layers, because 1861 typed codes across 217 prefixes can reach a person at a
|
|
9
9
|
workbench, and a hand-written sentence for each one would be neither affordable nor honest:
|
|
10
10
|
|
|
11
11
|
* **Families.** Every code prefix is assigned to a family. A family is one paragraph: what this
|