mostlyright-data 0.14.0__tar.gz → 0.14.1__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.14.0 → mostlyright_data-0.14.1}/PKG-INFO +1 -1
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/pyproject.toml +1 -1
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/skills/mr-data-build/SKILL.md +18 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +50 -21
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/stream_subscription_worker.py +35 -10
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/studio_subscription_control.py +118 -3
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_recipe.py +35 -11
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/.gitignore +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/README.md +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/scripts/hatch_build.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/skills/mr-data-build/agents/openai.yaml +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/http.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/agent_runtime.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/backends/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/backends/protocol.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/backends/reference.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/backends/registry.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/bounded_query.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/canonical.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/catalog_job.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/cli.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/coordinator.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/crosswalks.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/declared_checks.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/deploy.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/deploy_target.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/agent_request.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/capture.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/lane.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/ocr.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/pdf.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/registry.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/selections.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/tables.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/events.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/fast_delimited.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/formats.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/governors.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_dataset.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_handoff.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_run_worker.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_session_worker.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/hosted_worker.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ingestion/store.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/inprocess_acquisition.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/key_seam.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/local_contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/local_search/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/local_search/build_index.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/local_search/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/local_search/query_trace.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/local_search/retrieval.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/local_search/sealed.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/local_search/service.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/document.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/status.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/notebook.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/offline.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/operation_registry.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/operator_setup.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/pipeline.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/plan_graph.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/engine.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/errors.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/gates.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/joins.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/profile.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/table.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/progress_events.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/budgets.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/containers.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/delimited.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/html_web_extract.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/registry.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/samples.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/tabular.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/vector.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/recipe.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/repair/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/repair/adapters.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/repair/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/repair/coordinator.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/repair/errors.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/review.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/rowset.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/run_execution_v4.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/session_probes.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/signing.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/skill_assets.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/source_discovery.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/adapters.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/cadence.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/delta.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/health.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/rights_decisions.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/collections.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/dataset.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/deletion.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/fitness.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/governance.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/hosted.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/integration.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/registry.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/sports.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_rotation.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/stream_venue.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/studio_boundary.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/acquire.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/activity.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/approvals.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/commands.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/download.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/narrative.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/parity.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/probe.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/propose.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/recipe.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/research.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/router.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/runs.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/session.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/stream.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/transport.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/vocabulary.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/thin/workers.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/unit_flow.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/units.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/approve.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/attendance.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/author_yaml.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/clarification.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/approve.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/author.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/catalog_fill.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/catalog_search.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/catalog_update.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/deploy.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/deploy_dataset.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/deploy_plan.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/deploy_status.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/diff.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/document.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/index.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/inventory.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/list_builds.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/peek.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/plan_check.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/preflight.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/review_setup.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/search.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/show.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/credentials.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/diffing.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/headline.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/hosted_run_status.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/inventory.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/local_review.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/login.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/peek.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/plan_check.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/preflight.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/readers.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/remediation.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/render.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/ux/workload.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_acquisition.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_required_controls.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_stream_recording.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_transform.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/query.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/visual_run/store.py +0 -0
- {mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/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.14.
|
|
3
|
+
Version: 0.14.1
|
|
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/
|
|
@@ -525,6 +525,24 @@ which Studio fixes. Do it once per dataset, silently, and do not repeat it for a
|
|
|
525
525
|
subject changed. A dataset presented without a cover is a defect, the same as a one-line
|
|
526
526
|
description.
|
|
527
527
|
|
|
528
|
+
### Say what each source is
|
|
529
|
+
|
|
530
|
+
Every entry in `sources` takes an optional `description`, and every one you write gets one. It is
|
|
531
|
+
a single sentence saying what that source **is** — `Daily climatological reports, the official
|
|
532
|
+
highs and lows.` — and the dataset page draws it beside the endpoint, under the publisher it came
|
|
533
|
+
from. That line is the only place a reader ever learns what a URL full of query parameters
|
|
534
|
+
actually returned, so it is written for somebody who has never seen the recipe.
|
|
535
|
+
|
|
536
|
+
Write it about the DATA, never about the run: `Hourly airport surface observations` and not `the
|
|
537
|
+
2024 half of the window`, `fetched as CSV` or `unioned in step one`. Do not restate the address in
|
|
538
|
+
words, and do not repeat the publisher's product code where it says nothing a reader can use. Up
|
|
539
|
+
to 240 characters, which is one sentence rather than two. Where one window is split across several
|
|
540
|
+
sources on the same endpoint, all of them describe the same thing and get the same sentence — the
|
|
541
|
+
years are already in their names.
|
|
542
|
+
|
|
543
|
+
Leaving it out is a defect in the same way a one-line dataset description is: the source is then
|
|
544
|
+
drawn with its endpoint alone, and a reader is left to guess from a query string.
|
|
545
|
+
|
|
528
546
|
### Say what each column shows
|
|
529
547
|
|
|
530
548
|
Decide, per column, what a reader should see, and write it on the column as `presentation`. This is
|
|
@@ -17,6 +17,7 @@ its own.
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
19
|
import asyncio
|
|
20
|
+
import logging
|
|
20
21
|
import os
|
|
21
22
|
import shutil
|
|
22
23
|
import stat
|
|
@@ -281,15 +282,7 @@ def _materialized_claim_connector(
|
|
|
281
282
|
root = Path(tempfile.mkdtemp(prefix="stream-subscription-feed-", dir=work_root))
|
|
282
283
|
try:
|
|
283
284
|
os.chmod(root, 0o700)
|
|
284
|
-
registry_root =
|
|
285
|
-
registry_root.mkdir(mode=0o700)
|
|
286
|
-
materialize_connector_registry(
|
|
287
|
-
transport=objects,
|
|
288
|
-
bucket=_claim_text(claim.stream_venue_bucket, "stream venue bucket"),
|
|
289
|
-
registry_prefix=_claim_text(claim.connector_registry_prefix, "registry prefix"),
|
|
290
|
-
registry_digest=_claim_text(claim.connector_registry_digest, "registry digest"),
|
|
291
|
-
root=registry_root,
|
|
292
|
-
)
|
|
285
|
+
registry_root = _materialized_registry_root(claim, objects, root)
|
|
293
286
|
registry = load_stream_connector_registry(registry_root)
|
|
294
287
|
entry = registry.resolve(
|
|
295
288
|
_claim_text(claim.connector_id, "connector id"),
|
|
@@ -314,6 +307,33 @@ def _materialized_claim_connector(
|
|
|
314
307
|
shutil.rmtree(root, ignore_errors=True)
|
|
315
308
|
|
|
316
309
|
|
|
310
|
+
def _materialized_registry_root(
|
|
311
|
+
claim: ClaimedSubscription, objects: GCSObjectTransport, root: Path
|
|
312
|
+
) -> Path:
|
|
313
|
+
"""Materialize the pinned registry under ``root`` and file its series documents.
|
|
314
|
+
|
|
315
|
+
ONE MATERIALIZATION SHAPE FOR BOTH LOADERS. A published registry is one flat name-to-digest
|
|
316
|
+
table; the connector loader reads the documents directly beneath the root and the series
|
|
317
|
+
loader reads the ``series`` directory under it. A subscription that follows a series is
|
|
318
|
+
pinned to a registry that carries both kinds by construction, so a root left unsorted is not
|
|
319
|
+
a connector registry at all and the feed is refused before it opens.
|
|
320
|
+
"""
|
|
321
|
+
|
|
322
|
+
registry_root = root / "registry"
|
|
323
|
+
registry_root.mkdir(mode=0o700)
|
|
324
|
+
series_root = registry_root / SERIES_DIRECTORY_NAME
|
|
325
|
+
series_root.mkdir(mode=0o700)
|
|
326
|
+
materialize_connector_registry(
|
|
327
|
+
transport=objects,
|
|
328
|
+
bucket=_claim_text(claim.stream_venue_bucket, "stream venue bucket"),
|
|
329
|
+
registry_prefix=_claim_text(claim.connector_registry_prefix, "registry prefix"),
|
|
330
|
+
registry_digest=_claim_text(claim.connector_registry_digest, "registry digest"),
|
|
331
|
+
root=registry_root,
|
|
332
|
+
)
|
|
333
|
+
_sort_series_documents(registry_root, series_root)
|
|
334
|
+
return registry_root
|
|
335
|
+
|
|
336
|
+
|
|
317
337
|
def _claim_text(value: str | None, label: str) -> str:
|
|
318
338
|
if not isinstance(value, str) or not value:
|
|
319
339
|
raise StreamSubscriptionError("STREAM_SUBSCRIPTION_CONNECTOR_INVALID", label)
|
|
@@ -385,18 +405,7 @@ def _materialized_claim_series(
|
|
|
385
405
|
root = Path(tempfile.mkdtemp(prefix="stream-subscription-series-", dir=work_root))
|
|
386
406
|
try:
|
|
387
407
|
os.chmod(root, 0o700)
|
|
388
|
-
registry_root =
|
|
389
|
-
registry_root.mkdir(mode=0o700)
|
|
390
|
-
series_root = registry_root / SERIES_DIRECTORY_NAME
|
|
391
|
-
series_root.mkdir(mode=0o700)
|
|
392
|
-
materialize_connector_registry(
|
|
393
|
-
transport=objects,
|
|
394
|
-
bucket=_claim_text(claim.stream_venue_bucket, "stream venue bucket"),
|
|
395
|
-
registry_prefix=_claim_text(claim.connector_registry_prefix, "registry prefix"),
|
|
396
|
-
registry_digest=_claim_text(claim.connector_registry_digest, "registry digest"),
|
|
397
|
-
root=registry_root,
|
|
398
|
-
)
|
|
399
|
-
_sort_series_documents(registry_root, series_root)
|
|
408
|
+
registry_root = _materialized_registry_root(claim, objects, root)
|
|
400
409
|
documents = load_stream_series_documents(registry_root)
|
|
401
410
|
held = documents.get(series.series_id)
|
|
402
411
|
if held is None:
|
|
@@ -625,6 +634,7 @@ async def run_subscription_worker(
|
|
|
625
634
|
def stream_subscription_worker_main(argv: Sequence[str] | None = None) -> int:
|
|
626
635
|
"""Cloud Run Worker Pool executable; it intentionally accepts no mutable CLI authority."""
|
|
627
636
|
|
|
637
|
+
_configure_worker_logging()
|
|
628
638
|
arguments = tuple(sys.argv[1:] if argv is None else argv)
|
|
629
639
|
if arguments:
|
|
630
640
|
raise HostedStreamSubscriptionWorkerError(
|
|
@@ -636,6 +646,25 @@ def stream_subscription_worker_main(argv: Sequence[str] | None = None) -> int:
|
|
|
636
646
|
return 0
|
|
637
647
|
|
|
638
648
|
|
|
649
|
+
def _configure_worker_logging() -> None:
|
|
650
|
+
"""Configure the root logger for the pool executable, on a stream its host collects.
|
|
651
|
+
|
|
652
|
+
A library module configures nothing; an executable must. Unconfigured, this process fell
|
|
653
|
+
through to the last-resort handler, which emits a bare message with no level and no logger
|
|
654
|
+
name, so the pool's own refusals arrived unattributable.
|
|
655
|
+
|
|
656
|
+
Plain text on either stream is collected at DEFAULT severity, so the level is carried in the
|
|
657
|
+
line rather than in the record -- which is why the format names it. Stdout is chosen over the
|
|
658
|
+
sibling executables' stderr for the same reason it is chosen anywhere: a stream that carries
|
|
659
|
+
ordinary progress as well as refusals is not the error stream. An already-configured root is
|
|
660
|
+
left alone, which is what lets a smoke or a test harness own it instead.
|
|
661
|
+
"""
|
|
662
|
+
|
|
663
|
+
logging.basicConfig(
|
|
664
|
+
level=logging.INFO, stream=sys.stdout, format="%(levelname)s %(name)s %(message)s"
|
|
665
|
+
)
|
|
666
|
+
|
|
667
|
+
|
|
639
668
|
def _studio_origin(value: str | None) -> str:
|
|
640
669
|
if not isinstance(value, str) or not 1 <= len(value) <= 2048 or value.endswith("/"):
|
|
641
670
|
raise HostedStreamSubscriptionWorkerError(
|
|
@@ -132,6 +132,22 @@ class _SubscriptionCancelled(RuntimeError):
|
|
|
132
132
|
self.desired_state = desired_state
|
|
133
133
|
|
|
134
134
|
|
|
135
|
+
#: The largest ``volume_policy.max_bytes`` any worker in this pool can serve.
|
|
136
|
+
#:
|
|
137
|
+
#: A hot subscription gets two bounded buffers: one immutable segment may be sealing while its
|
|
138
|
+
#: successor is being read. Each is capped at half the per-claim budget so the queue does not
|
|
139
|
+
#: turn a 16 MiB promise into 32 MiB during a slow upload/CAS.
|
|
140
|
+
#:
|
|
141
|
+
#: It is exported because it is a PROTOCOL CONSTANT, not a private detail: the control plane
|
|
142
|
+
#: writes the policy a subscription starts with, so it needs the number to validate against at
|
|
143
|
+
#: start rather than discovering it one lease at a time.
|
|
144
|
+
MAX_VOLUME_POLICY_BYTES = MAX_BUFFERED_BYTES // 2
|
|
145
|
+
|
|
146
|
+
#: The largest ``volume_policy.max_duration_seconds`` any worker in this pool can serve, equal to
|
|
147
|
+
#: the longest a subscription may sit without data before its lease ends on its own.
|
|
148
|
+
MAX_VOLUME_POLICY_DURATION_SECONDS = DEFAULT_NO_DATA_TIMEOUT_SECONDS
|
|
149
|
+
|
|
150
|
+
|
|
135
151
|
@dataclass(frozen=True)
|
|
136
152
|
class VolumePolicy:
|
|
137
153
|
"""One subscription's bounded rotation policy, set by Studio rather than a worker flag."""
|
|
@@ -140,17 +156,21 @@ class VolumePolicy:
|
|
|
140
156
|
max_duration_seconds: int
|
|
141
157
|
|
|
142
158
|
def __post_init__(self) -> None:
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
159
|
+
# The refusal names the bound and the offered value, because the party that has to change
|
|
160
|
+
# the policy is the one that wrote it and it cannot act on "outside worker bounds".
|
|
161
|
+
if isinstance(self.max_bytes, bool) or not 1 <= self.max_bytes <= MAX_VOLUME_POLICY_BYTES:
|
|
162
|
+
raise StreamSubscriptionError(
|
|
163
|
+
"STREAM_SUBSCRIPTION_POLICY_INVALID",
|
|
164
|
+
f"volume policy max_bytes {self.max_bytes} is outside the worker bound "
|
|
165
|
+
f"1..{MAX_VOLUME_POLICY_BYTES}",
|
|
166
|
+
)
|
|
167
|
+
if isinstance(self.max_duration_seconds, bool) or not (
|
|
168
|
+
1 <= self.max_duration_seconds <= MAX_VOLUME_POLICY_DURATION_SECONDS
|
|
151
169
|
):
|
|
152
170
|
raise StreamSubscriptionError(
|
|
153
|
-
"STREAM_SUBSCRIPTION_POLICY_INVALID",
|
|
171
|
+
"STREAM_SUBSCRIPTION_POLICY_INVALID",
|
|
172
|
+
f"volume policy max_duration_seconds {self.max_duration_seconds} is outside the "
|
|
173
|
+
f"worker bound 1..{MAX_VOLUME_POLICY_DURATION_SECONDS}",
|
|
154
174
|
)
|
|
155
175
|
|
|
156
176
|
|
|
@@ -862,9 +882,12 @@ class RecoveryArtifact:
|
|
|
862
882
|
)
|
|
863
883
|
|
|
864
884
|
def to_dict(self) -> dict[str, object]:
|
|
885
|
+
# An object generation is a decimal STRING on the wire, the spelling the control plane's
|
|
886
|
+
# recovery-artifact schema contracts for. It stays an int in the dataclass because that
|
|
887
|
+
# is what compares and orders; only the serialized form is text.
|
|
865
888
|
return {
|
|
866
889
|
"object_name": self.object_name,
|
|
867
|
-
"generation": self.generation,
|
|
890
|
+
"generation": str(self.generation),
|
|
868
891
|
"sha256": self.sha256,
|
|
869
892
|
"byte_length": self.byte_length,
|
|
870
893
|
"media_type": self.media_type,
|
|
@@ -2083,6 +2106,8 @@ __all__ = [
|
|
|
2083
2106
|
"MAX_DISCOVERY_EVIDENCE_BYTES",
|
|
2084
2107
|
"MAX_ROSTER_MEMBERS",
|
|
2085
2108
|
"MAX_SEGMENT_GAPS",
|
|
2109
|
+
"MAX_VOLUME_POLICY_BYTES",
|
|
2110
|
+
"MAX_VOLUME_POLICY_DURATION_SECONDS",
|
|
2086
2111
|
"ROSTER_TICK_SECONDS",
|
|
2087
2112
|
"ROTATION_SCHEMA_VERSION",
|
|
2088
2113
|
"SEGMENT_ROTATION_SCHEMA_VERSION",
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import logging
|
|
6
|
+
import re
|
|
5
7
|
from collections.abc import Callable, Mapping, Sequence
|
|
6
8
|
from dataclasses import dataclass, replace
|
|
7
9
|
from typing import Any
|
|
@@ -37,7 +39,15 @@ from mostlyright.data_harness.stream_subscription_worker import (
|
|
|
37
39
|
)
|
|
38
40
|
from mostlyright.data_harness.stream_venue_staging import MAX_EVIDENCE_BYTES
|
|
39
41
|
|
|
42
|
+
LOGGER = logging.getLogger(__name__)
|
|
43
|
+
|
|
40
44
|
CLAIM_PATH = "/_internal/stream-subscriptions:claim"
|
|
45
|
+
|
|
46
|
+
#: The largest object generation either spelling may carry, from the control plane's own
|
|
47
|
+
#: nineteen-digit delivery grammar. A generation is a storage coordinate, not arithmetic, so a
|
|
48
|
+
#: number outside the grammar is a claim about an object no bucket issued.
|
|
49
|
+
MAX_OBJECT_GENERATION = 10**19 - 1
|
|
50
|
+
_OBJECT_GENERATION_TEXT = re.compile(r"[1-9][0-9]{0,18}")
|
|
41
51
|
CREDENTIAL_RESOLUTION_SCHEMA_VERSION = "mostlyright-stream-subscription-credential-resolution.v1"
|
|
42
52
|
_STAGING_ROLES = ("source_data", "acquisition_receipt", "source_observation")
|
|
43
53
|
_STAGING_MEDIA_TYPES = {
|
|
@@ -72,6 +82,18 @@ class StudioSubscriptionControl:
|
|
|
72
82
|
# The number was already parsed and checked here before it was carried; the only
|
|
73
83
|
# change is that it now reaches the caller instead of being validated and dropped.
|
|
74
84
|
return IdlePoll(poll_after_seconds=_integer(value, "poll_after_seconds", 1))
|
|
85
|
+
try:
|
|
86
|
+
return self._claimed(value)
|
|
87
|
+
except StreamSubscriptionError as error:
|
|
88
|
+
# A LEASE THIS WORKER CANNOT SERVE IS STILL A LEASE. Studio persists the lease before
|
|
89
|
+
# it answers, so a refusal that only raised would leave that lease to expire and be
|
|
90
|
+
# handed back on the next claim, forever, with nothing on the record saying why.
|
|
91
|
+
self._dispose_of_refused_claim(value, error)
|
|
92
|
+
raise
|
|
93
|
+
|
|
94
|
+
def _claimed(self, value: Mapping[str, Any]) -> ClaimedSubscription:
|
|
95
|
+
"""The full claim, or a refusal naming the first member this worker cannot serve."""
|
|
96
|
+
|
|
75
97
|
policy = _mapping(value, "volume_policy")
|
|
76
98
|
claim_series = _series_claim(value.get("series"))
|
|
77
99
|
claim = ClaimedSubscription(
|
|
@@ -120,6 +142,62 @@ class StudioSubscriptionControl:
|
|
|
120
142
|
claim = replace(claim, resume_checkpoint=_resume_checkpoint(resume, claim))
|
|
121
143
|
return claim
|
|
122
144
|
|
|
145
|
+
def _dispose_of_refused_claim(
|
|
146
|
+
self, value: Mapping[str, Any], error: StreamSubscriptionError
|
|
147
|
+
) -> None:
|
|
148
|
+
"""Dispose of a persisted lease this worker refused, on a best effort, and never raise.
|
|
149
|
+
|
|
150
|
+
TWO DISPOSITIONS, BECAUSE TWO DIFFERENT THINGS BOUND THEM.
|
|
151
|
+
|
|
152
|
+
A claim carrying no pending checkpoint is COMPLETED as failed. That charges the control
|
|
153
|
+
plane's failure budget, which spaces the retries and terminalizes the subscription once
|
|
154
|
+
the budget runs out, and it is the bound on a subscription this fleet cannot serve.
|
|
155
|
+
|
|
156
|
+
A claim carrying a ``resume_checkpoint`` is LEFT ALONE, and its lease runs out instead.
|
|
157
|
+
The control plane exempts a lease with a pending checkpoint from that budget -- a resume
|
|
158
|
+
is meant to survive a worker dying mid-segment -- and re-leases it as soon as it is free.
|
|
159
|
+
Completing one would therefore trade a lease expiry for an immediate reclaim, which is a
|
|
160
|
+
tighter loop than the one this method exists to end. Expiry is the slower of the two, so
|
|
161
|
+
expiry is what bounds this case.
|
|
162
|
+
|
|
163
|
+
The discriminator is the pending checkpoint rather than which member refused, because the
|
|
164
|
+
exemption is the control plane's and it is keyed on the same fact.
|
|
165
|
+
"""
|
|
166
|
+
|
|
167
|
+
resuming = "resume_checkpoint" in value
|
|
168
|
+
LOGGER.warning(
|
|
169
|
+
"stream_subscription_claim_refused subscription_id=%s failure_code=%s disposition=%s",
|
|
170
|
+
_safe_subscription_id(value),
|
|
171
|
+
error.code,
|
|
172
|
+
"lease_expiry" if resuming else "completed_failed",
|
|
173
|
+
)
|
|
174
|
+
if resuming:
|
|
175
|
+
return
|
|
176
|
+
try:
|
|
177
|
+
url = _callback_url(value.get("complete_url"), origin=self.origin, label="complete")
|
|
178
|
+
body: dict[str, Any] = {
|
|
179
|
+
"schema_version": COMPLETE_SCHEMA_VERSION,
|
|
180
|
+
"lease_generation": _integer(value, "lease_generation", 1),
|
|
181
|
+
"terminal_reason": "failed",
|
|
182
|
+
}
|
|
183
|
+
self._post(url, body)
|
|
184
|
+
except SubscriptionFenceStale:
|
|
185
|
+
# The lease is already terminal, which is the outcome this was reaching for. A replay
|
|
186
|
+
# of a lost 5xx whose first attempt landed arrives here, so it is reported as done
|
|
187
|
+
# rather than as a completion that failed.
|
|
188
|
+
return
|
|
189
|
+
except Exception as unreported:
|
|
190
|
+
# Broad on purpose: whatever went wrong here, the refusal the caller is waiting on is
|
|
191
|
+
# the one that must reach it, so a second failure is logged and dropped rather than
|
|
192
|
+
# raised over the first.
|
|
193
|
+
LOGGER.warning(
|
|
194
|
+
"stream_subscription_claim_refusal_unreported subscription_id=%s failure_code=%s",
|
|
195
|
+
_safe_subscription_id(value),
|
|
196
|
+
unreported.code
|
|
197
|
+
if isinstance(unreported, StreamSubscriptionError)
|
|
198
|
+
else type(unreported).__name__,
|
|
199
|
+
)
|
|
200
|
+
|
|
123
201
|
def resolve_credential(
|
|
124
202
|
self, claim: ClaimedSubscription, *, credential_shape: str
|
|
125
203
|
) -> StreamCredential:
|
|
@@ -213,7 +291,8 @@ class StudioSubscriptionControl:
|
|
|
213
291
|
"next_cursor": next_cursor,
|
|
214
292
|
"segment_stream_id": capture.segment_stream_id,
|
|
215
293
|
"manifest_object_name": capture.manifest_object_name,
|
|
216
|
-
|
|
294
|
+
# Every object generation on the wire is text; the number stays an int in the capture.
|
|
295
|
+
"manifest_generation": str(capture.manifest_generation),
|
|
217
296
|
"manifest_sha256": capture.manifest_sha256,
|
|
218
297
|
"byte_length": capture.byte_length,
|
|
219
298
|
"capture_digest": capture.capture_digest,
|
|
@@ -412,6 +491,42 @@ class StudioSubscriptionControl:
|
|
|
412
491
|
raise AssertionError("unreachable")
|
|
413
492
|
|
|
414
493
|
|
|
494
|
+
def _object_generation(value: Mapping[str, Any], name: str) -> int:
|
|
495
|
+
"""One object generation, read from either spelling of the same bounded number.
|
|
496
|
+
|
|
497
|
+
EVERY OBJECT GENERATION ON THE WIRE IS TEXT, and an integer is admitted because a control
|
|
498
|
+
plane that echoes a stored coordinate back is not the place to relitigate a spelling.
|
|
499
|
+
|
|
500
|
+
The grammar is matched BEFORE the text is converted, and it is the control plane's own
|
|
501
|
+
nineteen-digit one. An unbounded digit string is a refusal here: converting one crosses the
|
|
502
|
+
interpreter's own conversion limit and raises an untyped error out of a parser whose whole
|
|
503
|
+
contract is that it refuses in one vocabulary.
|
|
504
|
+
"""
|
|
505
|
+
|
|
506
|
+
item = value.get(name)
|
|
507
|
+
if isinstance(item, str):
|
|
508
|
+
if not _OBJECT_GENERATION_TEXT.fullmatch(item):
|
|
509
|
+
raise StreamSubscriptionError("STREAM_SUBSCRIPTION_CLAIM_INVALID", name)
|
|
510
|
+
return int(item)
|
|
511
|
+
generation = _integer(value, name, 1)
|
|
512
|
+
if generation > MAX_OBJECT_GENERATION:
|
|
513
|
+
raise StreamSubscriptionError("STREAM_SUBSCRIPTION_CLAIM_INVALID", name)
|
|
514
|
+
return generation
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
def _safe_subscription_id(value: Mapping[str, Any]) -> str:
|
|
518
|
+
"""The claimed subscription id when it is a canonical UUID, and ``unknown`` otherwise.
|
|
519
|
+
|
|
520
|
+
A refusal log line must never repeat an unvalidated control-plane string, because the string
|
|
521
|
+
that failed to parse is exactly the one nothing has checked the shape of.
|
|
522
|
+
"""
|
|
523
|
+
|
|
524
|
+
try:
|
|
525
|
+
return _uuid_text(value.get("stream_subscription_id"), "stream_subscription_id")
|
|
526
|
+
except StreamSubscriptionError:
|
|
527
|
+
return "unknown"
|
|
528
|
+
|
|
529
|
+
|
|
415
530
|
def _code(raw: bytes) -> str | None:
|
|
416
531
|
try:
|
|
417
532
|
value = parse_json(raw)
|
|
@@ -541,7 +656,7 @@ def _resume_checkpoint(value: object, claim: ClaimedSubscription) -> ResumeCheck
|
|
|
541
656
|
)
|
|
542
657
|
capture = SealedCapture(
|
|
543
658
|
manifest_object_name=_text(checkpoint, "manifest_object_name"),
|
|
544
|
-
manifest_generation=
|
|
659
|
+
manifest_generation=_object_generation(checkpoint, "manifest_generation"),
|
|
545
660
|
manifest_sha256=_digest(checkpoint.get("manifest_sha256"), "manifest sha256"),
|
|
546
661
|
byte_length=_integer(checkpoint, "byte_length", 0),
|
|
547
662
|
capture_digest=capture_digest,
|
|
@@ -622,7 +737,7 @@ def _recovery_inventory(
|
|
|
622
737
|
)
|
|
623
738
|
artifacts[role] = RecoveryArtifact(
|
|
624
739
|
object_name=expected,
|
|
625
|
-
generation=
|
|
740
|
+
generation=_object_generation(artifact, "generation"),
|
|
626
741
|
sha256=_digest(artifact.get("sha256"), f"{role} sha256"),
|
|
627
742
|
byte_length=_integer(artifact, "byte_length", 0),
|
|
628
743
|
media_type=_text(artifact, "media_type"),
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/v4_recipe.py
RENAMED
|
@@ -108,16 +108,17 @@ MAX_DESCRIPTION_CHARS = 2_000
|
|
|
108
108
|
#: that does not share :data:`MAX_DESCRIPTION_CHARS`.
|
|
109
109
|
#:
|
|
110
110
|
#: ⚠ A SECOND CONSTANT RATHER THAN A WIDER FIRST ONE, AND THE DIFFERENCE IS WHICH WAY IT FAILS.
|
|
111
|
-
#:
|
|
112
|
-
#:
|
|
113
|
-
#: parser read 2000 for all
|
|
114
|
-
#:
|
|
115
|
-
#: already agreed to: the one failure
|
|
116
|
-
#:
|
|
117
|
-
#:
|
|
118
|
-
#: bound that differs gets a constant that says
|
|
119
|
-
#:
|
|
120
|
-
#: ``
|
|
111
|
+
#: Seven members of this document are called ``description`` or ``claim_note`` and Studio bounds
|
|
112
|
+
#: them at three different numbers: five at 2000, the DATASET's at 4000, and the SOURCE's at 240
|
|
113
|
+
#: under :data:`MAX_SOURCE_DESCRIPTION_CHARS`. While this parser read 2000 for all of them, a
|
|
114
|
+
#: dataset description between 2001 and 4000 characters was ACCEPTED at registration and refused
|
|
115
|
+
#: at the worker, half an hour later, on a document Studio had already agreed to: the one failure
|
|
116
|
+
#: shape `docs/V4-ONE-GATE-CONTRACT.md` exists to remove. Widening the shared constant instead
|
|
117
|
+
#: would have fixed that and broken the others in the opposite direction -- the worker admitting a
|
|
118
|
+
#: table description registration refuses -- so every bound that differs gets a constant that says
|
|
119
|
+
#: so. ``tests/test_v4_recipe.py`` holds all three against the pinned schema, and
|
|
120
|
+
#: ``tests/test_thin_v4_datasets.py`` holds this one against the ceiling ``mr-data dataset set``
|
|
121
|
+
#: refuses at, so the client, the contract and the worker are one number.
|
|
121
122
|
MAX_DATASET_DESCRIPTION_CHARS = 4_000
|
|
122
123
|
MAX_QUESTION_CHARS = 4_000
|
|
123
124
|
MAX_DISPLAY_LOCATOR_CHARS = 2_048
|
|
@@ -132,6 +133,12 @@ MAX_SQL_CHARS = 65_536
|
|
|
132
133
|
MAX_NULL_PPM = 1_000_000
|
|
133
134
|
MAX_STORY_CHARS = 240
|
|
134
135
|
|
|
136
|
+
#: What a SOURCE's sentence may run to: a third ceiling rather than a wider share of one of the
|
|
137
|
+
#: other two, for the reason :data:`MAX_DATASET_DESCRIPTION_CHARS` records at length. It equals
|
|
138
|
+
#: :data:`MAX_STORY_CHARS` today because both are a sentence drawn on one line of the dataset
|
|
139
|
+
#: page, not because the two members are one contract, so neither may be spelled as the other.
|
|
140
|
+
MAX_SOURCE_DESCRIPTION_CHARS = 240
|
|
141
|
+
|
|
135
142
|
#: How many bins a column may ask its chart to be drawn in. The ceiling is the same twelve the
|
|
136
143
|
#: released distribution bounds its items at, so a document can never ask for a chart with more
|
|
137
144
|
#: marks than the profile that carries it is allowed to hold.
|
|
@@ -342,7 +349,7 @@ _SOURCE = (
|
|
|
342
349
|
"source_class",
|
|
343
350
|
}
|
|
344
351
|
),
|
|
345
|
-
frozenset({"binding", "credential"}),
|
|
352
|
+
frozenset({"binding", "credential", "description"}),
|
|
346
353
|
)
|
|
347
354
|
_LOCATOR = (
|
|
348
355
|
frozenset({"display_locator", "kind"}),
|
|
@@ -668,6 +675,12 @@ class V4Source:
|
|
|
668
675
|
"""
|
|
669
676
|
|
|
670
677
|
name: str
|
|
678
|
+
#: One sentence saying what this source is, for a reader of the dataset page rather than for
|
|
679
|
+
#: this parser: the page draws it under the endpoint the locator names. Nothing this module
|
|
680
|
+
#: computes reads it, and no run behaves differently for its presence -- which is exactly why
|
|
681
|
+
#: it is parsed here rather than left to travel unchecked: an absent bound is how a member
|
|
682
|
+
#: that only a page reads arrives at the page as four kilobytes of somebody's notes.
|
|
683
|
+
description: str | None
|
|
671
684
|
source_class: str
|
|
672
685
|
data_classification: str
|
|
673
686
|
locator: V4SourceLocator
|
|
@@ -1193,8 +1206,19 @@ def _parse_source(value: Any, label: str) -> V4Source:
|
|
|
1193
1206
|
members = _members(value, label, _SOURCE)
|
|
1194
1207
|
credential = _optional(members, "credential", label)
|
|
1195
1208
|
binding = _optional(members, "binding", label)
|
|
1209
|
+
description = _optional(members, "description", label)
|
|
1196
1210
|
return V4Source(
|
|
1197
1211
|
name=_identifier(members["name"], f"{label}.name"),
|
|
1212
|
+
description=(
|
|
1213
|
+
None
|
|
1214
|
+
if description is None
|
|
1215
|
+
else _text(
|
|
1216
|
+
description,
|
|
1217
|
+
f"{label}.description",
|
|
1218
|
+
minimum=1,
|
|
1219
|
+
maximum=MAX_SOURCE_DESCRIPTION_CHARS,
|
|
1220
|
+
)
|
|
1221
|
+
),
|
|
1198
1222
|
source_class=_one_of(members["source_class"], f"{label}.source_class", SOURCE_CLASSES),
|
|
1199
1223
|
data_classification=_one_of(
|
|
1200
1224
|
members["data_classification"], f"{label}.data_classification", DATA_CLASSIFICATIONS
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/skills/mr-data-build/scripts/write_visual_run.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/LICENSE
RENAMED
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json
RENAMED
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/__init__.py
RENAMED
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/__init__.pyi
RENAMED
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/_version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/main.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/log.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/output.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/_vendor/rapidocr/utils/utils.py
RENAMED
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/acquisition/http.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/agent_runtime.py
RENAMED
|
File without changes
|
{mostlyright_data-0.14.0 → mostlyright_data-0.14.1}/src/mostlyright/data_harness/assets/logo-ink.svg
RENAMED
|
File without changes
|