mostlyright-data 0.17.6__tar.gz → 0.17.7__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 (559) hide show
  1. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/PKG-INFO +5 -2
  2. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/README.md +4 -1
  3. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/pyproject.toml +1 -1
  4. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/skills/mr-data-build/SKILL.md +52 -20
  5. mostlyright_data-0.17.7/src/mostlyright/data_harness/thin/categories.py +9 -0
  6. mostlyright_data-0.17.7/src/mostlyright/data_harness/thin/dataset-categories-v1.json +132 -0
  7. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/recipe.py +4 -7
  8. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4.py +5 -1
  9. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_datasets.py +31 -3
  10. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/.gitignore +0 -0
  11. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/scripts/hatch_build.py +0 -0
  12. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/skills/mr-data-build/agents/openai.yaml +0 -0
  13. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
  14. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/skills/mr-data-build/scripts/write_visual_run.py +0 -0
  15. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/__init__.py +0 -0
  16. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/LICENSE +0 -0
  17. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -0
  18. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/__init__.py +0 -0
  19. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -0
  20. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/_version.py +0 -0
  21. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -0
  22. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -0
  23. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -0
  24. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -0
  25. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -0
  26. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -0
  27. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -0
  28. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -0
  29. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -0
  30. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -0
  31. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -0
  32. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -0
  33. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/config.yaml +0 -0
  34. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -0
  35. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -0
  36. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -0
  37. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -0
  38. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -0
  39. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/main.py +0 -0
  40. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
  41. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
  42. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
  43. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
  44. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -0
  45. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -0
  46. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -0
  47. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -0
  48. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -0
  49. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -0
  50. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -0
  51. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -0
  52. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -0
  53. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/__init__.py +0 -0
  54. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
  55. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -0
  56. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/http.py +0 -0
  57. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
  58. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
  59. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
  60. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
  61. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
  62. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/sandbox_bootstrap.py +0 -0
  63. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/acquisition/url_policy.py +0 -0
  64. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/agent_runtime.py +0 -0
  65. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
  66. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/backends/__init__.py +0 -0
  67. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
  68. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
  69. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/backends/protocol.py +0 -0
  70. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/backends/reference.py +0 -0
  71. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/backends/registry.py +0 -0
  72. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
  73. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/bounded_query.py +0 -0
  74. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/bounded_scratch_sink.py +0 -0
  75. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/canonical.py +0 -0
  76. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/catalog_job.py +0 -0
  77. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/cli.py +0 -0
  78. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/compact_worker.py +0 -0
  79. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/contracts.py +0 -0
  80. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/coordinator.py +0 -0
  81. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/crosswalks.py +0 -0
  82. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/declared_checks.py +0 -0
  83. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/delta.py +0 -0
  84. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/delta_checks.py +0 -0
  85. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/delta_classifier.py +0 -0
  86. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/delta_persist.py +0 -0
  87. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/delta_recompute.py +0 -0
  88. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/delta_rows.py +0 -0
  89. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/deploy.py +0 -0
  90. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/deploy_target.py +0 -0
  91. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
  92. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/__init__.py +0 -0
  93. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/_worker_capability.py +0 -0
  94. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/capture.py +0 -0
  95. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/contracts.py +0 -0
  96. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/lane.py +0 -0
  97. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/ocr.py +0 -0
  98. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/pdf.py +0 -0
  99. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/registry.py +0 -0
  100. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/sandbox.py +0 -0
  101. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/selections.py +0 -0
  102. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/tables.py +0 -0
  103. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -0
  104. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/events.py +0 -0
  105. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/fast_delimited.py +0 -0
  106. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/fetch_egress_smoke.py +0 -0
  107. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/formats.py +0 -0
  108. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/governors.py +0 -0
  109. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_bootstrap.py +0 -0
  110. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_crawler.py +0 -0
  111. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
  112. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
  113. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_crawler_job.py +0 -0
  114. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
  115. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
  116. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
  117. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
  118. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
  119. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_ingestion_worker.py +0 -0
  120. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -0
  121. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_run_worker.py +0 -0
  122. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
  123. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_session_worker.py +0 -0
  124. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
  125. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
  126. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -0
  127. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -0
  128. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -0
  129. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/hosted_worker.py +0 -0
  130. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/incremental_slice_executor.py +0 -0
  131. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/incremental_worker.py +0 -0
  132. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
  133. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
  134. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
  135. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
  136. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
  137. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ingestion/store.py +0 -0
  138. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/inprocess_acquisition.py +0 -0
  139. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/key_seam.py +0 -0
  140. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/legacy_table_recovery.py +0 -0
  141. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/legacy_table_recovery_contract.py +0 -0
  142. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/linux_process_boundary.py +0 -0
  143. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/local_contracts.py +0 -0
  144. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
  145. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
  146. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
  147. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
  148. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/document.py +0 -0
  149. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
  150. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
  151. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
  152. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
  153. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
  154. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
  155. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
  156. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
  157. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
  158. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
  159. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/status.py +0 -0
  160. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
  161. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/notebook.py +0 -0
  162. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/offline.py +0 -0
  163. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/operation_registry.py +0 -0
  164. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/operator_setup.py +0 -0
  165. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/page_coverage.py +0 -0
  166. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/part_check_evidence.py +0 -0
  167. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/pipeline.py +0 -0
  168. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/plan_graph.py +0 -0
  169. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
  170. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
  171. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/engine.py +0 -0
  172. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/errors.py +0 -0
  173. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/gates.py +0 -0
  174. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/joins.py +0 -0
  175. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/profile.py +0 -0
  176. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/table.py +0 -0
  177. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
  178. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/progress_events.py +0 -0
  179. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/__init__.py +0 -0
  180. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/_openpyxl.py +0 -0
  181. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/budgets.py +0 -0
  182. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/configurable_delimited.py +0 -0
  183. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/containers.py +0 -0
  184. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/contracts.py +0 -0
  185. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/delimited.py +0 -0
  186. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/geojson_vector.py +0 -0
  187. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/geopackage.py +0 -0
  188. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/geoparquet.py +0 -0
  189. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
  190. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
  191. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/grib2/collection.py +0 -0
  192. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -0
  193. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
  194. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
  195. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
  196. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -0
  197. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/html_tabular.py +0 -0
  198. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/html_web_extract.py +0 -0
  199. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
  200. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
  201. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -0
  202. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -0
  203. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/__init__.py +0 -0
  204. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -0
  205. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/decode.py +0 -0
  206. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/family.py +0 -0
  207. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -0
  208. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/profiles.py +0 -0
  209. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/rendered.py +0 -0
  210. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/safe.py +0 -0
  211. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -0
  212. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/raster/tiff.py +0 -0
  213. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/registry.py +0 -0
  214. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
  215. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  216. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
  217. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  218. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
  219. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  220. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
  221. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  222. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
  223. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  224. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
  225. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  226. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
  227. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  228. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
  229. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
  230. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
  231. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
  232. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
  233. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -0
  234. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -0
  235. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/expected.json +0 -0
  236. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/indices.csv +0 -0
  237. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -0
  238. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -0
  239. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -0
  240. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
  241. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -0
  242. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
  243. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -0
  244. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -0
  245. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -0
  246. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -0
  247. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/article.html +0 -0
  248. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/expected.json +0 -0
  249. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -0
  250. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
  251. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
  252. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
  253. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -0
  254. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -0
  255. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
  256. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -0
  257. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -0
  258. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
  259. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -0
  260. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
  261. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -0
  262. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
  263. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -0
  264. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
  265. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -0
  266. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -0
  267. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -0
  268. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -0
  269. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
  270. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
  271. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -0
  272. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
  273. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -0
  274. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -0
  275. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
  276. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -0
  277. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
  278. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -0
  279. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
  280. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +0 -0
  281. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/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
  282. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -0
  283. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
  284. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -0
  285. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
  286. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -0
  287. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
  288. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -0
  289. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -0
  290. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -0
  291. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
  292. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -0
  293. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
  294. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -0
  295. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
  296. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -0
  297. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
  298. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -0
  299. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
  300. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -0
  301. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
  302. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  303. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -0
  304. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  305. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  306. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  307. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  308. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
  309. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
  310. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  311. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
  312. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  313. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
  314. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  315. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
  316. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  317. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -0
  318. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
  319. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -0
  320. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -0
  321. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -0
  322. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -0
  323. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -0
  324. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -0
  325. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -0
  326. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -0
  327. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -0
  328. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -0
  329. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/samples.py +0 -0
  330. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific.py +0 -0
  331. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -0
  332. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -0
  333. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -0
  334. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -0
  335. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -0
  336. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -0
  337. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -0
  338. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -0
  339. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -0
  340. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -0
  341. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -0
  342. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -0
  343. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -0
  344. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -0
  345. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -0
  346. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -0
  347. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -0
  348. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -0
  349. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -0
  350. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -0
  351. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/sdmx_json.py +0 -0
  352. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
  353. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -0
  354. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/tabular.py +0 -0
  355. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/vector.py +0 -0
  356. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/vector_wkb.py +0 -0
  357. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -0
  358. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/readers/xml_tabular.py +0 -0
  359. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/recipe.py +0 -0
  360. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/review.py +0 -0
  361. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/rowset.py +0 -0
  362. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/run_execution_v4.py +0 -0
  363. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/run_phase_timing.py +0 -0
  364. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/session_probes.py +0 -0
  365. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/signing.py +0 -0
  366. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/skill_assets.py +0 -0
  367. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_bootstrap.py +0 -0
  368. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_bundle_writer.py +0 -0
  369. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_discovery.py +0 -0
  370. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_history_candidate_child.py +0 -0
  371. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_history_transform_child.py +0 -0
  372. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_inventory.py +0 -0
  373. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_partition.py +0 -0
  374. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_raw_inventory.py +0 -0
  375. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/source_state_index.py +0 -0
  376. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/__init__.py +0 -0
  377. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
  378. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/adapters.py +0 -0
  379. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
  380. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
  381. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -0
  382. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/cadence.py +0 -0
  383. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
  384. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
  385. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
  386. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
  387. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
  388. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
  389. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
  390. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
  391. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
  392. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
  393. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
  394. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
  395. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
  396. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
  397. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
  398. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
  399. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
  400. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
  401. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
  402. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
  403. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
  404. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
  405. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
  406. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
  407. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
  408. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
  409. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
  410. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
  411. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
  412. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
  413. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
  414. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
  415. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
  416. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
  417. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
  418. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
  419. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
  420. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
  421. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
  422. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/collections.py +0 -0
  423. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/contracts.py +0 -0
  424. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/dataset.py +0 -0
  425. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/deletion.py +0 -0
  426. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/document_projection.py +0 -0
  427. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/fitness.py +0 -0
  428. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/governance.py +0 -0
  429. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/hosted.py +0 -0
  430. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/integration.py +0 -0
  431. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/page_collections.py +0 -0
  432. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
  433. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/registry.py +0 -0
  434. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
  435. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
  436. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/sports.py +0 -0
  437. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream.py +0 -0
  438. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -0
  439. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connector.py +0 -0
  440. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -0
  441. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -0
  442. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -0
  443. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -0
  444. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -0
  445. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -0
  446. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -0
  447. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -0
  448. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -0
  449. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -0
  450. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -0
  451. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -0
  452. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -0
  453. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -0
  454. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -0
  455. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
  456. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_credential.py +0 -0
  457. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_prelude.py +0 -0
  458. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
  459. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
  460. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_rotation.py +0 -0
  461. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -0
  462. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
  463. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_signing.py +0 -0
  464. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sources/stream_transport.py +0 -0
  465. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/sql_transform_engine.py +0 -0
  466. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/stream_order_vector.py +0 -0
  467. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/stream_recovery_objects.py +0 -0
  468. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/stream_segment_spill.py +0 -0
  469. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/stream_subscription_feed.py +0 -0
  470. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -0
  471. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/stream_subscription_worker.py +0 -0
  472. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/stream_venue.py +0 -0
  473. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
  474. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/studio_boundary.py +0 -0
  475. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/studio_subscription_control.py +0 -0
  476. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/table_manifest.py +0 -0
  477. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/table_parts.py +0 -0
  478. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/table_profile.py +0 -0
  479. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/__init__.py +0 -0
  480. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/acquire.py +0 -0
  481. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  482. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/activity.py +0 -0
  483. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  484. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/collection_plan.py +0 -0
  485. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/commands.py +0 -0
  486. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/download.py +0 -0
  487. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  488. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/parity.py +0 -0
  489. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/probe.py +0 -0
  490. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/propose.py +0 -0
  491. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/research.py +0 -0
  492. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/router.py +0 -0
  493. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/runs.py +0 -0
  494. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/session.py +0 -0
  495. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/stream.py +0 -0
  496. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
  497. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/transport.py +0 -0
  498. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/user_agent.py +0 -0
  499. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
  500. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
  501. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
  502. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
  503. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
  504. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
  505. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
  506. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
  507. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
  508. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
  509. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/vocabulary.py +0 -0
  510. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/thin/workers.py +0 -0
  511. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
  512. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
  513. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/unit_flow.py +0 -0
  514. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/units.py +0 -0
  515. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  516. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/attendance.py +0 -0
  517. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/clarification.py +0 -0
  518. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  519. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
  520. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
  521. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
  522. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
  523. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
  524. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
  525. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  526. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/record.py +0 -0
  527. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  528. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  529. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  530. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  531. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/headline.py +0 -0
  532. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
  533. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/local_review.py +0 -0
  534. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/login.py +0 -0
  535. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  536. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
  537. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/readers.py +0 -0
  538. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/remediation.py +0 -0
  539. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/ux/render.py +0 -0
  540. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_acquisition.py +0 -0
  541. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_check_dialect.py +0 -0
  542. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_closed_source.py +0 -0
  543. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_document_pin.py +0 -0
  544. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_reader_pin.py +0 -0
  545. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_recipe.py +0 -0
  546. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_required_controls.py +0 -0
  547. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -0
  548. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_stream_recording.py +0 -0
  549. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_transform.py +0 -0
  550. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/v4_window.py +0 -0
  551. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
  552. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
  553. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
  554. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
  555. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
  556. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
  557. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
  558. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/store.py +0 -0
  559. {mostlyright_data-0.17.6 → mostlyright_data-0.17.7}/src/mostlyright/data_harness/visual_run/transport.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mostlyright-data
3
- Version: 0.17.6
3
+ Version: 0.17.7
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/
@@ -208,9 +208,12 @@ mr-data --help
208
208
 
209
209
  ## Build a dataset
210
210
 
211
- Register a recipe document with the sources, table schema, transformations and checks:
211
+ Create the dataset, choose its primary category from the fixed vocabulary, then register a recipe document with the sources, table schema, transformations and checks. Use the created dataset ID in the recipe:
212
212
 
213
213
  ```bash
214
+ mr-data dataset create --name "Dataset title" --json
215
+ mr-data dataset categories --json
216
+ mr-data dataset set DATASET_ID --category climate-environment
214
217
  mr-data recipe recipe.json --json
215
218
  mr-data run --recipe RECIPE_ID --digest RECIPE_DIGEST --full
216
219
  mr-data status RUN_ID
@@ -45,9 +45,12 @@ mr-data --help
45
45
 
46
46
  ## Build a dataset
47
47
 
48
- Register a recipe document with the sources, table schema, transformations and checks:
48
+ Create the dataset, choose its primary category from the fixed vocabulary, then register a recipe document with the sources, table schema, transformations and checks. Use the created dataset ID in the recipe:
49
49
 
50
50
  ```bash
51
+ mr-data dataset create --name "Dataset title" --json
52
+ mr-data dataset categories --json
53
+ mr-data dataset set DATASET_ID --category climate-environment
51
54
  mr-data recipe recipe.json --json
52
55
  mr-data run --recipe RECIPE_ID --digest RECIPE_DIGEST --full
53
56
  mr-data status RUN_ID
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mostlyright-data"
3
- version = "0.17.6"
3
+ version = "0.17.7"
4
4
  description = "Mostly Right CLI for reproducible, reviewed Parquet datasets"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13,<3.14"
@@ -118,7 +118,7 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
118
118
  | `mr-data whoami` | Use the compatibility alias for the remotely validated `auth status` answer. |
119
119
  | `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. |
120
120
  | `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. |
121
- | `mr-data dataset` | Bring the dataset page into existence before there is anything on it, then fill it in while somebody watches. `dataset create --name TEXT` mints it and prints the `dataset_id`; `dataset show ID` reads it back; `dataset set ID --name TEXT --topics "a,b,c" --license ID --description-file F` writes the title, the categories, the SPDX licence and the description under the version it was read at, retrying once if somebody else wrote first, and an empty `--topics` or `--license` takes that value off the page; `dataset note ID --heading H --blocks-file B` writes one cell of the decision record that OUTLIVES every run, and `--list` reads it back; `dataset watch ID` follows the page's own event stream; `dataset activity ID --phase P --message TEXT` says what is happening right now, silently, and is never a chat message and never a cell; `dataset publish ID [--mode public|link|private]` says who can read the dataset — `public` lists it in the public directory and serves it at an address anybody can read, `link` serves it at an unlisted address, `private` takes it back to the workspace — and `dataset publish ID --show` reads that back without changing it; `dataset archive ID --confirm-name TITLE` retires the page and frees its title, deleting nothing. |
121
+ | `mr-data dataset` | Bring the dataset page into existence before there is anything on it, then fill it in while somebody watches. `dataset create --name TEXT` mints it and prints the `dataset_id`; `dataset show ID` reads it back; `dataset set ID --name TEXT --topics "a,b,c" --license ID --description-file F` writes the title, the descriptive tags, the SPDX licence and the description under the version it was read at, retrying once if somebody else wrote first, and an empty `--topics` or `--license` takes that value off the page; `dataset note ID --heading H --blocks-file B` writes one cell of the decision record that OUTLIVES every run, and `--list` reads it back; `dataset watch ID` follows the page's own event stream; `dataset activity ID --phase P --message TEXT` says what is happening right now, silently, and is never a chat message and never a cell; `dataset publish ID [--mode public|link|private]` says who can read the dataset — `public` lists it in the public directory and serves it at an address anybody can read, `link` serves it at an unlisted address, `private` takes it back to the workspace — and `dataset publish ID --show` reads that back without changing it; `dataset archive ID --confirm-name TITLE` retires the page and frees its title, deleting nothing. |
122
122
  | `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. |
123
123
  | `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. |
124
124
  | `mr-data run` | Start one run against a registered recipe, named as `--recipe RECIPE_ID --digest RECIPE_DIGEST` — both required, neither positional, and the digest is the bare hex the registration receipt printed. The command accepts `--sample`, `--full`, `--refresh`, `--backfill` and `--window`, and the worker executes `--sample`, `--full` and `--refresh`. A refresh narrows each source that declares a supported address window and merges its returned relation into retained source state; unwindowed sources are conditionally revalidated or re-acquired whole, then the full declared transform runs. `--backfill` and a `--window` on a sample or full are refused before acquisition. `--max-rows` and `--max-source-bytes` remain supported, and each bounds ONE SOURCE rather than the finished table. A large run is held for a spend confirmation, which `--confirm` settles; a sample-first held full requires Studio's interactive human approval instead. `--cancel RUN` stops one. |
@@ -471,16 +471,16 @@ and is settled once, at stage 4.
471
471
  Every grain, key, join and cutoff settled after stage 3 is a further `decision` block on the
472
472
  DATASET's record — `mr-data dataset note DATASET_ID` — because the fact outlives every run.
473
473
 
474
- **Write the title, the topics, the licence and the description before the first run.** The page has
474
+ **Write the title, primary category, tags, licence and description before recipe registration.** The page has
475
475
  been open since stage 1 under a working title. This is where it settles. One call carries the title,
476
- the topics and the licence, so the title and the chips land together; the description arrives after
476
+ the primary category, tags and licence, so the title and category land together; the description arrives after
477
477
  it, through the draft snapshots and the final commit. (The worked example below is a different
478
478
  dataset from the Kathmandu one the earlier stages follow, chosen because its numbers are easy to
479
479
  count.)
480
480
 
481
481
  ```sh
482
482
  mr-data dataset set DATASET_ID --name "Hourly weather at Prague Airport (LKPR), 2000-2026" \
483
- --topics "weather,prague,czech republic,metar,iowa environmental mesonet" \
483
+ --category climate-environment --topics "weather,prague,czech republic,metar,iowa environmental mesonet" \
484
484
  --license "CC-BY-4.0" --json
485
485
  ```
486
486
 
@@ -504,7 +504,8 @@ interpret them.
504
504
  | --- | --- | --- |
505
505
  | `--name` | browser tab title (`{name} \| Mostly Right`), the page heading, the JSON-LD `name` | at most 60 characters, or search results cut it |
506
506
  | the opening paragraph of DESCRIPTION.md | the meta description, the social card, the JSON-LD `description`, the `Summary:` line answer engines fetch | search engines cut at 300 characters; answer engines cut at 240 |
507
- | `--topics` | category chips and the category filter on the /datasets directory, JSON-LD `keywords`, the `Topics:` line answer engines fetch, the `topic` filter in the public API and MCP | 3 to 8 topics, each at most 40 characters |
507
+ | `--category` | the primary category and category filter on Community | exactly one fixed category ID |
508
+ | `--topics` | JSON-LD `keywords`, the `Topics:` line answer engines fetch, the `topic` filter in the public API and MCP | 3 to 8 topics, each at most 40 characters |
508
509
 
509
510
  **Title rules**
510
511
  1. Shape: subject, place, period. `Hourly weather at Prague Airport (LKPR), 2000-2026`.
@@ -515,19 +516,51 @@ interpret them.
515
516
  number, a run date.
516
517
  5. Sentence case. No trailing full stop.
517
518
 
519
+ **Primary category — required before recipe registration**
520
+ Run `mr-data dataset categories --json` to read the fixed vocabulary and its definitions,
521
+ exclusions and examples. Choose exactly one primary category by interpreting the dataset purpose,
522
+ tables and measured entities. Save it with `mr-data dataset set DATASET_ID --category CATEGORY_ID`
523
+ and verify `category_id` in `dataset show`. Put this dataset’s stable ID in
524
+ `dataset.id` in the recipe file (the HTTP command wraps it under `document`) when registering; enforced builds cannot bind by name alone. The updated recipe client requests server enforcement
525
+ of this saved category; it never guesses from tags. Draft pages may remain unassigned during research.
526
+
527
+ The allowed IDs and labels are:
528
+
529
+ | ID | Category |
530
+ | --- | --- |
531
+ | `climate-environment` | Climate & Environment |
532
+ | `crypto` | Crypto |
533
+ | `finance` | Finance |
534
+ | `economics-business` | Economics & Business |
535
+ | `government-politics` | Government & Politics |
536
+ | `people-society` | People & Society |
537
+ | `health-medicine` | Health & Medicine |
538
+ | `science-research` | Science & Research |
539
+ | `technology` | Technology |
540
+ | `energy` | Energy |
541
+ | `agriculture-food` | Agriculture & Food |
542
+ | `transport-mobility` | Transport & Mobility |
543
+ | `places-infrastructure` | Places & Infrastructure |
544
+ | `education` | Education |
545
+ | `sports` | Sports |
546
+ | `arts-media-entertainment` | Arts, Media & Entertainment |
547
+ | `law-public-safety` | Law & Public Safety |
548
+ | `other` | Other |
549
+
550
+ Classify the main subject, not the source, cadence, file format or secondary variables. Bitcoin
551
+ price markets are Crypto; airport weather observations are Climate & Environment; crop yields
552
+ with weather covariates are Agriculture & Food; Steam player counts are Arts, Media & Entertainment.
553
+ For mixed datasets, use their principal analytical purpose. If none fits, choose Other and record
554
+ why the listed definitions exclude the subject. Uncertainty alone is not a reason to use Other.
555
+ Preserve the saved category on routine refreshes and recipe revisions. Reconsider it only when
556
+ the dataset's principal subject changes. Never invent, combine or subdivide category IDs.
557
+
518
558
  **Topic rules**
519
- 1. 3 to 8 topics, comma-separated, no duplicates.
520
- 2. Topic one is the category, chosen from this list and no other:
521
- `weather, climate, air quality, hydrology, energy, transport, aviation, public health,
522
- economics, finance, elections, sports, prediction markets, demographics, geospatial,
523
- agriculture`.
524
- 3. Then, in this order, one each where it applies: the city or region, the country, the
525
- phenomenon or instrument, the publisher or programme. After those, up to three more, each a
526
- distinct thing a person would type that none of the earlier topics already names.
527
- 4. Form: lowercase; ASCII letters, digits, spaces and hyphens only; one to three words; at most
528
- 40 characters.
529
- 5. Never: a column name, a unit, a bare year, a second word from the category list, a market or
530
- venue name unless the dataset is about that market.
559
+ 1. Write 3 to 8 useful descriptive tags, comma-separated, without duplicates.
560
+ 2. Tags are search keywords, not categories. No tag position determines the primary category.
561
+ 3. Use relevant subject, place, phenomenon, instrument or programme names.
562
+ 4. Use lowercase ASCII letters, digits, spaces and hyphens; at most 40 characters per tag.
563
+ 5. Omit column names, units, bare years and redundant terms.
531
564
 
532
565
  **The dataset description is the documentation, and it is read by people and by search engines.**
533
566
  `dataset.description` is Markdown, rendered on the dataset page with headings and lists, and it
@@ -592,9 +625,8 @@ choice. Give `table.description` the grain and the window.
592
625
  - title: at most 60 characters, contains the place, contains no colon, pipe or exclamation mark,
593
626
  no brand, no "dataset" or "data", no version number, no run date
594
627
  - opening paragraph: 150 to 240 characters, first full stop before character 200, no Markdown
595
- - topics: 3 to 8, no duplicates, first one is on the category list, all lowercase, each at most
596
- 40 characters, none is a column name, a unit, a year, a second word from the category list, or
597
- a market or venue name unless the dataset is about that market
628
+ - category: exactly one fixed ID saved and verified before recipe registration
629
+ - topics: 3 to 8 descriptive tags, no duplicates, lowercase, at most 40 characters each
598
630
  - licence: an SPDX identifier the sources actually grant, or `--license` left off
599
631
  - every `##` heading in DESCRIPTION.md is one of the five, in that relative order, none repeated
600
632
 
@@ -0,0 +1,9 @@
1
+ """Closed primary-category vocabulary mirrored from Studio's versioned contract."""
2
+
3
+ import json
4
+ from pathlib import Path
5
+
6
+ TAXONOMY = json.loads(
7
+ Path(__file__).with_name("dataset-categories-v1.json").read_text(encoding="utf-8")
8
+ )
9
+ CATEGORY_IDS = tuple(entry["id"] for entry in TAXONOMY["categories"])
@@ -0,0 +1,132 @@
1
+ {
2
+ "version": 1,
3
+ "assignment_policy": "Exactly one primary category, chosen from the dataset purpose, tables and measured entities. Prefer the principal subject over its source, cadence, format or secondary variables. Preserve the assignment on refresh. Other requires a recorded reason.",
4
+ "categories": [
5
+ {
6
+ "id": "climate-environment",
7
+ "label": "Climate & Environment",
8
+ "definition": "Weather, climate, pollution, ecosystems and environmental measurements.",
9
+ "exclusions": "Agricultural output belongs to Agriculture & Food; energy supply belongs to Energy.",
10
+ "examples": "Hourly weather observations; air quality; ocean temperatures"
11
+ },
12
+ {
13
+ "id": "crypto",
14
+ "label": "Crypto",
15
+ "definition": "Cryptocurrencies, blockchain networks, DeFi and digital-asset markets.",
16
+ "exclusions": "Use Finance for conventional securities, banking and non-crypto prediction markets.",
17
+ "examples": "Bitcoin prices; Ethereum transactions; DeFi lending"
18
+ },
19
+ {
20
+ "id": "finance",
21
+ "label": "Finance",
22
+ "definition": "Banking, securities, investment, insurance and financial-market activity.",
23
+ "exclusions": "Crypto assets belong to Crypto; economy-wide indicators belong to Economics & Business.",
24
+ "examples": "Stock prices; interest-rate products; prediction-market order books"
25
+ },
26
+ {
27
+ "id": "economics-business",
28
+ "label": "Economics & Business",
29
+ "definition": "Economic indicators, businesses, commerce, industry and consumer activity.",
30
+ "exclusions": "Financial instruments belong to Finance; individual population characteristics belong to People & Society.",
31
+ "examples": "GDP; inflation; company directories; retail sales"
32
+ },
33
+ {
34
+ "id": "government-politics",
35
+ "label": "Government & Politics",
36
+ "definition": "Elections, public policy, government institutions and administration.",
37
+ "exclusions": "Courts and crime belong to Law & Public Safety; economic outcomes belong to Economics & Business.",
38
+ "examples": "Election results; legislative votes; public budgets"
39
+ },
40
+ {
41
+ "id": "people-society",
42
+ "label": "People & Society",
43
+ "definition": "Population, demographics, communities, social conditions and human behavior.",
44
+ "exclusions": "Clinical outcomes belong to Health & Medicine; formal learning belongs to Education.",
45
+ "examples": "Census; migration; public opinion; household surveys"
46
+ },
47
+ {
48
+ "id": "health-medicine",
49
+ "label": "Health & Medicine",
50
+ "definition": "Clinical medicine, healthcare, diseases and public health.",
51
+ "exclusions": "Non-health scientific experiments belong to Science & Research.",
52
+ "examples": "Disease surveillance; hospitals; clinical trials"
53
+ },
54
+ {
55
+ "id": "science-research",
56
+ "label": "Science & Research",
57
+ "definition": "Physical and natural sciences, experiments, astronomy and general research metadata.",
58
+ "exclusions": "Use the subject-specific category for weather, health, technology or other covered research.",
59
+ "examples": "Astronomical observations; particle experiments; research publications"
60
+ },
61
+ {
62
+ "id": "technology",
63
+ "label": "Technology",
64
+ "definition": "Software, computing, AI, internet and telecommunications.",
65
+ "exclusions": "Blockchain belongs to Crypto; media consumption and gaming belong to Arts, Media & Entertainment.",
66
+ "examples": "Software packages; internet performance; AI benchmarks"
67
+ },
68
+ {
69
+ "id": "energy",
70
+ "label": "Energy",
71
+ "definition": "Electricity, fuels, energy production, consumption and supply infrastructure.",
72
+ "exclusions": "Weather measurements belong to Climate & Environment even when used for energy analysis.",
73
+ "examples": "Power generation; electricity demand; oil production"
74
+ },
75
+ {
76
+ "id": "agriculture-food",
77
+ "label": "Agriculture & Food",
78
+ "definition": "Farming, livestock, fisheries, food production and food systems.",
79
+ "exclusions": "Weather alone belongs to Climate & Environment; clinical nutrition outcomes belong to Health & Medicine.",
80
+ "examples": "Crop yields with weather covariates; livestock counts; fisheries"
81
+ },
82
+ {
83
+ "id": "transport-mobility",
84
+ "label": "Transport & Mobility",
85
+ "definition": "Movement of people and goods by road, rail, air and sea.",
86
+ "exclusions": "Airport weather observations belong to Climate & Environment.",
87
+ "examples": "Transit ridership; flight movements; shipping routes"
88
+ },
89
+ {
90
+ "id": "places-infrastructure",
91
+ "label": "Places & Infrastructure",
92
+ "definition": "Geography, maps, property, buildings, housing and non-energy infrastructure.",
93
+ "exclusions": "Movement belongs to Transport & Mobility; electricity systems belong to Energy.",
94
+ "examples": "Building footprints; property listings; water networks"
95
+ },
96
+ {
97
+ "id": "education",
98
+ "label": "Education",
99
+ "definition": "Schools, universities, learning, students and educational outcomes.",
100
+ "exclusions": "Research datasets use their subject category rather than the institution that produced them.",
101
+ "examples": "School enrollment; exam results; course catalogs"
102
+ },
103
+ {
104
+ "id": "sports",
105
+ "label": "Sports",
106
+ "definition": "Sports competitions, athletes, teams and athletic performance.",
107
+ "exclusions": "Video-game activity and esports belong to Arts, Media & Entertainment.",
108
+ "examples": "Match results; player statistics; athletic records"
109
+ },
110
+ {
111
+ "id": "arts-media-entertainment",
112
+ "label": "Arts, Media & Entertainment",
113
+ "definition": "Culture, arts, news media, music, film, gaming, esports and audience activity.",
114
+ "exclusions": "A news dataset about a specific subject belongs to that subject when the observations measure that subject.",
115
+ "examples": "Film releases; Steam players; game-related pageviews; music charts"
116
+ },
117
+ {
118
+ "id": "law-public-safety",
119
+ "label": "Law & Public Safety",
120
+ "definition": "Legal systems, courts, crime, policing and emergency response.",
121
+ "exclusions": "Election and legislative activity belongs to Government & Politics.",
122
+ "examples": "Court decisions; crime reports; emergency incidents"
123
+ },
124
+ {
125
+ "id": "other",
126
+ "label": "Other",
127
+ "definition": "A meaningful subject not covered by any category after reviewing its definitions.",
128
+ "exclusions": "Never use for missing research, uncertainty, mixed subjects, test status, cadence or file format. Record why none fits.",
129
+ "examples": "A documented subject outside the defined taxonomy"
130
+ }
131
+ ]
132
+ }
@@ -323,11 +323,9 @@ def column_description_warnings(absent: list[str]) -> list[str]:
323
323
  def check_dataset_binding(dataset: Any) -> None:
324
324
  """Refuse a ``dataset.id`` that could not name a dataset, before anything is sent.
325
325
 
326
- ⚠ THE MEMBER IS OPTIONAL, AND ITS ABSENCE IS NOT A MISTAKE. A document with no ``dataset.id``
327
- registers exactly as it always did: Studio resolves the container from ``(workspace_id, name)``.
328
- What the member buys is the live-authoring order -- ``mr-data dataset create`` mints the page
329
- BEFORE the research starts, so somebody watching sees it fill in, and the registration binds to
330
- the page they are already looking at instead of minting a second one behind them.
326
+ The legacy server contract admits name-only registration, but this CLI requests category
327
+ enforcement, which requires a saved category and stable dataset.id. The build creates the
328
+ page before research and binds the recipe to that same page. Studio checks the saved category.
331
329
 
332
330
  ⚠ AND A MISTYPED ONE IS THE EXPENSIVE MISTAKE, WHICH IS WHY IT IS CHECKED HERE. An identifier
333
331
  that is not a UUID is a 422 after a token exchange; an identifier that is a UUID and names
@@ -354,8 +352,7 @@ def check_dataset_binding(dataset: Any) -> None:
354
352
  raise ThinLaneError(
355
353
  "THIN_RECIPE_DOCUMENT_INVALID",
356
354
  "the recipe document's dataset.id is not a dataset identifier; it is the identifier "
357
- "mr-data dataset create printed, or the member is left out and Studio resolves the "
358
- "dataset from its name",
355
+ "mr-data dataset create printed. Save its category before registering the recipe",
359
356
  ) from None
360
357
  if stated != canonical:
361
358
  raise ThinLaneError(
@@ -661,7 +661,11 @@ class StudioV4Client(StudioApiClient):
661
661
  return self._call(
662
662
  "POST",
663
663
  CREATE_RECIPE_PATH,
664
- body={"workspace_id": str(self.session.workspace_id), "document": dict(document)},
664
+ body={
665
+ "workspace_id": str(self.session.workspace_id),
666
+ "document": dict(document),
667
+ "require_category": True,
668
+ },
665
669
  expected=(201,),
666
670
  )
667
671
 
@@ -107,6 +107,7 @@ from mostlyright.data_harness.thin.activity import (
107
107
  from mostlyright.data_harness.thin.activity import (
108
108
  report as _report_activity,
109
109
  )
110
+ from mostlyright.data_harness.thin.categories import CATEGORY_IDS, TAXONOMY
110
111
  from mostlyright.data_harness.thin.narrative import (
111
112
  NOT_EVIDENCE,
112
113
  cell_id_from_heading,
@@ -187,6 +188,7 @@ COMMAND_HELP = "create the dataset page, correct it, write its record, share it,
187
188
  #: and version stays where it is. That is why the confirmation is the dataset's own name typed out
188
189
  #: rather than a yes: a person who has the wrong page open cannot type the right name.
189
190
  ACTIONS: tuple[str, ...] = (
191
+ "categories",
190
192
  "create",
191
193
  "set",
192
194
  "draft",
@@ -246,6 +248,7 @@ DATASET_MEMBERS: tuple[str, ...] = (
246
248
  # read back is a write an agent cannot check.
247
249
  "topics",
248
250
  "license",
251
+ "category_id",
249
252
  "status",
250
253
  "version",
251
254
  "cover",
@@ -602,10 +605,16 @@ def declare_arguments(parser: argparse.ArgumentParser) -> None:
602
605
  "a description is paragraphs and argv is one line"
603
606
  ),
604
607
  )
608
+ parser.add_argument(
609
+ "--category",
610
+ choices=CATEGORY_IDS,
611
+ help="with set, the primary category; inspect definitions with dataset categories",
612
+ )
605
613
  parser.add_argument(
606
614
  "--topics",
607
615
  help=(
608
- "with set, the categories this dataset is filed under, as one comma-separated list. "
616
+ "with set, optional descriptive tags, separate from the primary category, "
617
+ "as one comma-separated list. "
609
618
  "Each entry is trimmed and lowercased here and checked by Studio, which holds the "
610
619
  "bounds: at most eight, no duplicates, and each one 1 to 40 characters of lowercase "
611
620
  "letters, digits, spaces and hyphens. An empty list -- --topics '' -- takes them off "
@@ -1161,15 +1170,29 @@ def write(
1161
1170
  named = getattr(args, "name", None)
1162
1171
  name = checked_name(named, needed_by="set") if named is not None else None
1163
1172
  description = read_description(args, stdin=stdin)
1173
+ category = getattr(args, "category", None)
1174
+ if category is not None and category not in CATEGORY_IDS:
1175
+ raise ThinLaneError(
1176
+ "THIN_REQUEST_INVALID", "--category must be one of: " + ", ".join(CATEGORY_IDS)
1177
+ )
1164
1178
  topics = read_topics(getattr(args, "topics", None))
1165
1179
  named_license = getattr(args, "license", None)
1166
- if name is None and description is None and topics is None and named_license is None:
1180
+ if (
1181
+ name is None
1182
+ and description is None
1183
+ and topics is None
1184
+ and named_license is None
1185
+ and category is None
1186
+ ):
1167
1187
  raise ThinLaneError(
1168
1188
  "THIN_REQUEST_INVALID",
1169
1189
  "mr-data dataset set writes the title, the topics, the licence and the description: "
1170
- "give --name, --topics, --license, --description-file, or any of them together",
1190
+ "give --name, --category, --topics, --license, --description-file, "
1191
+ "or any of them together",
1171
1192
  )
1172
1193
  fields: dict[str, Any] = {}
1194
+ if category is not None:
1195
+ fields["category_id"] = category
1173
1196
  if name is not None:
1174
1197
  fields["name"] = name
1175
1198
  if description is not None:
@@ -1865,6 +1888,8 @@ def dataset(
1865
1888
  # would drop them silently. They belong to `set` alone: `create` mints a page from a working
1866
1889
  # title and `draft` writes a snapshot of text, and neither has anywhere to put a category or
1867
1890
  # a licence.
1891
+ if action != "set" and getattr(args, "category", None) is not None:
1892
+ raise ThinLaneError("THIN_REQUEST_INVALID", "--category belongs to mr-data dataset set")
1868
1893
  if action != "set" and (
1869
1894
  getattr(args, "topics", None) is not None or getattr(args, "license", None) is not None
1870
1895
  ):
@@ -1873,6 +1898,9 @@ def dataset(
1873
1898
  f"--topics and --license belong to mr-data dataset set, not to {action}",
1874
1899
  )
1875
1900
 
1901
+ if action == "categories":
1902
+ return {"schema_version": "mostlyright-dataset-categories.v1", **TAXONOMY}
1903
+
1876
1904
  if action in _NEEDS_DATASET and not getattr(args, "dataset_id", None):
1877
1905
  raise ThinLaneError(
1878
1906
  "THIN_REQUEST_INVALID",