mostlyright-data 0.17.1__tar.gz → 0.17.2__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 (546) hide show
  1. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/PKG-INFO +4 -3
  2. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/README.md +3 -2
  3. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/pyproject.toml +1 -1
  4. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/skills/mr-data-build/SKILL.md +101 -42
  5. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/declared_checks.py +1 -1
  6. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/delta_checks.py +2 -1
  7. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/delta_recompute.py +2 -2
  8. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/delta_rows.py +6 -2
  9. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_run_worker.py +228 -106
  10. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_worker.py +47 -36
  11. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/rowset.py +18 -0
  12. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/run_phase_timing.py +17 -9
  13. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/table_parts.py +1 -16
  14. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/router.py +5 -4
  15. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4.py +5 -4
  16. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_artifacts.py +408 -29
  17. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_query.py +105 -6
  18. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_runs.py +2 -1
  19. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_tables.py +14 -10
  20. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/vocabulary.py +5 -4
  21. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/remediation.py +1 -1
  22. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/.gitignore +0 -0
  23. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/scripts/hatch_build.py +0 -0
  24. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/skills/mr-data-build/agents/openai.yaml +0 -0
  25. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
  26. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
  27. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/__init__.py +0 -0
  28. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
  29. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
  30. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
  31. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
  32. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
  33. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
  34. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
  35. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
  36. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
  37. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
  38. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
  39. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
  40. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
  41. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
  42. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
  43. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
  44. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
  45. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
  46. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
  47. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
  48. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
  49. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
  50. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
  51. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
  52. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
  53. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
  54. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
  55. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
  56. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
  57. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
  58. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
  59. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
  60. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
  61. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
  62. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
  63. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
  64. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
  65. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/__init__.py +0 -0
  66. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
  67. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -0
  68. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/http.py +0 -0
  69. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
  70. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
  71. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
  72. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
  73. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
  74. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/sandbox_bootstrap.py +0 -0
  75. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
  76. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/agent_runtime.py +0 -0
  77. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
  78. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/backends/__init__.py +0 -0
  79. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
  80. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
  81. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/backends/protocol.py +0 -0
  82. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/backends/reference.py +0 -0
  83. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/backends/registry.py +0 -0
  84. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
  85. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/bounded_query.py +0 -0
  86. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/bounded_scratch_sink.py +0 -0
  87. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/canonical.py +0 -0
  88. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/catalog_job.py +0 -0
  89. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/cli.py +0 -0
  90. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/compact_worker.py +0 -0
  91. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/contracts.py +0 -0
  92. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/coordinator.py +0 -0
  93. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/crosswalks.py +0 -0
  94. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/delta.py +0 -0
  95. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/delta_classifier.py +0 -0
  96. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/delta_persist.py +0 -0
  97. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/deploy.py +0 -0
  98. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/deploy_target.py +0 -0
  99. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
  100. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/__init__.py +0 -0
  101. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
  102. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/capture.py +0 -0
  103. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/contracts.py +0 -0
  104. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/lane.py +0 -0
  105. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/ocr.py +0 -0
  106. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/pdf.py +0 -0
  107. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/registry.py +0 -0
  108. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
  109. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/selections.py +0 -0
  110. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/tables.py +0 -0
  111. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
  112. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/events.py +0 -0
  113. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/fast_delimited.py +0 -0
  114. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/fetch_egress_smoke.py +0 -0
  115. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/formats.py +0 -0
  116. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/governors.py +0 -0
  117. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
  118. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
  119. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
  120. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
  121. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
  122. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
  123. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
  124. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
  125. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
  126. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
  127. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_ingestion_worker.py +0 -0
  128. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
  129. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
  130. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_session_worker.py +0 -0
  131. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
  132. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
  133. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -0
  134. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
  135. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -0
  136. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/incremental_slice_executor.py +0 -0
  137. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/incremental_worker.py +0 -0
  138. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
  139. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
  140. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
  141. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
  142. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
  143. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ingestion/store.py +0 -0
  144. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/inprocess_acquisition.py +0 -0
  145. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/key_seam.py +0 -0
  146. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
  147. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/local_contracts.py +0 -0
  148. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
  149. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
  150. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
  151. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
  152. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/document.py +0 -0
  153. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
  154. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
  155. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
  156. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
  157. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
  158. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
  159. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
  160. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
  161. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
  162. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
  163. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/status.py +0 -0
  164. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
  165. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/notebook.py +0 -0
  166. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/offline.py +0 -0
  167. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/operation_registry.py +0 -0
  168. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/operator_setup.py +0 -0
  169. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/part_check_evidence.py +0 -0
  170. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/pipeline.py +0 -0
  171. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/plan_graph.py +0 -0
  172. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
  173. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
  174. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/engine.py +0 -0
  175. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/errors.py +0 -0
  176. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/gates.py +0 -0
  177. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/joins.py +0 -0
  178. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/profile.py +0 -0
  179. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/table.py +0 -0
  180. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
  181. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/progress_events.py +0 -0
  182. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/__init__.py +0 -0
  183. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
  184. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/budgets.py +0 -0
  185. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/containers.py +0 -0
  186. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/contracts.py +0 -0
  187. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/delimited.py +0 -0
  188. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
  189. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
  190. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
  191. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
  192. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
  193. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
  194. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
  195. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
  196. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
  197. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
  198. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
  199. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
  200. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/html_web_extract.py +0 -0
  201. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
  202. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
  203. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
  204. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
  205. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
  206. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
  207. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
  208. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
  209. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
  210. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
  211. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
  212. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
  213. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
  214. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
  215. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/registry.py +0 -0
  216. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
  217. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  218. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
  219. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  220. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
  221. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  222. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
  223. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  224. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
  225. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  226. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
  227. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  228. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
  229. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  230. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
  231. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
  232. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
  233. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
  234. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
  235. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -0
  236. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -0
  237. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
  238. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
  239. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
  240. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
  241. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
  242. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
  243. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
  244. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
  245. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
  246. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
  247. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
  248. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
  249. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
  250. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
  251. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -0
  252. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -0
  253. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
  254. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
  255. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
  256. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
  257. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
  258. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
  259. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
  260. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
  261. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
  262. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
  263. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
  264. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
  265. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
  266. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
  267. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
  268. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
  269. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
  270. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
  271. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
  272. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
  273. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
  274. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
  275. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
  276. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
  277. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
  278. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +0 -0
  279. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/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
  280. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
  281. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
  282. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
  283. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
  284. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
  285. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
  286. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
  287. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
  288. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
  289. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
  290. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
  291. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
  292. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
  293. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
  294. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
  295. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
  296. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
  297. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
  298. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
  299. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
  300. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  301. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -0
  302. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  303. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  304. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  305. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  306. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
  307. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
  308. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  309. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
  310. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  311. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
  312. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  313. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
  314. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  315. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
  316. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
  317. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
  318. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
  319. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
  320. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
  321. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
  322. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
  323. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
  324. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
  325. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
  326. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
  327. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/samples.py +0 -0
  328. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific.py +0 -0
  329. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
  330. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
  331. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
  332. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
  333. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
  334. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
  335. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
  336. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
  337. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
  338. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
  339. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
  340. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
  341. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
  342. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
  343. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
  344. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
  345. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
  346. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
  347. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
  348. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
  349. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
  350. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
  351. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
  352. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/tabular.py +0 -0
  353. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/vector.py +0 -0
  354. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
  355. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
  356. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
  357. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/recipe.py +0 -0
  358. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/review.py +0 -0
  359. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/run_execution_v4.py +0 -0
  360. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/session_probes.py +0 -0
  361. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/signing.py +0 -0
  362. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/skill_assets.py +0 -0
  363. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_bootstrap.py +0 -0
  364. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_bundle_writer.py +0 -0
  365. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_discovery.py +0 -0
  366. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_history_candidate_child.py +0 -0
  367. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_history_transform_child.py +0 -0
  368. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_inventory.py +0 -0
  369. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_partition.py +0 -0
  370. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_raw_inventory.py +0 -0
  371. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/source_state_index.py +0 -0
  372. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/__init__.py +0 -0
  373. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
  374. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/adapters.py +0 -0
  375. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
  376. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
  377. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -0
  378. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/cadence.py +0 -0
  379. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
  380. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
  381. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
  382. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
  383. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
  384. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
  385. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
  386. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
  387. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
  388. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
  389. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
  390. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
  391. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
  392. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
  393. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
  394. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
  395. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
  396. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
  397. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
  398. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
  399. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
  400. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
  401. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
  402. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
  403. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
  404. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
  405. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
  406. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
  407. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
  408. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
  409. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
  410. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
  411. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
  412. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
  413. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
  414. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
  415. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
  416. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
  417. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
  418. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/collections.py +0 -0
  419. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/contracts.py +0 -0
  420. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/dataset.py +0 -0
  421. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/deletion.py +0 -0
  422. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
  423. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/fitness.py +0 -0
  424. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/governance.py +0 -0
  425. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/hosted.py +0 -0
  426. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/integration.py +0 -0
  427. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
  428. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/registry.py +0 -0
  429. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
  430. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
  431. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/sports.py +0 -0
  432. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream.py +0 -0
  433. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
  434. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
  435. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
  436. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
  437. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
  438. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
  439. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
  440. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
  441. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
  442. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
  443. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
  444. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
  445. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
  446. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
  447. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
  448. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
  449. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
  450. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
  451. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
  452. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
  453. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
  454. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
  455. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_rotation.py +0 -0
  456. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
  457. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
  458. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
  459. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
  460. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
  461. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/stream_order_vector.py +0 -0
  462. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/stream_recovery_objects.py +0 -0
  463. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/stream_segment_spill.py +0 -0
  464. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
  465. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -0
  466. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/stream_subscription_worker.py +0 -0
  467. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/stream_venue.py +0 -0
  468. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
  469. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/studio_boundary.py +0 -0
  470. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/studio_subscription_control.py +0 -0
  471. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/table_manifest.py +0 -0
  472. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/table_profile.py +0 -0
  473. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/__init__.py +0 -0
  474. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/acquire.py +0 -0
  475. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  476. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/activity.py +0 -0
  477. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  478. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/commands.py +0 -0
  479. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/download.py +0 -0
  480. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  481. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/parity.py +0 -0
  482. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/probe.py +0 -0
  483. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/propose.py +0 -0
  484. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/recipe.py +0 -0
  485. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/research.py +0 -0
  486. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/runs.py +0 -0
  487. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/session.py +0 -0
  488. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/stream.py +0 -0
  489. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
  490. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/transport.py +0 -0
  491. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
  492. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
  493. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
  494. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
  495. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
  496. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
  497. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
  498. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/thin/workers.py +0 -0
  499. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
  500. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
  501. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/unit_flow.py +0 -0
  502. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/units.py +0 -0
  503. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  504. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/attendance.py +0 -0
  505. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/clarification.py +0 -0
  506. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  507. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
  508. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
  509. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
  510. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
  511. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
  512. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
  513. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  514. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
  515. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  516. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  517. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  518. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  519. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/headline.py +0 -0
  520. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
  521. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/local_review.py +0 -0
  522. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/login.py +0 -0
  523. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  524. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
  525. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/readers.py +0 -0
  526. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/ux/render.py +0 -0
  527. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_acquisition.py +0 -0
  528. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
  529. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_closed_source.py +0 -0
  530. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
  531. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
  532. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_recipe.py +0 -0
  533. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_required_controls.py +0 -0
  534. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
  535. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_stream_recording.py +0 -0
  536. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_transform.py +0 -0
  537. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/v4_window.py +0 -0
  538. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
  539. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
  540. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
  541. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
  542. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
  543. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
  544. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
  545. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/store.py +0 -0
  546. {mostlyright_data-0.17.1 → mostlyright_data-0.17.2}/src/mostlyright/data_harness/visual_run/transport.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mostlyright-data
3
- Version: 0.17.1
3
+ Version: 0.17.2
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/
@@ -233,8 +233,9 @@ supported source, with snapshot comparison and recomputation rather than a claim
233
233
  rows were fetched. Recorded streams use their registered capture and continuation semantics.
234
234
 
235
235
  See [Recipe documents](docs/RECIPE-DOCUMENT.md) for source-window and bootstrap contracts.
236
- `mr-data promote TABLE_ID` requests publication; claim a table is live and current only when
237
- Studio returns that evidence.
236
+ A table's first succeeded run goes live on its own, whatever mode it was; `mr-data promote
237
+ TABLE_ID` records how often it refreshes and why, and puts back a table that was withdrawn. Claim
238
+ a table is live and current only when Studio returns that evidence.
238
239
 
239
240
  ## There is no local execution
240
241
 
@@ -70,8 +70,9 @@ supported source, with snapshot comparison and recomputation rather than a claim
70
70
  rows were fetched. Recorded streams use their registered capture and continuation semantics.
71
71
 
72
72
  See [Recipe documents](docs/RECIPE-DOCUMENT.md) for source-window and bootstrap contracts.
73
- `mr-data promote TABLE_ID` requests publication; claim a table is live and current only when
74
- Studio returns that evidence.
73
+ A table's first succeeded run goes live on its own, whatever mode it was; `mr-data promote
74
+ TABLE_ID` records how often it refreshes and why, and puts back a table that was withdrawn. Claim
75
+ a table is live and current only when Studio returns that evidence.
75
76
 
76
77
  ## There is no local execution
77
78
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mostlyright-data"
3
- version = "0.17.1"
3
+ version = "0.17.2"
4
4
  description = "Mostly Right CLI for reproducible, reviewed Parquet datasets"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13,<3.14"
@@ -86,6 +86,11 @@ Read this document in two parts. Everything except [Not hosted yet](#not-hosted-
86
86
  commands this product runs. [Not hosted yet](#not-hosted-yet) is the internal capability map for
87
87
  the one command with no implementation behind it.
88
88
 
89
+ Every `../../docs/NAME.md` below names a file in the `mostlyrightmd/mostlyright-data-harness`
90
+ repository. This document is installed on its own, so those are references and not links you can
91
+ follow from here: everything you need to run a build is in this file, and each of them is the
92
+ longer reference behind one section of it.
93
+
89
94
  ## One install
90
95
 
91
96
  | Install | What runs |
@@ -124,15 +129,15 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
124
129
  | `mr-data receipt` | Print what one run recorded about how it was built: every source it fetched and what those bytes hashed to, the coverage it delivered, and the members of its raw snapshot. |
125
130
  | `mr-data checks` | Report how each check the recipe declared came out — the name, whether it passed, what it found. Exits non-zero when one did not pass. |
126
131
  | `mr-data note` | Write one cell of a run's decision record — a heading, a body, and the typed blocks that carry a source, a decision or a clarification onto the stage its phase names. The body comes from `--markdown-file FILE`, which is the form to use; standard input is read when no file is named and is refused when it is a terminal or empty. `--list` reads back what is written. |
127
- | `mr-data download` | Bring one run's artifacts back to this computer, each one's bytes checked against the digest Studio sealed them under. `--kind` selects out of `table_parquet`, `table_manifest`, `table_part`, `column_profile`, `preview`, `receipt` and `raw_snapshot`; without it, the table and the receipt — and for a run whose table is a manifest over parts, the manifest, its parts and the receipt, written as `table/manifest.json` beside `table/parts/<part_key>.parquet`. |
132
+ | `mr-data download` | Bring one run's artifacts back to this computer, each one's bytes checked against the digest Studio sealed them under. `--kind` selects out of `table_parquet`, `table_manifest`, `table_part`, `column_profile`, `preview`, `receipt` and `raw_snapshot`; without it, the shape the run sealed — one file and the receipt for a table written whole, or the manifest, EVERY part the version names and the receipt for a table made of parts, written as `table/manifest.json` beside `table/parts/<part_key>.parquet`. A version composed over several refreshes names parts earlier runs sealed; those are fetched too, and a part that cannot be fetched refuses by name rather than leaving a folder holding part of a table. |
128
133
  | `mr-data verify` | Hold one run's sealed table manifest against the parts it names, and report every disagreement. Without `--deep` it fetches the manifest alone; with `--deep` it fetches every part the run sealed and re-hashes it against the digest the manifest states. Exits non-zero when anything disagrees. |
129
- | `mr-data parts` | List one table version's parts — the identifier, the row count, the byte size and the recorded bounds of each — so a training loader can shard them across workers and read a table no single file should hold. `--version` names a version rather than the live one, and `--from`/`--to` keep only the parts a value range cannot rule out. Nothing is downloaded by listing them; see [training loaders](../../docs/TRAINING-LOADERS.md) for the pattern. |
134
+ | `mr-data parts` | List one table version's parts — the identifier, the row count, the byte size and the recorded bounds of each — so a training loader can shard them across workers and read a table no single file should hold. `--version` names a version rather than the live one, and `--from`/`--to` keep only the parts a value range cannot rule out. Nothing is downloaded by listing them; the pattern is under [Reading a table that is made of parts](#reading-a-table-that-is-made-of-parts). |
130
135
  | `mr-data diff` | Compare two runs and say what changed. |
131
136
  | `mr-data connections` | List saved workspace connections and their current recipe coordinates; `--dataset ID` filters to connections granted to that dataset. No credential values are returned. |
132
137
  | `mr-data keys` | Enrol a source credential by name, list the names with their created and rotated times, and delete one. `keys set` reads the value from a file or from standard input and never from the command line; no command prints a value back. |
133
138
  | `mr-data stream` | Record a public `wss://` venue so a build can read it. `stream document register --file F` admits the connector document, `stream registry create --digest D` admits a set of them, `stream probe` listens briefly and seals nothing, `stream capture --seconds N` records a bounded window, `stream subscribe` keeps recording, `stream subscription {show|pause|resume|stop} ID` moves one, `stream status ID` reads a capture or a probe, and `stream recordings --document-digest D` names what a build could read and until when. `--seconds` is at most 600. `mr-data run` takes no duration: a build reads sealed batches and is bounded by them. |
134
139
  | `mr-data open` | Mint a single-use, short-lived address that continues this session in a browser at one dashboard path, and print it. `--open` hands it to the platform opener. The credential decides who mints: a device credential — what `mr-data login` stores — mints at Cloud, and a personal access token mints at Studio. |
135
- | `mr-data promote` | Ask Studio to publish one table after a person's decision. The Harness worker does not perform the catch-up or scheduled refresh; report those only when another deployed component returns durable evidence that it did. |
140
+ | `mr-data promote` | Record the cadence one table refreshes on and the reasoning behind it. A table's first succeeded run goes live on its own, so this is not what makes it readable; it is idempotent on a table that is already live, and it is how a withdrawn table is put back. The Harness worker does not perform the catch-up or scheduled refresh; report those only when another deployed component returns durable evidence that it did. |
136
141
  | `mr-data reschedule` | Change how often one live table refreshes, without the demote and promote that would reset its bookkeeping and buy a catch-up run. `--cadence` takes a cron expression or an interval such as `every 6h`; `--why` records the reasoning. It starts no run. `--lock` freezes the schedule so Studio stops adjusting it; `--unlock` lets it follow the source again. |
137
142
  | `mr-data table` | Report what one table is serving and how its refresh schedule is going: the state in plain words, the schedule in force, the next refresh, the schedule that was asked for and the reason given for it, and — once Studio has settled on one — the interval it measured and how many source updates that rests on. `table rename TABLE --name NAME` writes a new name, lowercase snake_case and unique within its dataset, fenced on that dataset's version and retried once if somebody else wrote first; nothing is rebuilt, because every run, version and schedule hangs off the identifier, which does not move. `table archive TABLE --confirm-name NAME` retires one table you name by the name it is called, and frees that name; a live table is refused until you `demote` it, and nothing built is deleted. `table archive TABLE [TABLE ...] --confirm DELETE` retires as many tables as you name at once: `DELETE` is the literal word, typed exactly, and it confirms the identifiers you typed rather than a name, so each table is retired under the name Studio is holding for it. Every table is attempted whatever the one before it answered, one line is printed for each, and the command exits non-zero if any was not retired — so read the outcome of each rather than the exit code alone. `--confirm-name` is refused when you name more than one table. |
138
143
  | `mr-data pin` | Ask Studio to freeze one table pointer on an exact version, for a rollback or a hold. |
@@ -239,8 +244,8 @@ them: a sample that came back complete IS the table a full run would have sealed
239
244
  nothing to build again and nothing to ask about — only a TRUNCATED sample sends you round the
240
245
  loop. Nothing between a run finishing and reading it is held for a person,
241
246
  so there is no approval to seek, no separate body of evidence to read back, and no state to wait
242
- for; the only human gate in the product is [Promote](#promote), which comes after the loop has
243
- produced a table worth making live.
247
+ for. A table's first succeeded run goes live on its own, whatever mode it was, and what is left
248
+ for a person is [Promote](#promote) — the cadence it refreshes on and the reasoning behind it.
244
249
 
245
250
  **The page is the work, and it exists first.** A dataset used to come into being as a side effect
246
251
  of registering a recipe, which meant nothing was visible until every decision that fills the page
@@ -877,6 +882,19 @@ The refusals are cheap and legible by design, so read the code rather than retry
877
882
  | `QUERY_TIMEOUT` | The statement outran its deadline. |
878
883
  | `QUERY_TABLE_UNAVAILABLE` | The run has no readable table — it did not succeed, or its artifact is not there. |
879
884
  | `QUERY_NO_WARM_EXECUTOR` | No warm worker holds this workspace. `mr-data query` answers it by opening a research session for the run's dataset, asking, and closing it; with `--no-session` the refusal is printed instead, carrying a retry window. |
885
+ | `QUERY_TOO_MANY_PARTS` | The question would open more Parquet parts of the version than a bounded read may open. The refusal names how many were selected and what the ceiling is. |
886
+
887
+ **A wide table is narrowed before it is asked, not after.** A table version is many Parquet parts,
888
+ and a bounded read may open only so many of them, so a question over a long-running table is
889
+ narrowed with `--field` plus `--from`/`--to`, or with `--partition NAME=VALUE`. That block is never
890
+ SQL: Studio evaluates it against the part list before a worker is woken, and a part it cannot prove
891
+ irrelevant is opened, so pruning never drops rows the question would have matched. The bounds are
892
+ the recorded ones `mr-data parts TABLE_ID` prints beside each part.
893
+
894
+ ```sh
895
+ mr-data query RUN "select count(*) from run_table" \
896
+ --field observed_at --from 2026-03-01T00:00:00.000000Z --to 2026-03-02T00:00:00.000000Z
897
+ ```
880
898
 
881
899
  **Studio deliberately does not start a worker on a query.** Scale-to-session is a cost invariant,
882
900
  so the cold start is spent only on a question actually asked: `mr-data query` opens a session for
@@ -895,7 +913,10 @@ network.
895
913
  Check results live in the `receipt` artifact and on the run's own terminal event, not on the run
896
914
  record. `mr-data checks RUN` reads them from where they are and exits non-zero when one did not
897
915
  pass; a check the recipe declared as required does not reach this command at all, because a
898
- required check that fails ends the run with `failure_code: CHECK_FAILED`.
916
+ required check that fails ends the run with `failure_code: CHECK_FAILED`. It also reports
917
+ `checks_scope`, which is the relation the pass covered: `version` means every row of the table the
918
+ run composed, and anything else means the rows that run read and not the ones it inherited. Never
919
+ report "the checks passed" over an append without saying which rows they were about.
899
920
 
900
921
  `mr-data diff RUN_A RUN_B` compares two runs — columns added, removed and retyped, row counts, the
901
922
  coverage window and the data fingerprint. `--columns-only` narrows what is compared to the schema.
@@ -908,6 +929,38 @@ entry. A run whose recipe leaves either out is not finished — the table arrive
908
929
  beside it to say what its numbers mean or what they are measured in — so it is a revision, which
909
930
  is stage 7, and it is registered again before anything is presented.
910
931
 
932
+ #### Reading a table that is made of parts
933
+
934
+ A table version is one manifest document naming immutable Parquet parts of about 128 MiB each, and
935
+ a billion-row table is a few hundred of them. There is no single file to fetch and no flag that
936
+ makes one.
937
+
938
+ ```sh
939
+ mr-data parts TABLE_ID --json # every part of the live version, nothing downloaded
940
+ mr-data parts TABLE_ID --version VERSION_ID
941
+ mr-data download RUN --output DIR # the manifest and every part the version names, on disk
942
+ ```
943
+
944
+ `parts` answers with `table_version_id`, `manifest_digest`, `row_count`, `part_count` and one entry
945
+ per part — `part_id` (the part's own content digest), `part_key`, `record_count`,
946
+ `file_size_in_bytes` and the recorded `lower_bounds`/`upper_bounds` of the fields the table is
947
+ organised by. Nothing is downloaded by listing them.
948
+
949
+ Four rules, and they are the whole pattern:
950
+
951
+ - **Shard by index.** Give each worker the parts whose index modulo the world size is its own; the
952
+ parts are of roughly equal size, so that is a fair split without weighing anything. Open each with
953
+ `pyarrow.parquet.ParquetFile` and iterate its batches, so resident memory is one batch and one row
954
+ group whether the table has a million rows or a billion.
955
+ - **Verify every part.** `part_id` is the sha256 of the part's bytes. The control plane authenticates
956
+ the manifest; the parts are checked by whoever reads them. `mr-data download` and
957
+ `mr-data verify RUN --deep` both do it.
958
+ - **Pin the version for anything reproducible.** Read `table_version_id` and `manifest_digest` out of
959
+ `mr-data parts`, record both, and pass `--version VERSION_ID` from then on. `--version` takes the
960
+ identifier and never the `table_version_number` printed beside it.
961
+ - **Do not assume the part order is the row order.** Parts are ordered by partition, then by the
962
+ first sort field's lower bound, then by the part's own digest. Rows are ordered inside a part.
963
+
911
964
  ### 7. Fix — revise the document and register it again
912
965
 
913
966
  Change the document and send it again. Same dataset, same table, new digest:
@@ -938,19 +991,20 @@ something was cut, and what you have is a shape rather than an answer.
938
991
 
939
992
  **A complete sample is the build. Present it as one.** The mode a run was started in is not what
940
993
  makes a table finished — untruncated coverage is — and calling a complete table "a sample" tells
941
- somebody their dataset does not exist yet when it does. Say what was built and offer the decision
942
- that is actually in front of them, which is whether to make it live:
994
+ somebody their dataset does not exist yet when it does. Say what was built:
943
995
 
944
996
  > Built 43,812 rows from four sources, every source acquired whole and nothing truncated. All four
945
997
  > declared checks passed. This is the table, not a sample of it.
946
998
 
947
- Then offer to enable it, and enable it when they say so — `mr-data promote TABLE_ID --cadence
948
- "every 6h" --why "..."`, which is [Promote](#promote), the one human gate. Do not run the whole
999
+ Say plainly that it is live: the first succeeded run of a table goes live on its own, so there is
1000
+ nothing to run to enable it and nothing to wait for. What is still a person's is the refresh
1001
+ cadence — `mr-data promote TABLE_ID --cadence "every 6h" --why "..."`, which is
1002
+ [Promote](#promote), and which is idempotent on a table that is already live. Do not run the whole
949
1003
  thing again to produce a table you already have.
950
1004
 
951
1005
  **A truncated sample is not the build, and this is where the pause is.** State what the sample
952
1006
  established, name what was cut and on which sources, say what a full run would cover, and ask. This
953
- pause is the second one this document allows alongside the promote decision, and it exists only
1007
+ pause is the second one this document allows alongside the cadence decision, and it exists only
954
1008
  here: a full run over a real window costs real time and real money, and it is a decision about the
955
1009
  user's data rather than about the recipe, so it is theirs and not yours. Only when they say so:
956
1010
 
@@ -1051,9 +1105,9 @@ cite a progress event where a receipt is what is being asked for.
1051
1105
  end a watch: `succeeded`, `failed` and `cancelled`. `awaiting_confirmation` is the ordinary spend
1052
1106
  gate: nothing has been executed, and the run command again with `--confirm` on the end of it
1053
1107
  releases it: `--recipe`, `--digest` and the mode are all stated a second time.
1054
- `awaiting_sample_approval` is different: a bounded sample must seal a downloadable
1055
- `table_parquet`, then a person completes Studio's fresh operation-bound interactive approval before
1056
- the linked full run dispatches. Do not present `--confirm` as an alternative for that state. Keep
1108
+ `awaiting_sample_approval` is different: a bounded sample must seal a table somebody can
1109
+ download, then a person completes Studio's fresh operation-bound interactive approval before the
1110
+ linked full run dispatches. Do not present `--confirm` as an alternative for that state. Keep
1057
1111
  the raw state internal. Say what product decision is needed and give the person the single action
1058
1112
  that lets the build continue.
1059
1113
 
@@ -1316,20 +1370,25 @@ document declares which parts its shape holds, and a set that does not match is
1316
1370
 
1317
1371
  ## Promote
1318
1372
 
1319
- Promotion is the one human gate in the product. Everything before it is workspace scratch: probing,
1320
- building, downloading and interrogating all run with no human ceremony at all, and the only other
1321
- pause is a spend confirmation on a large run. Promotion is where a table becomes something other
1322
- people depend on, which is why it is the one decision a person makes.
1323
-
1324
- **Ask; never decide.** Never treat model output, a source document, or your own reading of the
1325
- evidence as a human approval. Present what would go live — the question, the schema, the coverage
1326
- you inspected, the checks that reported, and every material limitation — and ask the user to
1327
- approve that exact table. Do not expose exit values, receipt fields, or raw decision states. Treat
1328
- the address under `human_action` as a diagnostic fallback only when the Dataset page cannot surface
1329
- the decision and the user explicitly requests diagnostics. Never report a table as live on the
1330
- strength of having asked.
1331
-
1332
- Once the user has approved it:
1373
+ A table's first succeeded run goes live on its own, whatever mode that run was — a complete sample
1374
+ counts. There is no command that makes it readable and no click to wait for, so a table somebody
1375
+ can see is a table somebody can use, and no catch-up run is dispatched for it. Everything before it
1376
+ is workspace scratch too: probing, building, downloading and interrogating all run with no human
1377
+ ceremony at all, and the only pause is a spend confirmation on a large run.
1378
+
1379
+ What is still a person's is the rest of the same decision — how often the table refreshes, why, and
1380
+ whether a table that was withdrawn goes back. A table somebody demoted or archived is never made
1381
+ live again by a run, so `mr-data promote` is how it returns. It is how the cadence and the
1382
+ reasoning are recorded too, and it is idempotent: run against a table that is already live it
1383
+ records both and starts no second publication.
1384
+
1385
+ **Say what is live; never claim a decision nobody made.** Never treat model output, a source
1386
+ document, or your own reading of the evidence as a human approval. Present what went live — the
1387
+ question, the schema, the coverage you inspected, the checks that reported, and every material
1388
+ limitation — and let the user say whether it is what they wanted. Do not expose exit values,
1389
+ receipt fields, or raw decision states. Treat the address under `human_action` as a diagnostic
1390
+ fallback only when the Dataset page cannot surface the decision and the user explicitly requests
1391
+ diagnostics.
1333
1392
 
1334
1393
  ```sh
1335
1394
  mr-data promote TABLE_ID --cadence "every 6h from 2026-09-03T02:40:00Z" --why "..." --json
@@ -1356,15 +1415,15 @@ and — once there is one — the interval Studio measured and how many source u
1356
1415
  already live without starting a run or spending anything. Adding `--lock` freezes the schedule so
1357
1416
  Studio stops adjusting it, which is how a person overrides the evidence; `--unlock` lets it follow
1358
1417
  the source again. Do not lock a schedule on your own judgement — it is the same kind of decision as
1359
- promotion, and it belongs to the user.
1418
+ the cadence itself, and it belongs to the user.
1360
1419
 
1361
- This call is a publication request, not proof of data continuation. The current Harness worker
1420
+ This call records a schedule; it is not proof of data continuation. The current Harness worker
1362
1421
  can execute a supported refresh, including declared source windows, but it does not make a frozen
1363
1422
  date, a generic cursor or a file listing advance by inference. It also does not attach or execute a
1364
1423
  warehouse schedule. Another deployed Studio or warehouse component may do that work, but only its
1365
1424
  returned state and durable run evidence support a claim that the table is live, caught up, or
1366
- refreshing. If that evidence is absent, report that publication was requested and that ongoing
1367
- freshness is unavailable; do not imply that promotion filled the gap.
1425
+ refreshing. If that evidence is absent, report that a schedule was recorded and that ongoing
1426
+ freshness is unavailable; do not imply that recording it filled the gap.
1368
1427
 
1369
1428
  `mr-data pin TABLE_ID --version VERSION_ID` freezes the pointer on an exact version for a rollback
1370
1429
  or a hold, `mr-data unpin TABLE_ID` resumes tracking, and `mr-data demote TABLE_ID` detaches the
@@ -1385,10 +1444,10 @@ run has finished; neither refusal deletes anything, and neither ends the command
1385
1444
  ## Autonomous delivery
1386
1445
 
1387
1446
  Own the run until the requested outcome is delivered: a run that succeeded, its declared checks
1388
- read, its coverage inspected, and a publication request made when the user asked for it. Promotion
1389
- is complete only when Studio returns the resulting live state; catch-up and continuing freshness
1390
- require separate durable evidence from the deployed component that owns them. The allowed user pauses
1391
- are the promote decision, the decision to start a full run after a TRUNCATED sample, and a spend
1447
+ read, its coverage inspected, and its refresh cadence recorded when the user has said what it should
1448
+ be. What is live is what Studio returns as live; catch-up and continuing freshness require separate
1449
+ durable evidence from the deployed component that owns them. The allowed user pauses
1450
+ are the cadence decision, the decision to start a full run after a TRUNCATED sample, and a spend
1392
1451
  confirmation on a run over the threshold. Do not ask the user to choose sources, Readers, engines,
1393
1452
  formats, workspaces, retry tactics, cleaning operations, or validation repairs. Make those
1394
1453
  operational decisions from the question, observed evidence, registered capabilities, and
@@ -1442,10 +1501,10 @@ population, grain, fields, time semantics, and quality target when possible. Whe
1442
1501
  is not supportable, propose the closest useful `supportable_with_limits` contract, state every
1443
1502
  material limitation, and ask the user only to approve or reject that exact contract.
1444
1503
 
1445
- If recovery changes the recipe digest, say so before promoting: what the user approved was a table
1446
- built from an exact document, and a different document is a different table to approve. Register
1447
- the revision, sample it, interrogate it, show the material differences and limitations, and ask for
1448
- the promote decision again.
1504
+ If recovery changes the recipe digest, say so: what the user saw was a table built from an exact
1505
+ document, and a different document is a different table. Register the revision, sample it,
1506
+ interrogate it, and show the material differences and limitations before anyone reads it as the
1507
+ table they asked for.
1449
1508
 
1450
1509
  Never weaken required semantics, checks, rights, security, or authority boundaries to make a run
1451
1510
  pass. Never bypass a Harness refusal with ambient fetching or custom computation. An unavailable
@@ -1787,7 +1846,7 @@ Translate procedure into expertise:
1787
1846
 
1788
1847
  ## Writing a decision record
1789
1848
 
1790
- Whether the record is the reply to the user, the table presented for the promote decision, or a
1849
+ Whether the record is the reply to the user, the table presented for the cadence decision, or a
1791
1850
  research notebook on a full install, the writing rules are the same.
1792
1851
 
1793
1852
  Research markdown is an operator-facing decision record: a technical record, not a tutorial. Give
@@ -1817,6 +1876,6 @@ themselves. Do not present a sequence of unlabeled paragraphs or default to a bu
1817
1876
 
1818
1877
  The floating pill represents only your active work. Start `dataset activity` immediately after creation, update the sentence when your task changes, and renew at least once a minute while you are actively working. The default lease is two minutes. Do not leave a detached heartbeat running after your turn ends. Worker ingestion progress has its own table surface and is not proof that you are working.
1819
1878
 
1820
- When recovering, report what you are trying now; an earlier failed attempt belongs in the record. Before every final handoff, cancellation, or exhausted stop, report `--phase done` with a truthful final sentence (for example, “Dataset ready to explore” or “Stopped before the build completed”). Do this even when tables are not enabled. Only use `waiting_on_you` when you have actually asked for an answer. Promotion does not finish your agent session.
1879
+ When recovering, report what you are trying now; an earlier failed attempt belongs in the record. Before every final handoff, cancellation, or exhausted stop, report `--phase done` with a truthful final sentence (for example, “Dataset ready to explore” or “Stopped before the build completed”). Do this even when tables are not enabled. Only use `waiting_on_you` when you have actually asked for an answer. A table going live does not finish your agent session.
1821
1880
 
1822
1881
  The host opens the dataset before research begins and keeps the same tab. Enable its optional Follow agent control for a watch-along experience; manual scrolling pauses it and must never be overridden.
@@ -1346,7 +1346,7 @@ def _scan_sealed_rows(
1346
1346
  f"{CHECK_SCAN_BUDGET_EXCEEDED}: scan exceeded the "
1347
1347
  f"{scan_budget_seconds}-second ceiling",
1348
1348
  )
1349
- values = {column: batch.column(column).to_pylist() for column in needed}
1349
+ values = {column: rowset.python_values(batch.column(column)) for column in needed}
1350
1350
  for evaluator in evaluators:
1351
1351
  evaluator.consume(values)
1352
1352
  if monotonic() - started > scan_budget_seconds:
@@ -41,6 +41,7 @@ from dataclasses import dataclass
41
41
  from pathlib import Path
42
42
  from typing import Any
43
43
 
44
+ from mostlyright.data_harness import rowset
44
45
  from mostlyright.data_harness.declared_checks import (
45
46
  CHECK_BATCH_ROWS,
46
47
  CheckResult,
@@ -246,7 +247,7 @@ def _fold_replacement(checks: Sequence[DeclaredCheck], rows: Path | Any) -> Mapp
246
247
  for batch in (
247
248
  parquet.iter_batches(batch_size=CHECK_BATCH_ROWS, columns=needed) if needed else ()
248
249
  ):
249
- values = {column: batch.column(column).to_pylist() for column in needed}
250
+ values = {column: rowset.python_values(batch.column(column)) for column in needed}
250
251
  for item in fed.values():
251
252
  item.consume(values)
252
253
  return {_MISSING: missing, **fed} if missing else fed
@@ -52,7 +52,7 @@ from mostlyright.data_harness.sql_transform_engine import (
52
52
  SqlStep,
53
53
  execute_sql_transform,
54
54
  )
55
- from mostlyright.data_harness.table_parts import partition_value
55
+ from mostlyright.data_harness.table_parts import partition_value, python_values
56
56
 
57
57
  __all__ = [
58
58
  "NARROWABLE_FORMATS",
@@ -305,7 +305,7 @@ def _assert_inside(
305
305
  f"the recomputed relation carries no {partition.column} to read its partition from",
306
306
  )
307
307
  for batch in table.to_batches():
308
- for cell in batch.column(index).to_pylist():
308
+ for cell in python_values(batch.column(index)):
309
309
  try:
310
310
  key = partition_value(partition.encoding, logical, cell)
311
311
  except Exception as error:
@@ -39,7 +39,11 @@ from typing import Any
39
39
 
40
40
  from mostlyright.data_harness.run_execution_v4 import RunExecutionError, failure_detail
41
41
  from mostlyright.data_harness.sql_transform_engine import SqlSource, _confined_catalog, _quoted
42
- from mostlyright.data_harness.table_parts import PARTITION_ENCODINGS, partition_value
42
+ from mostlyright.data_harness.table_parts import (
43
+ PARTITION_ENCODINGS,
44
+ partition_value,
45
+ python_values,
46
+ )
43
47
 
44
48
  __all__ = [
45
49
  "DELTA_BATCH_ROWS",
@@ -591,7 +595,7 @@ def _write_delta(
591
595
  counts[str(kind)] = counts.get(str(kind), 0) + 1
592
596
  if keys is None or partition is None:
593
597
  continue
594
- cells = batch.column(batch.schema.get_field_index(partition.column)).to_pylist()
598
+ cells = python_values(batch.column(batch.schema.get_field_index(partition.column)))
595
599
  try:
596
600
  for kind, cell in zip(kinds, cells, strict=True):
597
601
  key = partition_value(partition.encoding, "string", cell)