mostlyright-data 0.10.3__tar.gz → 0.10.4__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 (556) hide show
  1. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/PKG-INFO +1 -1
  2. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/pyproject.toml +1 -1
  3. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/skills/mr-data-build/SKILL.md +80 -6
  4. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/cli.py +6 -0
  5. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/router.py +6 -1
  6. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/vocabulary.py +5 -0
  7. mostlyright_data-0.10.4/src/mostlyright/data_harness/ux/attendance.py +206 -0
  8. mostlyright_data-0.10.4/src/mostlyright/data_harness/ux/clarification.py +358 -0
  9. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/__init__.py +5 -0
  10. mostlyright_data-0.10.4/src/mostlyright/data_harness/ux/commands/clarify.py +183 -0
  11. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/headline.py +1 -0
  12. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/remediation.py +18 -1
  13. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/render.py +21 -0
  14. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/.gitignore +0 -0
  15. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/README.md +0 -0
  16. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/scripts/hatch_build.py +0 -0
  17. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/skills/mr-data-build/agents/openai.yaml +0 -0
  18. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
  19. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
  20. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/__init__.py +0 -0
  21. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
  22. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
  23. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
  24. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
  25. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
  26. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
  27. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
  28. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
  29. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
  30. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
  31. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
  32. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
  33. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
  34. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
  35. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
  36. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
  37. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
  38. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
  39. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
  40. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
  41. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
  42. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
  43. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
  44. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
  45. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
  46. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
  47. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
  48. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
  49. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
  50. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
  51. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
  52. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
  53. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
  54. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
  55. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
  56. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
  57. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
  58. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/__init__.py +0 -0
  59. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
  60. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/acquisition/http.py +0 -0
  61. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
  62. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
  63. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
  64. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
  65. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
  66. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
  67. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/agent_runtime.py +0 -0
  68. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
  69. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/backends/__init__.py +0 -0
  70. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
  71. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
  72. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/backends/protocol.py +0 -0
  73. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/backends/reference.py +0 -0
  74. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/backends/registry.py +0 -0
  75. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
  76. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/bounded_query.py +0 -0
  77. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/canonical.py +0 -0
  78. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/catalog_job.py +0 -0
  79. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/contracts.py +0 -0
  80. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/coordinator.py +0 -0
  81. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/crosswalks.py +0 -0
  82. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/declared_checks.py +0 -0
  83. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/deploy.py +0 -0
  84. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/deploy_target.py +0 -0
  85. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
  86. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/__init__.py +0 -0
  87. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
  88. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/agent_request.py +0 -0
  89. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/capture.py +0 -0
  90. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/contracts.py +0 -0
  91. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/lane.py +0 -0
  92. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/ocr.py +0 -0
  93. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/pdf.py +0 -0
  94. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/registry.py +0 -0
  95. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
  96. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/selections.py +0 -0
  97. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/tables.py +0 -0
  98. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
  99. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/events.py +0 -0
  100. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/fast_delimited.py +0 -0
  101. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/formats.py +0 -0
  102. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/governors.py +0 -0
  103. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
  104. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
  105. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
  106. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
  107. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
  108. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
  109. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_dataset.py +0 -0
  110. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
  111. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_handoff.py +0 -0
  112. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
  113. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
  114. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
  115. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
  116. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_run_worker.py +0 -0
  117. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
  118. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_session_worker.py +0 -0
  119. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
  120. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
  121. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -0
  122. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
  123. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -0
  124. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/hosted_worker.py +0 -0
  125. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
  126. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
  127. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
  128. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
  129. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
  130. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ingestion/store.py +0 -0
  131. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/inprocess_acquisition.py +0 -0
  132. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/key_seam.py +0 -0
  133. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
  134. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/local_contracts.py +0 -0
  135. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/local_search/__init__.py +0 -0
  136. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/local_search/build_index.py +0 -0
  137. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/local_search/contracts.py +0 -0
  138. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/local_search/query_trace.py +0 -0
  139. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/local_search/retrieval.py +0 -0
  140. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/local_search/sealed.py +0 -0
  141. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/local_search/service.py +0 -0
  142. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
  143. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
  144. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
  145. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
  146. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/document.py +0 -0
  147. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
  148. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
  149. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
  150. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
  151. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
  152. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
  153. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
  154. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
  155. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
  156. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
  157. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/status.py +0 -0
  158. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
  159. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/notebook.py +0 -0
  160. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/offline.py +0 -0
  161. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/operation_registry.py +0 -0
  162. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/operator_setup.py +0 -0
  163. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/pipeline.py +0 -0
  164. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/plan_graph.py +0 -0
  165. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
  166. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
  167. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/engine.py +0 -0
  168. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/errors.py +0 -0
  169. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/gates.py +0 -0
  170. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/joins.py +0 -0
  171. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/profile.py +0 -0
  172. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/table.py +0 -0
  173. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
  174. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/progress_events.py +0 -0
  175. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/__init__.py +0 -0
  176. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
  177. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/budgets.py +0 -0
  178. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/containers.py +0 -0
  179. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/contracts.py +0 -0
  180. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/delimited.py +0 -0
  181. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
  182. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
  183. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
  184. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
  185. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
  186. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
  187. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
  188. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
  189. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
  190. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
  191. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
  192. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
  193. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/html_web_extract.py +0 -0
  194. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
  195. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
  196. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
  197. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
  198. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
  199. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
  200. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
  201. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
  202. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
  203. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
  204. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
  205. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
  206. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
  207. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
  208. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/registry.py +0 -0
  209. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
  210. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  211. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
  212. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  213. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
  214. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  215. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
  216. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  217. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
  218. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  219. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
  220. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  221. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
  222. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  223. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
  224. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
  225. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
  226. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
  227. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
  228. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -0
  229. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -0
  230. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
  231. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
  232. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
  233. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
  234. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
  235. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
  236. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
  237. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
  238. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
  239. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
  240. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
  241. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
  242. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
  243. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
  244. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -0
  245. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -0
  246. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
  247. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
  248. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
  249. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
  250. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
  251. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
  252. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
  253. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
  254. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
  255. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
  256. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
  257. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
  258. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
  259. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
  260. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
  261. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
  262. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
  263. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
  264. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
  265. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
  266. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
  267. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
  268. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
  269. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
  270. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
  271. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +0 -0
  272. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/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
  273. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
  274. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
  275. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
  276. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
  277. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
  278. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
  279. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
  280. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
  281. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
  282. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
  283. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
  284. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
  285. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
  286. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
  287. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
  288. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
  289. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
  290. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
  291. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
  292. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
  293. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  294. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -0
  295. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  296. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  297. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  298. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  299. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
  300. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
  301. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  302. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
  303. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  304. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
  305. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  306. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
  307. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  308. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
  309. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
  310. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
  311. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
  312. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
  313. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
  314. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
  315. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
  316. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
  317. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
  318. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
  319. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
  320. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/samples.py +0 -0
  321. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific.py +0 -0
  322. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
  323. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
  324. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
  325. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
  326. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
  327. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
  328. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
  329. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
  330. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
  331. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
  332. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
  333. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
  334. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
  335. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
  336. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
  337. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
  338. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
  339. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
  340. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
  341. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
  342. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
  343. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
  344. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
  345. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/tabular.py +0 -0
  346. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/vector.py +0 -0
  347. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
  348. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
  349. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
  350. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/recipe.py +0 -0
  351. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/repair/__init__.py +0 -0
  352. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/repair/adapters.py +0 -0
  353. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/repair/contracts.py +0 -0
  354. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/repair/coordinator.py +0 -0
  355. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/repair/errors.py +0 -0
  356. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/review.py +0 -0
  357. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/rowset.py +0 -0
  358. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/run_execution_v4.py +0 -0
  359. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/session_probes.py +0 -0
  360. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/signing.py +0 -0
  361. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/skill_assets.py +0 -0
  362. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/source_discovery.py +0 -0
  363. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/__init__.py +0 -0
  364. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
  365. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/adapters.py +0 -0
  366. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
  367. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
  368. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/cadence.py +0 -0
  369. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
  370. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
  371. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
  372. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
  373. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
  374. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
  375. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
  376. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
  377. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
  378. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
  379. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
  380. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
  381. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/delta.py +0 -0
  382. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
  383. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
  384. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
  385. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
  386. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
  387. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
  388. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
  389. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
  390. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
  391. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
  392. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
  393. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
  394. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
  395. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/health.py +0 -0
  396. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
  397. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
  398. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
  399. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
  400. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
  401. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
  402. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
  403. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
  404. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
  405. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
  406. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/rights_decisions.py +0 -0
  407. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
  408. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
  409. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
  410. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
  411. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/collections.py +0 -0
  412. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/contracts.py +0 -0
  413. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/dataset.py +0 -0
  414. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/deletion.py +0 -0
  415. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
  416. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/fitness.py +0 -0
  417. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/governance.py +0 -0
  418. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/hosted.py +0 -0
  419. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/integration.py +0 -0
  420. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
  421. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/registry.py +0 -0
  422. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
  423. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
  424. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/sports.py +0 -0
  425. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream.py +0 -0
  426. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
  427. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
  428. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
  429. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
  430. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
  431. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
  432. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
  433. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
  434. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
  435. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
  436. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
  437. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
  438. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
  439. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
  440. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
  441. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
  442. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
  443. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
  444. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
  445. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
  446. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
  447. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
  448. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_rotation.py +0 -0
  449. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
  450. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
  451. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
  452. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
  453. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
  454. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
  455. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -0
  456. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/stream_subscription_worker.py +0 -0
  457. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/stream_venue.py +0 -0
  458. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
  459. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/studio_boundary.py +0 -0
  460. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/studio_subscription_control.py +0 -0
  461. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/__init__.py +0 -0
  462. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/acquire.py +0 -0
  463. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  464. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  465. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/commands.py +0 -0
  466. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/download.py +0 -0
  467. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  468. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/parity.py +0 -0
  469. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/probe.py +0 -0
  470. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/propose.py +0 -0
  471. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/recipe.py +0 -0
  472. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/research.py +0 -0
  473. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/runs.py +0 -0
  474. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/session.py +0 -0
  475. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/stream.py +0 -0
  476. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/transport.py +0 -0
  477. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4.py +0 -0
  478. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
  479. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
  480. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
  481. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
  482. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
  483. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
  484. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
  485. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
  486. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
  487. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/thin/workers.py +0 -0
  488. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
  489. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
  490. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/unit_flow.py +0 -0
  491. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/units.py +0 -0
  492. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  493. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/approve.py +0 -0
  494. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/author_yaml.py +0 -0
  495. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  496. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/approve.py +0 -0
  497. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
  498. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/author.py +0 -0
  499. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
  500. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/catalog_fill.py +0 -0
  501. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
  502. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
  503. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/catalog_search.py +0 -0
  504. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/catalog_update.py +0 -0
  505. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/deploy.py +0 -0
  506. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/deploy_dataset.py +0 -0
  507. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/deploy_plan.py +0 -0
  508. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/deploy_status.py +0 -0
  509. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/diff.py +0 -0
  510. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/document.py +0 -0
  511. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/index.py +0 -0
  512. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/inventory.py +0 -0
  513. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/list_builds.py +0 -0
  514. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  515. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/peek.py +0 -0
  516. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/plan_check.py +0 -0
  517. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/preflight.py +0 -0
  518. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
  519. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/review_setup.py +0 -0
  520. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/search.py +0 -0
  521. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/show.py +0 -0
  522. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  523. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  524. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  525. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  526. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/diffing.py +0 -0
  527. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
  528. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/hosted_run_status.py +0 -0
  529. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/inventory.py +0 -0
  530. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/local_review.py +0 -0
  531. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/login.py +0 -0
  532. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  533. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/peek.py +0 -0
  534. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
  535. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/plan_check.py +0 -0
  536. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/preflight.py +0 -0
  537. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/readers.py +0 -0
  538. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/ux/workload.py +0 -0
  539. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/v4_acquisition.py +0 -0
  540. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
  541. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
  542. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
  543. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/v4_recipe.py +0 -0
  544. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/v4_required_controls.py +0 -0
  545. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
  546. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/v4_transform.py +0 -0
  547. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
  548. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
  549. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
  550. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
  551. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
  552. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/query.py +0 -0
  553. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
  554. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
  555. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/src/mostlyright/data_harness/visual_run/store.py +0 -0
  556. {mostlyright_data-0.10.3 → mostlyright_data-0.10.4}/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.10.3
3
+ Version: 0.10.4
4
4
  Summary: Mostly Right CLI for reproducible, reviewed Parquet datasets
5
5
  Project-URL: Homepage, https://mostlyright.md/
6
6
  Project-URL: Documentation, https://mostlyright.md/docs/guides/cli/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mostlyright-data"
3
- version = "0.10.3"
3
+ version = "0.10.4"
4
4
  description = "Mostly Right CLI for reproducible, reviewed Parquet datasets"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13,<3.14"
@@ -85,7 +85,7 @@ absence as a defect.
85
85
 
86
86
  ## Commands
87
87
 
88
- These twenty-three are the whole surface, alongside `acquire-slices`, which names a capability
88
+ These twenty-four are the whole surface, alongside `acquire-slices`, which names a capability
89
89
  gap rather than doing anything, and `export-hosted-candidate`, which is a backend operator step.
90
90
 
91
91
  | Command | What it does |
@@ -93,6 +93,7 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
93
93
  | `mr-data auth` | Validate the effective device credential with Cloud; manage metadata-only device revocation, remote-first logout, safe rotation, and explicit recovery; explain the ephemeral token boundary. |
94
94
  | `mr-data login` | Complete device approval and store a device credential. `login --force` is the compatibility alias for safe `auth rotate`, never an in-place truncate. |
95
95
  | `mr-data whoami` | Use the compatibility alias for the remotely validated `auth status` answer. |
96
+ | `mr-data clarify` | Say whether one clarifying question may be put to the user right now, and compose the record of their answer. It reaches nothing, asks nobody and waits for nothing. Exits non-zero when no person can answer or when a recipe is already registered. |
96
97
  | `mr-data probe` | Ask one registered source one question and print the answer. **Currently unusable:** it reaches `/v3/sessions`, which Studio refuses, and it takes a question identifier that no v4 receipt returns. Do not plan a source inspection around it. |
97
98
  | `mr-data recipe` | Register one recipe document — dataset, question, table plan, sources, transform, checks and units — in one call, and print the identifiers the server derived. `mr-data recipe show ID` reads one back. |
98
99
  | `mr-data cover` | Generate and attach one branded 1200×630 dataset cover. Give it the dataset ID and what the image should depict; Studio fixes the model, single-color style, curated random palette, dimensions and storage. |
@@ -114,10 +115,11 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
114
115
  | `mr-data unpin` | Ask Studio to resume pointer tracking; read the returned state before claiming it resumed. |
115
116
  | `mr-data demote` | Ask Studio to withdraw the pointer and any schedule it owns. |
116
117
 
117
- `auth`, `login` and `whoami` are the same implementation in both profiles. The other twenty
118
- answer from Studio. Eight only read: `status`, `runs`, `watch`, `peek`, `receipt`, `checks`,
119
- `download` and `diff`. Twelve start or change something: `recipe`, `cover`, `run`, `query`,
120
- `probe`, `keys`, `open`, `note`, `promote`, `pin`, `unpin` and `demote`.
118
+ `auth`, `login`, `whoami` and `clarify` are the same implementation in both profiles, and
119
+ `clarify` alone reaches nothing at all. The other twenty answer from Studio. Eight only
120
+ read: `status`, `runs`, `watch`, `peek`, `receipt`, `checks`, `download` and `diff`. Twelve
121
+ start or change something: `recipe`, `cover`, `run`, `query`, `probe`, `keys`, `open`,
122
+ `note`, `promote`, `pin`, `unpin` and `demote`.
121
123
 
122
124
  **Any successful run is readable straight away.** There is no approval, no admission and no release
123
125
  step between a run finishing and reading it: `download`, `receipt`, `checks`, `peek` and `query`
@@ -226,6 +228,12 @@ again, and the failure triples on recent runs tell you what the backend is refus
226
228
  `SANDBOX_MEMORY_BOUNDARY` on somebody else's recipe an hour ago means the room is unwell and your
227
229
  first failure will not be your document's fault. Keep this check silent.
228
230
 
231
+ **Then settle anything only the user can settle, before probing.** Read the request for a word with
232
+ two defensible readings, a population whose edges are unstated, or a window nobody named.
233
+ `mr-data clarify --question TEXT` says whether there is anybody to ask and whether it is still early
234
+ enough; [Autonomous delivery](#autonomous-delivery) is the rule for what may be asked and what stays
235
+ yours to decide.
236
+
229
237
  Pass `--json` to automated commands. A command receipt is the only record that a Harness action
230
238
  succeeded.
231
239
 
@@ -316,6 +324,50 @@ Every grain, key, join and cutoff settled here is a `decision` block — see
316
324
  [Narrating the run](#narrating-the-run). Append them to the same blocks file the source blocks
317
325
  went into. There is still no run to write them into; stage 3 writes the file.
318
326
 
327
+ **The dataset description is the documentation, and it is read by people and by search engines.**
328
+ `dataset.description` is Markdown, rendered on the dataset page with headings and lists, and it
329
+ admits up to 4000 characters. Write it as a short reference entry a stranger can scan in thirty
330
+ seconds -- not a paragraph, and not a report. Use exactly this shape, in this order, and leave a
331
+ section out only when there is genuinely nothing to say (shown indented here; the document
332
+ itself carries the headings at column one):
333
+
334
+ One or two plain sentences: what each row is, where it comes from, and the period it covers.
335
+
336
+ ## Coverage
337
+ - **Window:** the exact dates and the time zone.
338
+ - **Grain:** one row per what.
339
+ - **Cadence:** how often rows arrive, and how many per day or month.
340
+
341
+ ## Columns
342
+ - `column_name` — what it measures, in which unit.
343
+ - (one bullet per column; group unit-sharing columns on one line where that reads better)
344
+
345
+ ## Missing values
346
+ One or two sentences: how absent, trace and sentinel values are represented.
347
+
348
+ ## Suitable for
349
+ - Two to four concrete uses, each a short phrase.
350
+
351
+ ## Source and rights
352
+ The publisher, the programme, and the rights basis, in one or two sentences.
353
+
354
+ Rules that keep it readable: short sentences; no sentence over about twenty-five words; bullets
355
+ rather than comma lists; no tables, no code blocks, no links to internal tools, no headings beyond
356
+ the ones above. Spell out the names a reader would search for -- the place, the identifiers in
357
+ every common form, the programme and the publisher -- once each, in the opening sentences and
358
+ never as a keyword list. The opening sentences double as the summary cards and search engines
359
+ show, so they must stand alone. A one-line description is a defect to fix in the revision, not a
360
+ style choice. Give `table.description` the grain and the window, and give every column a
361
+ description a reader can act on.
362
+
363
+ **Every registered dataset gets a cover before its first run is presented.** After
364
+ `mr-data recipe` answers with the `dataset_id`, generate one with
365
+ `mr-data cover DATASET_ID "what the image should depict" --json`, describing the subject in plain
366
+ language — the place, the instrument, the phenomenon — and nothing about style, colour or size,
367
+ which Studio fixes. Do it once per dataset, silently, and do not repeat it for a revision unless the
368
+ subject changed. A dataset presented without a cover is a defect, the same as a one-line
369
+ description.
370
+
319
371
  ### What the statement must actually return
320
372
 
321
373
  Every acquired source is bound as all-text CSV — `read_csv(header = true, auto_detect = false,
@@ -769,7 +821,29 @@ not ask the user to choose sources, Readers, engines, formats, workspaces, retry
769
821
  operations, or validation repairs. Make those operational decisions from the question, observed
770
822
  evidence, registered capabilities, and deterministic receipts.
771
823
 
772
- On a hosted install that outcome is concrete: a run in `succeeded`, `mr-data checks` reporting
824
+ One clarifying question is not a pause and does not weaken that ban. It is allowed for a fact the
825
+ user holds and no source can supply: what an ambiguous word in their request means, how wide the
826
+ population is, or how far back they need it. `Throughput: movements or passengers?` is such a fact.
827
+ Which Reader parses the feed is not, and neither is anything else named above; those stay banned
828
+ because the evidence settles them. Ask before probing, while nothing is registered, nothing is
829
+ running and nothing has been spent: a question at that point costs a sentence, and the guess it
830
+ replaces costs a whole build. Ask ONE question, carrying the answer you will assume if none comes
831
+ back. One, not two: `mr-data clarify` records exactly one question per invocation and the block it
832
+ composes has no field relating a question to another, so a second question is a second record with
833
+ nothing tying it to the first. If two things are genuinely unsettled, the one that survives the
834
+ evidence is the one to ask about.
835
+
836
+ `mr-data clarify --question TEXT` says whether to ask at all. It exits non-zero when no person can
837
+ answer, which is what a scheduled or headless session reports, and when `--recipe RECIPE_ID` names
838
+ a registered recipe, because the answer to a question asked after the contract is a revision and
839
+ goes through the contract approval instead. On a non-zero exit ask nothing: decide from the
840
+ evidence, write the assumption into the recipe document, and state it as a limitation in the final
841
+ report. `mr-data clarify --question TEXT --answer TEXT` composes the exchange as one `clarification`
842
+ block. Carry its wording into the recipe document the answer settles — the question text, the table
843
+ description, the column description — so the assumption the table rests on reads the same in the
844
+ document, in the Dataset, and in the report.
845
+
846
+ On a hosted install the delivered outcome is concrete: a run in `succeeded`, `mr-data checks` reporting
773
847
  every declared check, the coverage read off the run rather than guessed, and the artifacts brought
774
848
  here by `mr-data download` when the user asked for the bytes. Link to the canonical Dataset page and
775
849
  state what is live and what is not, rather than claiming a promotion or reporting internal run
@@ -574,12 +574,18 @@ def _dispatch(
574
574
  selected_command == "note"
575
575
  or selected_command == "propose"
576
576
  or selected_command == "acquire-cancel"
577
+ or selected_command == "clarify"
577
578
  or selected_command in _RESEARCH_COMMANDS
578
579
  ):
579
580
  # `note`, `propose` and the research commands are the hosted lane's own implementation, run
580
581
  # here unchanged, so they refuse in the hosted lane's own typed vocabulary. Handling it here
581
582
  # is what turns `THIN_...` into the same code-plus-remediation block every other refusal in
582
583
  # this command line prints.
584
+ #
585
+ # `clarify` is here for the same reason and is not a hosted command at all: it reaches
586
+ # nothing and is identical in both profiles. It refuses in the thin lane's typed vocabulary
587
+ # because that is the vocabulary the agent driving it already branches on, and a fifth
588
+ # refusal class for four sentences would be a fifth remediation family for no reader.
583
589
  from mostlyright.data_harness.thin.transport import ThinLaneError
584
590
 
585
591
  handled_errors += (ThinLaneError,)
@@ -91,7 +91,12 @@ REFUSAL_CODE = {
91
91
  #: The portable commands, and the ``ux.commands`` module each resolves to. Both are stdlib-only
92
92
  #: today, so the thin profile runs the SAME implementation the local profile runs rather than a
93
93
  #: second one written to look like it.
94
- PORTABLE_MODULES = {"auth": "auth", "login": "login", "whoami": "whoami"}
94
+ PORTABLE_MODULES = {
95
+ "auth": "auth",
96
+ "clarify": "clarify",
97
+ "login": "login",
98
+ "whoami": "whoami",
99
+ }
95
100
 
96
101
  #: One line per hosted command, for the help the thin profile prints. Short on purpose: the local
97
102
  #: profile's ``--help`` is ``cli``'s and is not restated here, so these cannot drift out of sync
@@ -112,6 +112,11 @@ CLASSIFICATION: dict[str, Lane] = {
112
112
  "it reports how each check one run's recipe declared came out -- the name, whether it "
113
113
  "passed and what it found -- and exits non-zero when one of them did not",
114
114
  ),
115
+ "clarify": Lane(
116
+ PORTABLE,
117
+ "it reads whether a person is here to answer one question and turns their answer into "
118
+ "the block it is recorded as; it reaches nothing and asks nobody",
119
+ ),
115
120
  "cover": Lane(
116
121
  HOSTED,
117
122
  "it generates and attaches one branded dataset cover through Studio",
@@ -0,0 +1,206 @@
1
+ """Whether a person is available to answer a question right now, decided in one place.
2
+
3
+ WHAT WAS MISSING, AND WHY IT IS THE LOAD-BEARING PART. This command line has never had a model of
4
+ who -- if anyone -- is on the other end of it. It could refuse, report and wait, and every one of
5
+ those is a thing you do AT somebody rather than a thing you ask them. That was survivable while the
6
+ only pauses were the promote decision and a spend confirmation, because both of those are held by
7
+ the backend and answered in a browser: nothing on this machine had to know whether a human existed.
8
+
9
+ It stops being survivable the moment an agent may ask a clarifying question. A question asked into
10
+ a scheduled run is not a slow answer, it is no answer, and an agent that waits for one has replaced
11
+ a build with a hang. So the question "is there a person here" has to be answerable BEFORE anything
12
+ is asked, and it has to be answerable the same way every time.
13
+
14
+ ⚠ THE ANSWER IS NOT ``isatty``, AND THAT IS THE WHOLE DIFFICULTY. The process that runs ``mr-data``
15
+ in the case this exists for is an agent, and an agent is a pipe whether or not a person is reading
16
+ its chat. Taking a terminal's absence for a person's absence would answer "unattended" for exactly
17
+ the population the feature is for. A terminal's PRESENCE is still sound in the other direction --
18
+ somebody typed this at a shell -- so the terminal is read as a positive signal only, and never as
19
+ a negative one. That asymmetry is the reason this is a resolver with six ordered steps rather than
20
+ one call to :func:`os.isatty`.
21
+
22
+ THE SIX STEPS, IN ORDER, AND WHY THAT ORDER.
23
+
24
+ 1. ``--unattended``, or :data:`ATTENDANCE_ENV` set to ``0``. Either party may say nobody is here,
25
+ and a no is final. ⚠ THIS IS THE ONE ASYMMETRY IN THE TABLE AND IT IS THE POINT OF IT. The agent
26
+ inside the process is the party whose judgement this exists to bound -- it is always in a
27
+ conversation and will always believe somebody is reading it -- while the process that SPAWNED it
28
+ is the only party that knows whether that conversation has a person on the other end. So the
29
+ outer party is given a veto and not a grant: a scheduler that exports ``MOSTLYRIGHT_ATTENDED=0``
30
+ cannot have that overruled from inside by an agent passing ``--attended``, and an agent that
31
+ knows it is running unwatched can still say so on a machine where the variable says otherwise.
32
+ 2. ``--attended``. Nobody vetoed and the caller stated it.
33
+ 3. :data:`ATTENDANCE_ENV` set to ``1``. The spawning process stated it, for every command it runs.
34
+ 4. :data:`ATTENDANCE_ENV` set to anything else. Unattended, and named as unreadable rather than
35
+ silently folded into the default, so a caller who wrote ``true`` learns that from the receipt
36
+ instead of from a build that quietly stopped asking.
37
+ 5. A controlling terminal on BOTH standard input and standard output. Sound one way only, as above.
38
+ 6. Nothing said: unattended.
39
+
40
+ ⚠ EVERY UNKNOWN RESOLVES TO UNATTENDED. The failure this guards against is a scheduled run stopping
41
+ to ask a question nobody will ever read, and the failure it accepts in exchange is an agent that
42
+ had a person available and did not use them -- which costs one guess that could have been a
43
+ question, and is recoverable. They are not the same size.
44
+
45
+ ⚠ IT READS THE ENVIRONMENT AND TWO ``isatty`` CALLS, AND NOTHING ELSE. No file is opened, no
46
+ credential is touched, no clock is read and nothing is written. The answer is a fact about this
47
+ process, so it is derived from this process alone; ``environ`` and ``streams`` are injectable for
48
+ the same reason ``router.local_execution_enabled`` takes an ``environ`` -- a guard should be able
49
+ to ask what this function would answer without rewriting the process it is running in.
50
+ """
51
+
52
+ from __future__ import annotations
53
+
54
+ import os
55
+ import sys
56
+ from collections.abc import Mapping, Sequence
57
+ from dataclasses import dataclass
58
+ from typing import Any
59
+
60
+ #: The variable the process that spawns ``mr-data`` sets to say whether the session it is driving
61
+ #: has a person in it. Exactly ``"1"`` is attended and exactly ``"0"`` is unattended -- and the
62
+ #: ``"0"`` is a veto no flag overrides, for the reason the module docstring gives. Every other value
63
+ #: is unattended and is reported as unrecognised rather than guessed at.
64
+ #:
65
+ #: ⚠ THE EXACT-``"1"`` COMPARISON IS THE ONE THIS REPOSITORY ALREADY USES, in
66
+ #: ``router.local_execution_enabled``. Two opt-in variables that disagree about whether ``yes``
67
+ #: counts is how one of them eventually gets set wrong in a way nobody notices.
68
+ ATTENDANCE_ENV = "MOSTLYRIGHT_ATTENDED"
69
+
70
+ #: What settled it. Reported in every receipt, because "there is nobody to ask" and "nobody said,
71
+ #: so I assumed there is nobody to ask" are different situations to be in and only one of them is
72
+ #: fixed by setting a variable.
73
+ BY_FLAG = "flag"
74
+ BY_ENVIRONMENT = "environment"
75
+ BY_TERMINAL = "terminal"
76
+ BY_DEFAULT = "default"
77
+
78
+ #: The fifth value, and the only one that is a complaint. The variable was set to something this
79
+ #: module does not read as either answer, so the answer is the fail-closed one and the receipt says
80
+ #: the variable is the reason it is not the other one.
81
+ BY_UNREADABLE_ENVIRONMENT = "unreadable_environment"
82
+
83
+ DECIDED_BY = (BY_FLAG, BY_ENVIRONMENT, BY_TERMINAL, BY_DEFAULT, BY_UNREADABLE_ENVIRONMENT)
84
+
85
+ #: The two values :data:`ATTENDANCE_ENV` is read for.
86
+ _ATTENDED_VALUE = "1"
87
+ _UNATTENDED_VALUE = "0"
88
+
89
+
90
+ @dataclass(frozen=True)
91
+ class Attendance:
92
+ """Whether a person can be asked something right now, and what settled it.
93
+
94
+ ``reason`` is one sentence that survives being printed on its own: it is what an agent reads
95
+ when it is deciding whether to ask, and what a person reads when they are wondering why it
96
+ did not.
97
+ """
98
+
99
+ attended: bool
100
+ decided_by: str
101
+ reason: str
102
+
103
+ def to_dict(self) -> dict[str, Any]:
104
+ return {"attended": self.attended, "decided_by": self.decided_by, "reason": self.reason}
105
+
106
+
107
+ def _terminal(streams: Sequence[Any]) -> bool:
108
+ """Whether every named stream is a terminal.
109
+
110
+ ⚠ EVERY ONE OF THEM, NOT ANY. A command whose output was redirected into a file keeps a
111
+ terminal on standard input with nothing watching standard output, and a question printed into
112
+ that file is a question nobody read. Requiring both is what makes this signal mean "a person is
113
+ looking at this shell" rather than "a shell exists".
114
+ """
115
+
116
+ for stream in streams:
117
+ if not callable(getattr(stream, "isatty", None)):
118
+ return False
119
+ try:
120
+ if not stream.isatty():
121
+ return False
122
+ except (OSError, ValueError):
123
+ # A closed or detached stream is not a terminal, and it is not an error either: the
124
+ # question being asked is whether a person is there, and this is an answer to it.
125
+ return False
126
+ return True
127
+
128
+
129
+ def resolve_attendance(
130
+ *,
131
+ flag: bool | None = None,
132
+ environ: Mapping[str, str] | None = None,
133
+ streams: Sequence[Any] | None = None,
134
+ ) -> Attendance:
135
+ """Decide, once, whether a person can be asked something in this invocation."""
136
+
137
+ table = os.environ if environ is None else environ
138
+ stated = table.get(ATTENDANCE_ENV)
139
+
140
+ # Step 1: the veto, from either party, before anything that could grant.
141
+ if flag is False:
142
+ return Attendance(
143
+ attended=False,
144
+ decided_by=BY_FLAG,
145
+ reason="you said no person is here to answer",
146
+ )
147
+ if stated == _UNATTENDED_VALUE:
148
+ return Attendance(
149
+ attended=False,
150
+ decided_by=BY_ENVIRONMENT,
151
+ reason=(
152
+ f"{ATTENDANCE_ENV} is 0, so the session that started this has nobody in it; that "
153
+ "is the one reading no argument here overrides"
154
+ ),
155
+ )
156
+ # Steps 2 and 3: the grants, the narrower statement first.
157
+ if flag is True:
158
+ return Attendance(
159
+ attended=True,
160
+ decided_by=BY_FLAG,
161
+ reason="you said a person is here to answer",
162
+ )
163
+ if stated == _ATTENDED_VALUE:
164
+ return Attendance(
165
+ attended=True,
166
+ decided_by=BY_ENVIRONMENT,
167
+ reason=f"{ATTENDANCE_ENV} is 1, so the session that started this has a person in it",
168
+ )
169
+ # Step 4: set, and readable as neither.
170
+ if stated is not None:
171
+ return Attendance(
172
+ attended=False,
173
+ decided_by=BY_UNREADABLE_ENVIRONMENT,
174
+ reason=(
175
+ f"{ATTENDANCE_ENV} is set to something this reads as neither 1 nor 0, so nobody "
176
+ "is treated as available; set it to 1 or to 0"
177
+ ),
178
+ )
179
+ # Steps 5 and 6.
180
+ if _terminal((sys.stdin, sys.stdout) if streams is None else streams):
181
+ return Attendance(
182
+ attended=True,
183
+ decided_by=BY_TERMINAL,
184
+ reason="this was typed at a terminal, so somebody is looking at it",
185
+ )
186
+ return Attendance(
187
+ attended=False,
188
+ decided_by=BY_DEFAULT,
189
+ reason=(
190
+ f"nothing said a person is here and this is not a terminal; set {ATTENDANCE_ENV}=1 "
191
+ "when a person can answer"
192
+ ),
193
+ )
194
+
195
+
196
+ __all__ = [
197
+ "ATTENDANCE_ENV",
198
+ "BY_DEFAULT",
199
+ "BY_ENVIRONMENT",
200
+ "BY_FLAG",
201
+ "BY_TERMINAL",
202
+ "BY_UNREADABLE_ENVIRONMENT",
203
+ "DECIDED_BY",
204
+ "Attendance",
205
+ "resolve_attendance",
206
+ ]