mostlyright-data 0.15.2__tar.gz → 0.15.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/PKG-INFO +1 -1
  2. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/pyproject.toml +4 -1
  3. mostlyright_data-0.15.3/src/mostlyright/data_harness/hosted_ingestion_worker.py +238 -0
  4. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/run_execution_v4.py +20 -2
  5. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/studio_boundary.py +1 -1
  6. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/vocabulary.py +5 -0
  7. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/workers.py +6 -0
  8. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/remediation.py +1 -1
  9. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/.gitignore +0 -0
  10. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/README.md +0 -0
  11. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/scripts/hatch_build.py +0 -0
  12. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/skills/mr-data-build/SKILL.md +0 -0
  13. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/skills/mr-data-build/agents/openai.yaml +0 -0
  14. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
  15. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
  16. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/__init__.py +0 -0
  17. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
  18. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
  19. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
  20. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
  21. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
  22. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
  23. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
  24. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
  25. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
  26. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
  27. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
  28. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
  29. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
  30. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
  31. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
  32. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
  33. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
  34. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
  35. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
  36. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
  37. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
  38. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
  39. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
  40. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
  41. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
  42. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
  43. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
  44. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
  45. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
  46. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
  47. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
  48. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
  49. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
  50. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
  51. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
  52. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
  53. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
  54. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/__init__.py +0 -0
  55. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
  56. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -0
  57. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/http.py +0 -0
  58. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
  59. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
  60. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
  61. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
  62. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
  63. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
  64. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/agent_runtime.py +0 -0
  65. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
  66. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/backends/__init__.py +0 -0
  67. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
  68. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
  69. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/backends/protocol.py +0 -0
  70. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/backends/reference.py +0 -0
  71. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/backends/registry.py +0 -0
  72. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
  73. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/bounded_query.py +0 -0
  74. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/bounded_scratch_sink.py +0 -0
  75. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/canonical.py +0 -0
  76. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/catalog_job.py +0 -0
  77. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/cli.py +0 -0
  78. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/compact_worker.py +0 -0
  79. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/contracts.py +0 -0
  80. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/coordinator.py +0 -0
  81. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/crosswalks.py +0 -0
  82. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/declared_checks.py +0 -0
  83. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/deploy.py +0 -0
  84. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/deploy_target.py +0 -0
  85. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
  86. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/__init__.py +0 -0
  87. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
  88. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/capture.py +0 -0
  89. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/contracts.py +0 -0
  90. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/lane.py +0 -0
  91. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/ocr.py +0 -0
  92. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/pdf.py +0 -0
  93. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/registry.py +0 -0
  94. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
  95. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/selections.py +0 -0
  96. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/tables.py +0 -0
  97. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
  98. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/events.py +0 -0
  99. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/fast_delimited.py +0 -0
  100. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/formats.py +0 -0
  101. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/governors.py +0 -0
  102. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
  103. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
  104. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
  105. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
  106. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
  107. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
  108. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
  109. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
  110. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
  111. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
  112. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
  113. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_run_worker.py +0 -0
  114. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
  115. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_session_worker.py +0 -0
  116. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
  117. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
  118. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -0
  119. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
  120. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -0
  121. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/hosted_worker.py +0 -0
  122. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/incremental_slice_executor.py +0 -0
  123. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/incremental_worker.py +0 -0
  124. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
  125. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
  126. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
  127. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
  128. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
  129. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ingestion/store.py +0 -0
  130. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/inprocess_acquisition.py +0 -0
  131. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/key_seam.py +0 -0
  132. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
  133. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/local_contracts.py +0 -0
  134. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
  135. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
  136. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
  137. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
  138. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/document.py +0 -0
  139. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
  140. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
  141. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
  142. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
  143. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
  144. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
  145. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
  146. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
  147. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
  148. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
  149. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/status.py +0 -0
  150. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
  151. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/notebook.py +0 -0
  152. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/offline.py +0 -0
  153. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/operation_registry.py +0 -0
  154. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/operator_setup.py +0 -0
  155. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/part_check_evidence.py +0 -0
  156. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/pipeline.py +0 -0
  157. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/plan_graph.py +0 -0
  158. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
  159. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
  160. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/engine.py +0 -0
  161. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/errors.py +0 -0
  162. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/gates.py +0 -0
  163. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/joins.py +0 -0
  164. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/profile.py +0 -0
  165. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/table.py +0 -0
  166. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
  167. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/progress_events.py +0 -0
  168. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/__init__.py +0 -0
  169. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
  170. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/budgets.py +0 -0
  171. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/containers.py +0 -0
  172. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/contracts.py +0 -0
  173. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/delimited.py +0 -0
  174. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
  175. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
  176. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
  177. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
  178. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
  179. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
  180. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
  181. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
  182. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
  183. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
  184. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
  185. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
  186. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/html_web_extract.py +0 -0
  187. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
  188. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
  189. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
  190. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
  191. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
  192. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
  193. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
  194. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
  195. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
  196. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
  197. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
  198. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
  199. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
  200. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
  201. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/registry.py +0 -0
  202. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
  203. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  204. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
  205. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  206. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
  207. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  208. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
  209. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  210. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
  211. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  212. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
  213. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  214. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
  215. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  216. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
  217. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
  218. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
  219. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
  220. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
  221. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -0
  222. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -0
  223. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
  224. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
  225. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
  226. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
  227. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
  228. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
  229. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
  230. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
  231. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
  232. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
  233. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
  234. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
  235. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
  236. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
  237. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -0
  238. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -0
  239. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
  240. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
  241. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
  242. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
  243. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
  244. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
  245. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
  246. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
  247. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
  248. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
  249. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
  250. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
  251. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
  252. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
  253. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
  254. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
  255. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
  256. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
  257. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
  258. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
  259. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
  260. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
  261. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
  262. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
  263. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
  264. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +0 -0
  265. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/himawari-hsd-b13-complete.zip +0 -0
  266. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
  267. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
  268. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
  269. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
  270. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
  271. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
  272. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
  273. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
  274. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
  275. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
  276. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
  277. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
  278. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
  279. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
  280. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
  281. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
  282. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
  283. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
  284. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
  285. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
  286. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  287. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -0
  288. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  289. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  290. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  291. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  292. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
  293. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
  294. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  295. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
  296. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  297. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
  298. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  299. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
  300. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  301. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
  302. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
  303. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
  304. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
  305. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
  306. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
  307. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
  308. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
  309. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
  310. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
  311. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
  312. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
  313. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/samples.py +0 -0
  314. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific.py +0 -0
  315. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
  316. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
  317. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
  318. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
  319. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
  320. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
  321. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
  322. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
  323. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
  324. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
  325. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
  326. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
  327. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
  328. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
  329. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
  330. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
  331. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
  332. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
  333. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
  334. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
  335. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
  336. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
  337. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
  338. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/tabular.py +0 -0
  339. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/vector.py +0 -0
  340. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
  341. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
  342. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
  343. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/recipe.py +0 -0
  344. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/review.py +0 -0
  345. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/rowset.py +0 -0
  346. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/session_probes.py +0 -0
  347. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/signing.py +0 -0
  348. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/skill_assets.py +0 -0
  349. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/source_bootstrap.py +0 -0
  350. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/source_bundle_writer.py +0 -0
  351. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/source_discovery.py +0 -0
  352. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/source_history_candidate_child.py +0 -0
  353. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/source_history_transform_child.py +0 -0
  354. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/source_inventory.py +0 -0
  355. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/source_raw_inventory.py +0 -0
  356. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/source_state_index.py +0 -0
  357. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/__init__.py +0 -0
  358. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
  359. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/adapters.py +0 -0
  360. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
  361. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
  362. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -0
  363. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/cadence.py +0 -0
  364. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
  365. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
  366. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
  367. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
  368. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
  369. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
  370. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
  371. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
  372. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
  373. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
  374. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
  375. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
  376. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
  377. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
  378. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
  379. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
  380. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
  381. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
  382. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
  383. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
  384. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
  385. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
  386. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
  387. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
  388. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
  389. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
  390. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
  391. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
  392. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
  393. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
  394. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
  395. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
  396. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
  397. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
  398. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
  399. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
  400. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
  401. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
  402. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
  403. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/collections.py +0 -0
  404. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/contracts.py +0 -0
  405. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/dataset.py +0 -0
  406. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/deletion.py +0 -0
  407. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
  408. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/fitness.py +0 -0
  409. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/governance.py +0 -0
  410. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/hosted.py +0 -0
  411. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/integration.py +0 -0
  412. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
  413. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/registry.py +0 -0
  414. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
  415. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
  416. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/sports.py +0 -0
  417. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream.py +0 -0
  418. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
  419. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
  420. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
  421. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
  422. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
  423. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
  424. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
  425. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
  426. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
  427. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
  428. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
  429. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
  430. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
  431. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
  432. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
  433. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
  434. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
  435. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
  436. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
  437. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
  438. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
  439. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
  440. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_rotation.py +0 -0
  441. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
  442. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
  443. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
  444. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
  445. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
  446. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/stream_order_vector.py +0 -0
  447. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/stream_recovery_objects.py +0 -0
  448. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/stream_segment_spill.py +0 -0
  449. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
  450. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -0
  451. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/stream_subscription_worker.py +0 -0
  452. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/stream_venue.py +0 -0
  453. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
  454. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/studio_subscription_control.py +0 -0
  455. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/table_manifest.py +0 -0
  456. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/table_parts.py +0 -0
  457. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/table_profile.py +0 -0
  458. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/__init__.py +0 -0
  459. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/acquire.py +0 -0
  460. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  461. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/activity.py +0 -0
  462. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  463. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/commands.py +0 -0
  464. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/download.py +0 -0
  465. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  466. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/parity.py +0 -0
  467. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/probe.py +0 -0
  468. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/propose.py +0 -0
  469. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/recipe.py +0 -0
  470. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/research.py +0 -0
  471. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/router.py +0 -0
  472. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/runs.py +0 -0
  473. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/session.py +0 -0
  474. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/stream.py +0 -0
  475. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
  476. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/transport.py +0 -0
  477. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4.py +0 -0
  478. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
  479. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
  480. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
  481. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
  482. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
  483. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
  484. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
  485. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
  486. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
  487. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
  488. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
  489. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
  490. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
  491. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/unit_flow.py +0 -0
  492. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/units.py +0 -0
  493. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  494. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/attendance.py +0 -0
  495. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/clarification.py +0 -0
  496. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  497. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
  498. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
  499. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
  500. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
  501. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
  502. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
  503. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  504. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
  505. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  506. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  507. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  508. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  509. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/headline.py +0 -0
  510. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
  511. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/local_review.py +0 -0
  512. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/login.py +0 -0
  513. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  514. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
  515. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/readers.py +0 -0
  516. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/ux/render.py +0 -0
  517. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_acquisition.py +0 -0
  518. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
  519. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_closed_source.py +0 -0
  520. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
  521. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
  522. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_recipe.py +0 -0
  523. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_required_controls.py +0 -0
  524. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
  525. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_stream_recording.py +0 -0
  526. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_transform.py +0 -0
  527. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/v4_window.py +0 -0
  528. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
  529. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
  530. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
  531. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
  532. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
  533. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
  534. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
  535. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/store.py +0 -0
  536. {mostlyright_data-0.15.2 → mostlyright_data-0.15.3}/src/mostlyright/data_harness/visual_run/transport.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mostlyright-data
3
- Version: 0.15.2
3
+ Version: 0.15.3
4
4
  Summary: Mostly Right CLI for reproducible, reviewed Parquet datasets
5
5
  Project-URL: Homepage, https://mostlyright.md/
6
6
  Project-URL: Documentation, https://mostlyright.md/docs/guides/cli/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mostlyright-data"
3
- version = "0.15.2"
3
+ version = "0.15.3"
4
4
  description = "Mostly Right CLI for reproducible, reviewed Parquet datasets"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13,<3.14"
@@ -84,6 +84,9 @@ mr-data-generic-api = "mostlyright.data_harness.thin.workers:generic_api_probe_m
84
84
  mr-data-session-worker = "mostlyright.data_harness.thin.workers:session_worker_main"
85
85
  mr-data-session-worker-job = "mostlyright.data_harness.thin.workers:session_worker_job_main"
86
86
  mr-data-ingestion-job = "mostlyright.data_harness.thin.workers:ingestion_job_main"
87
+ # The shared, persistent executor for bounded incremental refreshes. Unlike the
88
+ # segment-delivery Job above, it claims a run directly and has no task-specific argv.
89
+ mr-data-ingestion-worker = "mostlyright.data_harness.thin.workers:ingestion_worker_main"
87
90
  # The hosted stream venue's recorder. It runs from the same worker runtime the producer and
88
91
  # the ingestion Job run from -- the install stage puts every console script in the image and
89
92
  # that stage deletes none of them -- so this entry is the whole of what a new job shape needs.
@@ -0,0 +1,238 @@
1
+ """Persistent executor for Studio-admitted bounded direct refreshes.
2
+
3
+ This worker deliberately owns no session, tenant, queue selector or long-lived Studio
4
+ capability. Each poll presents only its workload identity to the closed ingestion-pop
5
+ route; Studio selects an already-admitted run and returns a fresh run-scoped producer
6
+ capability. ``run_v4`` still creates a fresh scratch root for every run, while every
7
+ Reader remains a fresh networkless, address-space-bounded child.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import argparse
13
+ import contextlib
14
+ import logging
15
+ import os
16
+ import signal
17
+ import time
18
+ from collections.abc import Sequence
19
+ from http.server import BaseHTTPRequestHandler, HTTPServer
20
+ from threading import Event, Thread
21
+ from typing import Any
22
+
23
+ from mostlyright.data_harness.hosted_bootstrap import (
24
+ UrlLibBootstrapTransport,
25
+ _https_url,
26
+ _metadata_identity,
27
+ )
28
+ from mostlyright.data_harness.hosted_run_worker import (
29
+ StudioRunCallbacks,
30
+ _assert_bounded_direct_runtime_image,
31
+ _enforce_bounded_direct_runtime_resources,
32
+ _install_termination_handlers,
33
+ _restore_termination_handlers,
34
+ _StageCursor,
35
+ run_v4,
36
+ )
37
+ from mostlyright.data_harness.hosted_session_worker import (
38
+ _claim_poll_interval,
39
+ _claimed_or_empty,
40
+ _V4Internal,
41
+ )
42
+ from mostlyright.data_harness.hosted_worker import (
43
+ HostedWorkerError,
44
+ _new_transfer_client,
45
+ parse_capability,
46
+ )
47
+ from mostlyright.data_harness.run_execution_v4 import (
48
+ RunExecutionError,
49
+ failed_body_for_unparsed,
50
+ parse_run_execution_v4,
51
+ )
52
+
53
+ INGESTION_RUN_CLAIM_PATH = "/internal/v4/ingestion-worker/runs:claim"
54
+ DEFAULT_POLL_SECONDS = 1.0
55
+ MAX_POLL_SECONDS = 60.0
56
+ _LOG = logging.getLogger(__name__)
57
+
58
+
59
+ class _HealthHandler(BaseHTTPRequestHandler):
60
+ def do_GET(self) -> None:
61
+ if self.path not in {"/livez", "/healthz"}:
62
+ self.send_error(404)
63
+ return
64
+ self.send_response(200)
65
+ self.send_header("Content-Length", "0")
66
+ self.end_headers()
67
+
68
+ def log_message(self, _format: str, *_args: object) -> None:
69
+ return
70
+
71
+
72
+ class _HealthServer(HTTPServer):
73
+ """A serial probe listener whose slow client cannot retain the worker at shutdown."""
74
+
75
+ request_queue_size = 8
76
+
77
+ def get_request(self) -> tuple[Any, Any]:
78
+ request, address = super().get_request()
79
+ request.settimeout(2.0)
80
+ return request, address
81
+
82
+
83
+ def _health_server() -> _HealthServer:
84
+ """Serve only Cloud Run liveness; it never reports queue or tenant state."""
85
+
86
+ port = int(os.environ.get("PORT", "8080"))
87
+ server = _HealthServer(("0.0.0.0", port), _HealthHandler)
88
+ Thread(target=server.serve_forever, daemon=True).start()
89
+ return server
90
+
91
+
92
+ def _config_from_environment() -> tuple[str, str]:
93
+ origin = os.environ.get("STUDIO_API_ORIGIN", "")
94
+ audience = os.environ.get("STUDIO_INGESTION_WORKER_AUDIENCE", origin)
95
+ try:
96
+ return _https_url(origin, "STUDIO_API_ORIGIN").rstrip("/"), _https_url(
97
+ audience, "STUDIO_INGESTION_WORKER_AUDIENCE"
98
+ )
99
+ except HostedWorkerError as error:
100
+ raise HostedWorkerError("INGESTION_WORKER_CONFIG_INVALID", error.detail) from error
101
+
102
+
103
+ def run_ingestion_claim_loop(
104
+ *,
105
+ surface: Any,
106
+ transport: Any,
107
+ origin: str,
108
+ stopped: Any,
109
+ sleep: Any = time.sleep,
110
+ execute: Any = run_v4,
111
+ ) -> None:
112
+ """Execute one claimed refresh at a time until the host requests shutdown.
113
+
114
+ Keeping the loop injectable makes its operational guarantees testable: identity/claim
115
+ failures back off, a claim can execute at most once at a time, and only the short-lived
116
+ claim capability reaches callbacks or ``run_v4``. ``run_v4`` owns the per-run scratch
117
+ directory and removes it on both terminal paths.
118
+ """
119
+
120
+ interval = DEFAULT_POLL_SECONDS
121
+ while not stopped():
122
+ try:
123
+ answer = surface.post(
124
+ INGESTION_RUN_CLAIM_PATH,
125
+ {},
126
+ route=INGESTION_RUN_CLAIM_PATH,
127
+ )
128
+ interval = min(MAX_POLL_SECONDS, _claim_poll_interval(answer, interval))
129
+ claimed = _claimed_or_empty(answer, route=INGESTION_RUN_CLAIM_PATH, kind="run")
130
+ if claimed is None:
131
+ sleep(interval)
132
+ continue
133
+ raw_run = claimed.get("run")
134
+ token = claimed.get("capability_token")
135
+ if not isinstance(raw_run, dict) or not isinstance(token, str) or not token:
136
+ raise HostedWorkerError(
137
+ "V4_CLAIM_ANSWER_INVALID",
138
+ "ingestion claim omitted its run-scoped capability or run document",
139
+ )
140
+ # Do not let an arbitrary claim string reach Authorization. Build callbacks from
141
+ # the raw document before parsing so a malformed claim can promptly terminalize its
142
+ # own lease, following the ordinary one-shot worker's failure path.
143
+ token = parse_capability(token.encode("ascii"))
144
+ raw_run_id = raw_run.get("run_id")
145
+ raw_attempt = raw_run.get("attempt")
146
+ callbacks = StudioRunCallbacks(
147
+ base_url=origin,
148
+ token=token,
149
+ transport=transport,
150
+ run_id=raw_run_id if isinstance(raw_run_id, str) else "",
151
+ attempt=raw_attempt if type(raw_attempt) is int and raw_attempt >= 1 else 1,
152
+ )
153
+ try:
154
+ job = parse_run_execution_v4(raw_run)
155
+ if job.source_history_protocol != "source-history.v2" or job.mode != "refresh":
156
+ raise HostedWorkerError(
157
+ "V4_CLAIM_ANSWER_INVALID",
158
+ "ingestion claim named a run outside the bounded direct refresh contract",
159
+ )
160
+ # These guards run before run_v4 installs its own failure handler. Run them
161
+ # here as well so a rollout witness mismatch terminalizes promptly instead of
162
+ # waiting for lease recovery.
163
+ _assert_bounded_direct_runtime_image(job)
164
+ _enforce_bounded_direct_runtime_resources(job)
165
+ except Exception:
166
+ body = failed_body_for_unparsed(
167
+ raw_run,
168
+ failure_code="V4_CLAIM_ANSWER_INVALID",
169
+ detail="the ingestion worker rejected its claimed run document",
170
+ failed_stage="acquire",
171
+ )
172
+ if body is not None:
173
+ with contextlib.suppress(Exception):
174
+ callbacks.failed(body)
175
+ raise
176
+ # A platform SIGTERM during a run must enter run_v4's existing typed
177
+ # terminal-report path. The idle handler in ``ingestion_worker_main``
178
+ # is temporarily replaced only for this fresh execution.
179
+ cursor = _StageCursor()
180
+ installed = _install_termination_handlers(cursor)
181
+ try:
182
+ execute(job, token, callbacks=callbacks, base_url=origin, cursor=cursor)
183
+ finally:
184
+ _restore_termination_handlers(installed)
185
+ interval = DEFAULT_POLL_SECONDS
186
+ except RunExecutionError as error:
187
+ if error.code == "WORKER_TERMINATED":
188
+ raise
189
+ _LOG.warning("ingestion run failed after terminal reporting: %s", error.code)
190
+ sleep(interval)
191
+ interval = min(MAX_POLL_SECONDS, max(DEFAULT_POLL_SECONDS, interval * 2))
192
+ except Exception as error:
193
+ # Studio's attempt lease/watchdog owns recovery after a worker disappears;
194
+ # backoff avoids a hot loop while a transient identity or control-plane error clears.
195
+ _LOG.warning("ingestion claim loop failed: %s", type(error).__name__)
196
+ sleep(interval)
197
+ interval = min(MAX_POLL_SECONDS, max(DEFAULT_POLL_SECONDS, interval * 2))
198
+
199
+
200
+ def ingestion_worker_main(argv: Sequence[str] | None = None) -> int:
201
+ """Poll the closed queue and run one fresh deterministic execution per claim."""
202
+
203
+ parser = argparse.ArgumentParser(prog="mr-data-ingestion-worker")
204
+ parser.parse_args(argv)
205
+ origin, audience = _config_from_environment()
206
+ health = _health_server()
207
+ stop = Event()
208
+
209
+ def request_stop(_signum: int, _frame: Any) -> None:
210
+ stop.set()
211
+
212
+ installed: list[tuple[int, Any]] = []
213
+ for signum in (signal.SIGTERM, signal.SIGINT):
214
+ installed.append((signum, signal.signal(signum, request_stop)))
215
+ transport = _new_transfer_client()
216
+ surface = _V4Internal(
217
+ base_url=origin,
218
+ transport=transport,
219
+ identity=lambda: _metadata_identity(UrlLibBootstrapTransport(), audience),
220
+ )
221
+ try:
222
+ run_ingestion_claim_loop(
223
+ surface=surface,
224
+ transport=transport,
225
+ origin=origin,
226
+ stopped=stop.is_set,
227
+ # Event.wait is interrupted by request_stop, unlike time.sleep which
228
+ # resumes after a handled signal on modern Python.
229
+ sleep=stop.wait,
230
+ )
231
+ finally:
232
+ for signum, previous in installed:
233
+ signal.signal(signum, previous)
234
+ with contextlib.suppress(Exception):
235
+ transport.close()
236
+ health.shutdown()
237
+ health.server_close()
238
+ return 0
@@ -598,7 +598,7 @@ class RunSourceHistoryArtifact:
598
598
 
599
599
  @dataclass(frozen=True)
600
600
  class RunSourceHistory:
601
- history_id: UUID
601
+ history_id: str
602
602
  run_id: UUID
603
603
  table_version_id: str
604
604
  candidate_digest: str
@@ -1278,6 +1278,10 @@ _PREDECESSOR_FIELD_SETS = frozenset(
1278
1278
  ("source_snapshot",),
1279
1279
  ("manifest_download_session", "source_snapshot"),
1280
1280
  ("manifest_download_session", "compact_inputs"),
1281
+ # A source-history v1/v2 predecessor may be a table version with neither a
1282
+ # manifest object nor mirrored parts: its retained index is the only
1283
+ # predecessor payload the incremental reader restores.
1284
+ ("source_history",),
1281
1285
  ("manifest_download_session", "source_history"),
1282
1286
  ("manifest_download_session", "compact_inputs", "source_history"),
1283
1287
  # ``parts`` IS THE MANIFEST'S STAND-IN AND NEVER ITS COMPANION. A version composed at a
@@ -1369,7 +1373,7 @@ def _parse_source_history(value: Any, predecessor: Mapping[str, Any]) -> RunSour
1369
1373
  except SourceStateIndexError as error:
1370
1374
  raise _refuse(code, "source history binding is invalid") from error
1371
1375
  return RunSourceHistory(
1372
- _typed(_uuid, value["history_id"], "source_history.history_id", code),
1376
+ _typed(_identifier, value["history_id"], "source_history.history_id", code),
1373
1377
  _typed(_uuid, value["run_id"], "source_history.run_id", code),
1374
1378
  _typed(_identifier, value["table_version_id"], "source_history.table_version_id", code),
1375
1379
  _typed(_digest, value["candidate_digest"], "source_history.candidate_digest", code),
@@ -1960,6 +1964,20 @@ def parse_run_execution_v4(value: Any) -> RunExecution:
1960
1964
  raise _refuse(
1961
1965
  "RUN_PREDECESSOR_INVALID", "source history was not enabled by the job protocol"
1962
1966
  )
1967
+ pure_source_history = has_block and set(value["predecessor"]) == {
1968
+ "run_id",
1969
+ "table_version_id",
1970
+ "candidate_digest",
1971
+ "artifact_download_session",
1972
+ "source_history",
1973
+ }
1974
+ if pure_source_history and (
1975
+ protocol not in {"source-history.v1", "source-history.v2"} or mode != "refresh"
1976
+ ):
1977
+ raise _refuse(
1978
+ "RUN_PREDECESSOR_INVALID",
1979
+ "a source-history-only predecessor is valid only for a refresh",
1980
+ )
1963
1981
  if protocol == "source-history.v2" and "bounded_direct" not in value:
1964
1982
  raise _refuse(
1965
1983
  "BOUNDED_DIRECT_ROUTE_REFUSED", "source-history.v2 requires a bounded direct admission"
@@ -85,7 +85,7 @@ PINNED_OPENAPI_SOURCE_SHA256 = "f2164517534e299f96449659332fc5bc0552fa7f94539c3d
85
85
  #: One line, and it stays one line: ``_replace_exactly`` in the repin matches the whole assignment
86
86
  #: as a literal and refuses on any count but one, so a wrapped constant is a constant the repin can
87
87
  #: no longer rewrite.
88
- PINNED_V4_OPENAPI_SOURCE_SHA256 = "6998ce6d23c893fb425c3589ecaa2daae54c82c1a70de2aafad54d61a0e6d6b0"
88
+ PINNED_V4_OPENAPI_SOURCE_SHA256 = "5d812f2a3009e8206c5404e0c46295f4ce983272f59b45ac666c7efbc0f04f1b"
89
89
 
90
90
  _DIGEST = re.compile(r"^sha256:[0-9a-f]{64}$")
91
91
  _IMAGE_DIGEST = re.compile(r"^[a-z0-9][a-z0-9._/-]{0,254}@sha256:[0-9a-f]{64}$")
@@ -362,6 +362,11 @@ WORKER_ENTRY_POINTS: dict[str, tuple[str, str, str]] = {
362
362
  "ingestion_job_main",
363
363
  "runs one fenced resumable-ingestion delivery inside a backend Cloud Run Job task",
364
364
  ),
365
+ "mr-data-ingestion-worker": (
366
+ "mostlyright.data_harness.hosted_ingestion_worker",
367
+ "ingestion_worker_main",
368
+ "claims and executes bounded direct refreshes from the persistent backend worker pool",
369
+ ),
365
370
  "mr-data-stream-recorder-job": (
366
371
  "mostlyright.data_harness.hosted_stream_recorder_job",
367
372
  "stream_recorder_job_main",
@@ -196,6 +196,10 @@ def ingestion_job_main(argv: Sequence[str] | None = None) -> int:
196
196
  return _dispatch("mr-data-ingestion-job", argv)
197
197
 
198
198
 
199
+ def ingestion_worker_main(argv: Sequence[str] | None = None) -> int:
200
+ return _dispatch("mr-data-ingestion-worker", argv)
201
+
202
+
199
203
  def stream_recorder_job_main(argv: Sequence[str] | None = None) -> int:
200
204
  return _dispatch("mr-data-stream-recorder-job", argv)
201
205
 
@@ -219,6 +223,7 @@ SHIMS = {
219
223
  "mr-data-session-worker": session_worker_main,
220
224
  "mr-data-session-worker-job": session_worker_job_main,
221
225
  "mr-data-ingestion-job": ingestion_job_main,
226
+ "mr-data-ingestion-worker": ingestion_worker_main,
222
227
  "mr-data-stream-recorder-job": stream_recorder_job_main,
223
228
  "mr-data-stream-subscription-worker": stream_subscription_worker_main,
224
229
  }
@@ -234,6 +239,7 @@ __all__ = [
234
239
  "crawler_main",
235
240
  "generic_api_probe_main",
236
241
  "ingestion_job_main",
242
+ "ingestion_worker_main",
237
243
  "producer_main",
238
244
  "run_worker_main",
239
245
  "session_worker_job_main",
@@ -5,7 +5,7 @@ for the commonest failure of all -- pointing a command at a folder that is not t
5
5
  engineering wording reads like a security incident. This module turns a code into the two or three
6
6
  plain sentences that say what happened and what to do next.
7
7
 
8
- There are two layers, because 1839 typed codes across 216 prefixes can reach a person at a
8
+ There are two layers, because 1840 typed codes across 216 prefixes can reach a person at a
9
9
  workbench, and a hand-written sentence for each one would be neither affordable nor honest:
10
10
 
11
11
  * **Families.** Every code prefix is assigned to a family. A family is one paragraph: what this