mostlyright-data 0.18.3__tar.gz → 0.19.0__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 (571) hide show
  1. mostlyright_data-0.19.0/.gitignore +25 -0
  2. mostlyright_data-0.19.0/PKG-INFO +160 -0
  3. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/README.md +29 -10
  4. mostlyright_data-0.19.0/pyproject.toml +131 -0
  5. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/scripts/hatch_build.py +3 -3
  6. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/skills/mr-data-build/SKILL.md +24 -21
  7. mostlyright_data-0.19.0/src/mostlyright/data_harness/__init__.py +46 -0
  8. mostlyright_data-0.19.0/src/mostlyright/data_harness/hosted_crawler_protocol.py +115 -0
  9. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/key_seam.py +11 -93
  10. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/part_check_evidence.py +9 -121
  11. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/session_probes.py +9 -69
  12. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/acquire.py +2 -3
  13. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/commands.py +0 -5
  14. mostlyright_data-0.19.0/src/mostlyright/data_harness/thin/progress_vocabulary.py +49 -0
  15. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/propose.py +4 -39
  16. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/recipe.py +3 -4
  17. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/router.py +11 -16
  18. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/stream.py +4 -1
  19. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/transport.py +14 -0
  20. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/user_agent.py +5 -3
  21. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4.py +19 -7
  22. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_runs.py +97 -12
  23. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/vocabulary.py +79 -4
  24. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/clarification.py +8 -7
  25. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/__init__.py +1 -55
  26. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/auth.py +0 -12
  27. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/remediation.py +15 -80
  28. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/render.py +0 -18
  29. mostlyright_data-0.18.3/.gitignore +0 -34
  30. mostlyright_data-0.18.3/PKG-INFO +0 -292
  31. mostlyright_data-0.18.3/pyproject.toml +0 -315
  32. mostlyright_data-0.18.3/skills/mr-data-build/scripts/write_visual_run.py +0 -255
  33. mostlyright_data-0.18.3/src/mostlyright/_vendor/__init__.py +0 -1
  34. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/LICENSE +0 -203
  35. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -97
  36. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/__init__.py +0 -39
  37. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -12
  38. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/_version.py +0 -24
  39. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -6
  40. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -335
  41. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -7
  42. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -106
  43. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -55
  44. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -7
  45. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -104
  46. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -300
  47. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -7
  48. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -141
  49. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -58
  50. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -186
  51. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/config.yaml +0 -65
  52. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -3
  53. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -59
  54. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -6
  55. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -89
  56. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -27
  57. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/main.py +0 -430
  58. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
  59. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
  60. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
  61. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
  62. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -3
  63. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -25
  64. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -40
  65. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -14
  66. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -31
  67. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -94
  68. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -199
  69. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -68
  70. mostlyright_data-0.18.3/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -43
  71. mostlyright_data-0.18.3/src/mostlyright/data_harness/__init__.py +0 -158
  72. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/__init__.py +0 -55
  73. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -506
  74. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/http.py +0 -4329
  75. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/parsing.py +0 -1678
  76. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/ranges.py +0 -495
  77. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/result_download.py +0 -360
  78. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -248
  79. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/sandbox.py +0 -7417
  80. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/sandbox_bootstrap.py +0 -20
  81. mostlyright_data-0.18.3/src/mostlyright/data_harness/acquisition/url_policy.py +0 -618
  82. mostlyright_data-0.18.3/src/mostlyright/data_harness/agent_runtime.py +0 -2743
  83. mostlyright_data-0.18.3/src/mostlyright/data_harness/assets/logo-ink.svg +0 -31
  84. mostlyright_data-0.18.3/src/mostlyright/data_harness/backends/__init__.py +0 -28
  85. mostlyright_data-0.18.3/src/mostlyright/data_harness/backends/pandas_backend.py +0 -350
  86. mostlyright_data-0.18.3/src/mostlyright/data_harness/backends/polars_backend.py +0 -366
  87. mostlyright_data-0.18.3/src/mostlyright/data_harness/backends/protocol.py +0 -124
  88. mostlyright_data-0.18.3/src/mostlyright/data_harness/backends/reference.py +0 -83
  89. mostlyright_data-0.18.3/src/mostlyright/data_harness/backends/registry.py +0 -55
  90. mostlyright_data-0.18.3/src/mostlyright/data_harness/backends/restrictions.py +0 -126
  91. mostlyright_data-0.18.3/src/mostlyright/data_harness/bounded_query.py +0 -729
  92. mostlyright_data-0.18.3/src/mostlyright/data_harness/bounded_scratch_sink.py +0 -223
  93. mostlyright_data-0.18.3/src/mostlyright/data_harness/catalog_job.py +0 -625
  94. mostlyright_data-0.18.3/src/mostlyright/data_harness/cli.py +0 -5324
  95. mostlyright_data-0.18.3/src/mostlyright/data_harness/compact_worker.py +0 -483
  96. mostlyright_data-0.18.3/src/mostlyright/data_harness/contracts.py +0 -65
  97. mostlyright_data-0.18.3/src/mostlyright/data_harness/coordinator.py +0 -1307
  98. mostlyright_data-0.18.3/src/mostlyright/data_harness/crosswalks.py +0 -268
  99. mostlyright_data-0.18.3/src/mostlyright/data_harness/declared_checks.py +0 -1595
  100. mostlyright_data-0.18.3/src/mostlyright/data_harness/delta.py +0 -353
  101. mostlyright_data-0.18.3/src/mostlyright/data_harness/delta_checks.py +0 -466
  102. mostlyright_data-0.18.3/src/mostlyright/data_harness/delta_classifier.py +0 -875
  103. mostlyright_data-0.18.3/src/mostlyright/data_harness/delta_persist.py +0 -750
  104. mostlyright_data-0.18.3/src/mostlyright/data_harness/delta_recompute.py +0 -348
  105. mostlyright_data-0.18.3/src/mostlyright/data_harness/delta_rows.py +0 -630
  106. mostlyright_data-0.18.3/src/mostlyright/data_harness/deploy.py +0 -924
  107. mostlyright_data-0.18.3/src/mostlyright/data_harness/deploy_target.py +0 -312
  108. mostlyright_data-0.18.3/src/mostlyright/data_harness/deployment_evidence.py +0 -1067
  109. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/__init__.py +0 -87
  110. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/_worker_capability.py +0 -262
  111. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/capture.py +0 -2201
  112. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/contracts.py +0 -1135
  113. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/lane.py +0 -528
  114. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/ocr.py +0 -879
  115. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/pdf.py +0 -2527
  116. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/registry.py +0 -652
  117. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/sandbox.py +0 -3140
  118. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/selections.py +0 -430
  119. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/tables.py +0 -994
  120. mostlyright_data-0.18.3/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -138
  121. mostlyright_data-0.18.3/src/mostlyright/data_harness/events.py +0 -2152
  122. mostlyright_data-0.18.3/src/mostlyright/data_harness/fast_delimited.py +0 -239
  123. mostlyright_data-0.18.3/src/mostlyright/data_harness/fetch_egress_smoke.py +0 -107
  124. mostlyright_data-0.18.3/src/mostlyright/data_harness/governors.py +0 -1163
  125. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_bootstrap.py +0 -1405
  126. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_crawler.py +0 -1175
  127. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -351
  128. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -753
  129. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_crawler_job.py +0 -1436
  130. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -677
  131. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_deploy.py +0 -3038
  132. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -504
  133. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -375
  134. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -40
  135. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_ingestion_worker.py +0 -267
  136. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -123
  137. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_run_worker.py +0 -13457
  138. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -196
  139. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_session_worker.py +0 -4988
  140. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -46
  141. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -89
  142. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -2138
  143. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -52
  144. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -842
  145. mostlyright_data-0.18.3/src/mostlyright/data_harness/hosted_worker.py +0 -9840
  146. mostlyright_data-0.18.3/src/mostlyright/data_harness/incremental_slice_executor.py +0 -874
  147. mostlyright_data-0.18.3/src/mostlyright/data_harness/incremental_worker.py +0 -524
  148. mostlyright_data-0.18.3/src/mostlyright/data_harness/ingestion/__init__.py +0 -56
  149. mostlyright_data-0.18.3/src/mostlyright/data_harness/ingestion/contracts.py +0 -461
  150. mostlyright_data-0.18.3/src/mostlyright/data_harness/ingestion/faults.py +0 -42
  151. mostlyright_data-0.18.3/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -1194
  152. mostlyright_data-0.18.3/src/mostlyright/data_harness/ingestion/spool.py +0 -130
  153. mostlyright_data-0.18.3/src/mostlyright/data_harness/ingestion/store.py +0 -885
  154. mostlyright_data-0.18.3/src/mostlyright/data_harness/inprocess_acquisition.py +0 -4947
  155. mostlyright_data-0.18.3/src/mostlyright/data_harness/legacy_table_recovery.py +0 -281
  156. mostlyright_data-0.18.3/src/mostlyright/data_harness/legacy_table_recovery_contract.py +0 -74
  157. mostlyright_data-0.18.3/src/mostlyright/data_harness/linux_process_boundary.py +0 -987
  158. mostlyright_data-0.18.3/src/mostlyright/data_harness/local_contracts.py +0 -3635
  159. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -212
  160. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/__init__.py +0 -12
  161. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/chrome.py +0 -359
  162. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/code_body.py +0 -266
  163. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/document.py +0 -407
  164. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/frame.py +0 -275
  165. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/interactive.py +0 -337
  166. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -477
  167. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/mr_components.py +0 -134
  168. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -595
  169. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -906
  170. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -260
  171. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -176
  172. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -400
  173. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/parse.py +0 -394
  174. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/status.py +0 -40
  175. mostlyright_data-0.18.3/src/mostlyright/data_harness/nbrender/tokens.py +0 -1295
  176. mostlyright_data-0.18.3/src/mostlyright/data_harness/notebook.py +0 -1710
  177. mostlyright_data-0.18.3/src/mostlyright/data_harness/offline.py +0 -2049
  178. mostlyright_data-0.18.3/src/mostlyright/data_harness/operation_registry.py +0 -1007
  179. mostlyright_data-0.18.3/src/mostlyright/data_harness/operator_setup.py +0 -239
  180. mostlyright_data-0.18.3/src/mostlyright/data_harness/pipeline.py +0 -7125
  181. mostlyright_data-0.18.3/src/mostlyright/data_harness/plan_graph.py +0 -2067
  182. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/__init__.py +0 -104
  183. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/contracts.py +0 -1017
  184. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/engine.py +0 -221
  185. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/errors.py +0 -14
  186. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/gates.py +0 -751
  187. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/joins.py +0 -574
  188. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/profile.py +0 -384
  189. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/table.py +0 -217
  190. mostlyright_data-0.18.3/src/mostlyright/data_harness/preparation/transforms.py +0 -568
  191. mostlyright_data-0.18.3/src/mostlyright/data_harness/progress_events.py +0 -654
  192. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/__init__.py +0 -46
  193. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/_openpyxl.py +0 -17
  194. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/budgets.py +0 -48
  195. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/configurable_delimited.py +0 -284
  196. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/containers.py +0 -963
  197. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/contracts.py +0 -542
  198. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/delimited.py +0 -257
  199. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/geojson_vector.py +0 -442
  200. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/geopackage.py +0 -346
  201. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/geoparquet.py +0 -213
  202. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -33
  203. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/grib2/admission.py +0 -722
  204. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/grib2/collection.py +0 -444
  205. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -198
  206. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/grib2/decode.py +0 -1009
  207. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -1133
  208. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -501
  209. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -553
  210. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/html_tabular.py +0 -380
  211. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/html_web_extract.py +0 -814
  212. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/json_tabular.py +0 -485
  213. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -158
  214. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -485
  215. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -454
  216. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/__init__.py +0 -78
  217. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -54
  218. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/decode.py +0 -306
  219. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/family.py +0 -326
  220. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -177
  221. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/profiles.py +0 -235
  222. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/rendered.py +0 -122
  223. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/safe.py +0 -168
  224. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -488
  225. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/raster/tiff.py +0 -515
  226. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/registry.py +0 -1045
  227. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/README.md +0 -110
  228. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  229. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -24
  230. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  231. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -24
  232. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  233. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -24
  234. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  235. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -24
  236. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  237. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -25
  238. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  239. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -25
  240. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  241. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -25
  242. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -3
  243. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -23
  244. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -5
  245. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -25
  246. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -30
  247. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -5
  248. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/expected.json +0 -41
  249. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/indices.csv +0 -5
  250. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -36
  251. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -17
  252. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -29
  253. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
  254. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -28
  255. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
  256. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -24
  257. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -4
  258. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -27
  259. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -1
  260. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/article.html +0 -3
  261. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/expected.json +0 -28
  262. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -31
  263. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
  264. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -44
  265. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -1
  266. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -48
  267. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -4
  268. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
  269. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -25
  270. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -51
  271. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
  272. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -17
  273. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
  274. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -17
  275. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
  276. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -17
  277. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
  278. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -25
  279. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -12
  280. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -27
  281. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -1
  282. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -25
  283. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
  284. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -45
  285. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
  286. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -7
  287. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -36
  288. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
  289. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -32
  290. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
  291. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -31
  292. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
  293. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +0 -36
  294. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/himawari-hsd-b13-complete.zip +0 -0
  295. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -54
  296. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
  297. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -50
  298. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
  299. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -47
  300. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
  301. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -29
  302. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -1
  303. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -47
  304. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
  305. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -47
  306. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
  307. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -50
  308. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
  309. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -56
  310. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
  311. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -47
  312. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
  313. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -50
  314. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
  315. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  316. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -24
  317. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -27
  318. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  319. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -27
  320. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  321. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -20
  322. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -55
  323. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  324. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -54
  325. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  326. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -54
  327. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  328. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -54
  329. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  330. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -50
  331. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
  332. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -17
  333. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -3
  334. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -16
  335. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -4
  336. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -42
  337. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -8
  338. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -40
  339. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -10
  340. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -5
  341. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -39
  342. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/samples.py +0 -582
  343. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific.py +0 -1085
  344. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -47
  345. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -228
  346. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -189
  347. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -407
  348. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -618
  349. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -201
  350. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -606
  351. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -255
  352. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -496
  353. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -396
  354. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -491
  355. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -49
  356. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -95
  357. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -101
  358. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -360
  359. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -718
  360. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -200
  361. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -365
  362. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -877
  363. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -1200
  364. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/sdmx_json.py +0 -585
  365. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/spreadsheet.py +0 -801
  366. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -447
  367. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/tabular.py +0 -510
  368. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/vector.py +0 -129
  369. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/vector_wkb.py +0 -199
  370. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -317
  371. mostlyright_data-0.18.3/src/mostlyright/data_harness/readers/xml_tabular.py +0 -373
  372. mostlyright_data-0.18.3/src/mostlyright/data_harness/recipe.py +0 -5638
  373. mostlyright_data-0.18.3/src/mostlyright/data_harness/review.py +0 -2533
  374. mostlyright_data-0.18.3/src/mostlyright/data_harness/rowset.py +0 -301
  375. mostlyright_data-0.18.3/src/mostlyright/data_harness/run_execution_v4.py +0 -4385
  376. mostlyright_data-0.18.3/src/mostlyright/data_harness/run_phase_timing.py +0 -73
  377. mostlyright_data-0.18.3/src/mostlyright/data_harness/signing.py +0 -101
  378. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_bootstrap.py +0 -238
  379. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_bundle_writer.py +0 -597
  380. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_discovery.py +0 -898
  381. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_history_candidate_child.py +0 -188
  382. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_history_transform_child.py +0 -151
  383. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_inventory.py +0 -162
  384. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_partition.py +0 -50
  385. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_raw_inventory.py +0 -240
  386. mostlyright_data-0.18.3/src/mostlyright/data_harness/source_state_index.py +0 -544
  387. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/__init__.py +0 -225
  388. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -231
  389. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/adapters.py +0 -1259
  390. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/authenticated_https.py +0 -374
  391. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -1332
  392. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -2267
  393. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/cadence.py +0 -1428
  394. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/cadence_emission.py +0 -453
  395. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/cadence_history.py +0 -546
  396. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -17
  397. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/admission.py +0 -482
  398. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -1701
  399. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -780
  400. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -1251
  401. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -246
  402. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/channel.py +0 -525
  403. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -296
  404. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -825
  405. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -137
  406. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -532
  407. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -1179
  408. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/fill.py +0 -3873
  409. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -459
  410. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -1105
  411. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/gating.py +0 -363
  412. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -1607
  413. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -7
  414. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -384
  415. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -798
  416. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -964
  417. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -445
  418. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -384
  419. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -105
  420. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -1549
  421. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/neural.py +0 -1618
  422. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -2345
  423. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -1517
  424. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -2802
  425. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -1037
  426. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -171
  427. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -230
  428. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -995
  429. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -560
  430. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/search.py +0 -238
  431. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -1098
  432. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/catalog/update.py +0 -1040
  433. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/collections.py +0 -815
  434. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/contracts.py +0 -2278
  435. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/dataset.py +0 -272
  436. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/deletion.py +0 -761
  437. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/document_projection.py +0 -226
  438. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/fitness.py +0 -159
  439. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/governance.py +0 -253
  440. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/hosted.py +0 -173
  441. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/integration.py +0 -218
  442. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/page_collections.py +0 -2294
  443. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/range_reader.py +0 -418
  444. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/registry.py +0 -759
  445. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/rights_rule.py +0 -65
  446. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -1
  447. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/sports.py +0 -521
  448. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream.py +0 -810
  449. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -3733
  450. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connector.py +0 -2625
  451. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.array-frames.v4.json +0 -34
  452. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -38
  453. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.json-keepalive.v4.json +0 -38
  454. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -66
  455. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -74
  456. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -74
  457. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -74
  458. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -57
  459. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -65
  460. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -52
  461. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -60
  462. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -75
  463. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -92
  464. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -48
  465. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -46
  466. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -44
  467. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -67
  468. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.loose-frames.v4.json +0 -39
  469. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/fixture.text-keepalive.v4.json +0 -39
  470. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -39
  471. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_credential.py +0 -561
  472. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_numbers.py +0 -338
  473. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_prelude.py +0 -464
  474. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_recorder.py +0 -2049
  475. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_registry.py +0 -597
  476. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_rotation.py +0 -804
  477. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -251
  478. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_series.py +0 -3108
  479. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_signing.py +0 -328
  480. mostlyright_data-0.18.3/src/mostlyright/data_harness/sources/stream_transport.py +0 -1435
  481. mostlyright_data-0.18.3/src/mostlyright/data_harness/sql_transform_engine.py +0 -2015
  482. mostlyright_data-0.18.3/src/mostlyright/data_harness/stream_order_vector.py +0 -136
  483. mostlyright_data-0.18.3/src/mostlyright/data_harness/stream_recovery_objects.py +0 -256
  484. mostlyright_data-0.18.3/src/mostlyright/data_harness/stream_segment_spill.py +0 -297
  485. mostlyright_data-0.18.3/src/mostlyright/data_harness/stream_subscription_feed.py +0 -1004
  486. mostlyright_data-0.18.3/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -1636
  487. mostlyright_data-0.18.3/src/mostlyright/data_harness/stream_subscription_worker.py +0 -4020
  488. mostlyright_data-0.18.3/src/mostlyright/data_harness/stream_venue.py +0 -788
  489. mostlyright_data-0.18.3/src/mostlyright/data_harness/stream_venue_staging.py +0 -1073
  490. mostlyright_data-0.18.3/src/mostlyright/data_harness/studio_boundary.py +0 -2053
  491. mostlyright_data-0.18.3/src/mostlyright/data_harness/studio_subscription_control.py +0 -1364
  492. mostlyright_data-0.18.3/src/mostlyright/data_harness/table_parts.py +0 -973
  493. mostlyright_data-0.18.3/src/mostlyright/data_harness/table_profile.py +0 -387
  494. mostlyright_data-0.18.3/src/mostlyright/data_harness/thin/collection_plan.py +0 -211
  495. mostlyright_data-0.18.3/src/mostlyright/data_harness/thin/workers.py +0 -249
  496. mostlyright_data-0.18.3/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -40
  497. mostlyright_data-0.18.3/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -632
  498. mostlyright_data-0.18.3/src/mostlyright/data_harness/unit_flow.py +0 -927
  499. mostlyright_data-0.18.3/src/mostlyright/data_harness/units.py +0 -572
  500. mostlyright_data-0.18.3/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -431
  501. mostlyright_data-0.18.3/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -545
  502. mostlyright_data-0.18.3/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -1859
  503. mostlyright_data-0.18.3/src/mostlyright/data_harness/ux/commands/record.py +0 -1771
  504. mostlyright_data-0.18.3/src/mostlyright/data_harness/ux/headline.py +0 -691
  505. mostlyright_data-0.18.3/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -999
  506. mostlyright_data-0.18.3/src/mostlyright/data_harness/ux/local_review.py +0 -372
  507. mostlyright_data-0.18.3/src/mostlyright/data_harness/ux/readers.py +0 -1126
  508. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_acquisition.py +0 -1336
  509. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_check_dialect.py +0 -495
  510. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_closed_source.py +0 -268
  511. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_document_pin.py +0 -145
  512. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_reader_pin.py +0 -210
  513. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_recipe.py +0 -3068
  514. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_required_controls.py +0 -670
  515. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -367
  516. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_stream_recording.py +0 -595
  517. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_transform.py +0 -355
  518. mostlyright_data-0.18.3/src/mostlyright/data_harness/v4_window.py +0 -1382
  519. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/__init__.py +0 -83
  520. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/authoring.py +0 -235
  521. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/contracts.py +0 -673
  522. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/materialize.py +0 -486
  523. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/observations.py +0 -874
  524. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/reducer.py +0 -280
  525. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/sdk.py +0 -892
  526. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/store.py +0 -584
  527. mostlyright_data-0.18.3/src/mostlyright/data_harness/visual_run/transport.py +0 -239
  528. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/skills/mr-data-build/agents/openai.yaml +0 -0
  529. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
  530. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/canonical.py +0 -0
  531. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/formats.py +0 -0
  532. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/page_coverage.py +0 -0
  533. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/skill_assets.py +0 -0
  534. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/table_manifest.py +0 -0
  535. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/__init__.py +0 -0
  536. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  537. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/activity.py +0 -0
  538. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  539. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/categories.py +0 -0
  540. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/dataset-categories-v1.json +0 -0
  541. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/download.py +0 -0
  542. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  543. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/parity.py +0 -0
  544. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/probe.py +0 -0
  545. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/research.py +0 -0
  546. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/runs.py +0 -0
  547. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/session.py +0 -0
  548. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
  549. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
  550. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_catalog.py +0 -0
  551. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
  552. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
  553. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
  554. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
  555. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
  556. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
  557. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
  558. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
  559. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
  560. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  561. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/attendance.py +0 -0
  562. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  563. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
  564. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  565. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  566. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  567. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  568. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  569. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/login.py +0 -0
  570. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  571. {mostlyright_data-0.18.3 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
@@ -0,0 +1,25 @@
1
+ .venv/
2
+ __pycache__/
3
+ .pytest_cache/
4
+ .ruff_cache/
5
+ *.py[cod]
6
+ dist/
7
+ build/
8
+ *.egg-info/
9
+ .env
10
+ .DS_Store
11
+ .work/
12
+
13
+ # A generator that stages a rewrite beside the file it is replacing and moves it into place
14
+ # leaves nothing behind on success; if an interruption leaves one behind, it is not a source file
15
+ # somebody should be offered the chance to commit. The Reader and operation table generator that
16
+ # wrote these went to Studio with the registries it read.
17
+ *.generated
18
+
19
+ # The performance suite builds its fixture inside the repository root rather than in a temporary
20
+ # directory, so an interrupted or parallel run leaves one of these behind. Nothing in one is a
21
+ # source file: it is a generated build folder holding a hundred thousand rows of synthetic data,
22
+ # under directories the build seals read-only, and `git add -A` in that window commits the lot.
23
+ # Recorded as issue #311; ignored here so the window cannot cost anybody a rewritten branch in
24
+ # the meantime.
25
+ .mostlyright-performance-*/
@@ -0,0 +1,160 @@
1
+ Metadata-Version: 2.4
2
+ Name: mostlyright-data
3
+ Version: 0.19.0
4
+ Summary: Mostly Right hosted CLI for reviewed datasets
5
+ Project-URL: Homepage, https://mostlyright.md/
6
+ Project-URL: Documentation, https://mostlyright.md/docs/guides/cli/
7
+ Requires-Python: >=3.13
8
+ Provides-Extra: build
9
+ Requires-Dist: hatchling==1.28.0; extra == 'build'
10
+ Requires-Dist: uv-build==0.11.3; extra == 'build'
11
+ Description-Content-Type: text/markdown
12
+
13
+ # mostlyright-data
14
+
15
+ Browse datasets built by our community or create your own with agents that find the sources and
16
+ configure the pipeline. Mostly Right treats a successful run as one readable dataset version;
17
+ publishing that version does not by itself prove that catch-up or scheduled refresh is running.
18
+
19
+ `mostlyright-data` is the command-line client. It probes sources, registers one recipe document,
20
+ starts and follows hosted dataset runs, reads what they delivered, and downloads the datasets after
21
+ they finish.
22
+
23
+ ## Requirements
24
+
25
+ Use CPython 3.13 or newer.
26
+
27
+ ## Install
28
+
29
+ ```bash
30
+ python -m pip install mostlyright-data
31
+ ```
32
+
33
+ That is the whole install. There is no second profile and no lane to choose: every `mr-data`
34
+ command sends its work to the backend, and it works on Linux, macOS, and Windows.
35
+
36
+ It also carries the `mr-data-build` agent skill, which Claude Code and Codex read to author a
37
+ recipe without rediscovering the contract a run at a time. The first `mr-data` command you run
38
+ places it in your agent's skill directory; there is nothing to install by hand. A skill you have
39
+ edited yourself is never replaced, and `MOSTLYRIGHT_SKILL_AUTOINSTALL=0` switches the placement
40
+ off.
41
+
42
+ ## Sign in
43
+
44
+ ```bash
45
+ mr-data login
46
+ mr-data whoami
47
+ ```
48
+
49
+ `login` stores a device key on the current machine. `whoami` checks that key.
50
+
51
+ ## Check the installation
52
+
53
+ ```bash
54
+ mr-data --version
55
+ mr-data --help
56
+ ```
57
+
58
+ ## Build a dataset
59
+
60
+ 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:
61
+
62
+ ```bash
63
+ mr-data dataset create --name "Dataset title" --json
64
+ mr-data dataset categories --json
65
+ mr-data dataset set DATASET_ID --category climate-environment
66
+ mr-data recipe recipe.json --json
67
+ mr-data run --recipe RECIPE_ID --digest RECIPE_DIGEST --full
68
+ mr-data status RUN_ID
69
+ mr-data checks RUN_ID
70
+ mr-data download RUN_ID --output ./out
71
+ ```
72
+
73
+ Use the identifiers returned by registration and run submission. `mr-data dataset create`
74
+ creates a dataset page before a recipe is ready. `mr-data watch RUN_ID` follows a submitted run.
75
+
76
+ To request an offline replay of retained inputs with a registered revision:
77
+
78
+ ```bash
79
+ mr-data run --recipe RECIPE_ID --digest RECIPE_DIGEST --mode replay --sources-from RUN_ID
80
+ ```
81
+
82
+ Studio must have replay enabled and the named successful run must belong to the same table with
83
+ its raw inputs still retained. Replay compares against that run and never becomes the live version.
84
+ Studio returns a typed refusal when replay is unavailable; the CLI does not fetch sources locally.
85
+
86
+ The hosted engine executes sample, full and refresh runs. A refresh uses each source's declared
87
+ update behavior: bounded source windows merge with retained history; snapshot sources are
88
+ revalidated or acquired again. The table's transformations and checks run over the resulting
89
+ source relations. URL windows may use declared query parameters or path placeholders; a fixed
90
+ date URL does not advance automatically. Configure a correction lookback where the publisher
91
+ can revise earlier observations.
92
+
93
+ A source exposing only its current snapshot cannot supply a historical delta. It remains a
94
+ supported source, with snapshot comparison and recomputation rather than a claim that only new
95
+ rows were fetched. Recorded streams use their registered capture and continuation semantics.
96
+
97
+ See [Recipe documents](docs/RECIPE-DOCUMENT.md) for source-window and bootstrap contracts.
98
+ A table's first succeeded run goes live on its own, whatever mode it was; `mr-data promote
99
+ TABLE_ID` records how often it refreshes and why, and puts back a table that was withdrawn. Claim
100
+ a table is live and current only when Studio returns that evidence.
101
+
102
+ ## There is no local execution
103
+
104
+ There used to be. A second product lane built datasets on your own machine, and `mr-data` carried
105
+ about fifty commands for making, running, serving, indexing, checking and signing a build here.
106
+ That lane is gone: the engine it ran now ships only inside the backend's worker images.
107
+
108
+ `mr-data --help` lists every command this product has. The execution engine and its dependency
109
+ closure live in Mostly Right Studio's `apps/worker`; this repository ships no engine extras,
110
+ worker executables or image publisher.
111
+
112
+ ## Documentation
113
+
114
+ - [CLI guide](https://mostlyright.md/docs/guides/cli/)
115
+ - [Hosted research sessions](https://mostlyright.md/docs/guides/hosted-research/)
116
+ - [Credentials](https://mostlyright.md/docs/guides/credentials/)
117
+ - [Public datasets](https://mostlyright.md/docs/guides/use-public-datasets/)
118
+ - [Certified document extraction](docs/DOCUMENT-EXTRACTION.md)
119
+
120
+ Use `mr-data --help` for the full command list and options. Commands that support
121
+ `--json` write one JSON object.
122
+
123
+ `--output` may use a relative path.
124
+
125
+ ## Behavior and limits
126
+
127
+ - Weather Reader versions 1 and 2 accept one extracted GRIB2 record and refuse a multi-record GFS
128
+ or HRRR file. Version 3 reads a bounded collection and selects exactly one sealed record.
129
+ - A single-address credential-free public HTTPS source uses the reviewed hosted route. Bounded
130
+ collections have no route at all; the retired local lane was their only route.
131
+ - A recipe supports up to 256 declared sources. Source count is separate from bounded request concurrency and resource limits. Existing source adapters and Readers retain their own format, pagination, byte, row and credential contracts; a URL collection is not an implicit permission to crawl arbitrary links.
132
+ - A keyed stream venue is named by a credential reference the backend holds, never by a value. No command flag takes a secret as an argument. Venues reached over an actual WebSocket are covered; a venue whose credential comes from an interactive human login, or that is not WebSocket at all, is not.
133
+
134
+ ## Verification
135
+
136
+ ```bash
137
+ make test
138
+ ```
139
+
140
+ `make test` runs the thin client suite while editing. `make verify` is required
141
+ before review or merge.
142
+
143
+ ## Development
144
+
145
+ ```bash
146
+ uv sync --locked
147
+ ```
148
+
149
+ There is no `dev` extra to ask for -- `uv run --extra dev` answers
150
+ ``error: Extra `dev` is not defined in the project's `optional-dependencies` table``. The test
151
+ tooling is the default dependency group, which `uv sync` installs.
152
+
153
+ `make lint` is the repository's one lint set (`uv run ruff check .` plus `uv lock --check`); it is
154
+ the first thing `make verify` runs and the same target the Linux leg of `thin-client-smoke.yml`
155
+ runs, so the two cannot disagree about what is linted.
156
+
157
+ The test suite checks client behavior, contract compatibility and thin package ownership. Backend
158
+ execution and worker-boundary tests run in Studio. The client supports Linux, macOS and Windows.
159
+
160
+ To update the public Studio contract pin, run `make repin STUDIO_GIT=/path/to/studio STUDIO_REF=<commit>`. It reads committed OpenAPI and JSON Schema bytes, records their hashes and source commit in `vendor/studio-contracts/client-v4-pin.json`, and updates the thin client. Run the cross-repository tests against that Studio revision before release. Worker/client generation and backend job-contract repins now belong to Studio.
@@ -10,7 +10,7 @@ they finish.
10
10
 
11
11
  ## Requirements
12
12
 
13
- Use CPython 3.13 or newer. The retired local execution lane (`[local,scientific]` extras) still needs 3.13.
13
+ Use CPython 3.13 or newer.
14
14
 
15
15
  ## Install
16
16
 
@@ -61,6 +61,16 @@ mr-data download RUN_ID --output ./out
61
61
  Use the identifiers returned by registration and run submission. `mr-data dataset create`
62
62
  creates a dataset page before a recipe is ready. `mr-data watch RUN_ID` follows a submitted run.
63
63
 
64
+ To request an offline replay of retained inputs with a registered revision:
65
+
66
+ ```bash
67
+ mr-data run --recipe RECIPE_ID --digest RECIPE_DIGEST --mode replay --sources-from RUN_ID
68
+ ```
69
+
70
+ Studio must have replay enabled and the named successful run must belong to the same table with
71
+ its raw inputs still retained. Replay compares against that run and never becomes the live version.
72
+ Studio returns a typed refusal when replay is unavailable; the CLI does not fetch sources locally.
73
+
64
74
  The hosted engine executes sample, full and refresh runs. A refresh uses each source's declared
65
75
  update behavior: bounded source windows merge with retained history; snapshot sources are
66
76
  revalidated or acquired again. The table's transformations and checks run over the resulting
@@ -83,10 +93,9 @@ There used to be. A second product lane built datasets on your own machine, and
83
93
  about fifty commands for making, running, serving, indexing, checking and signing a build here.
84
94
  That lane is gone: the engine it ran now ships only inside the backend's worker images.
85
95
 
86
- `mr-data --help` lists every command this product has. A name that is not on it is not a command
87
- and says so. The distribution still publishes a `[local]` extra — that is the engine's dependency
88
- closure, which the backend's worker image installs — and installing it makes no command run that
89
- does not run without it.
96
+ `mr-data --help` lists every command this product has. The execution engine and its dependency
97
+ closure live in Mostly Right Studio's `apps/worker`; this repository ships no engine extras,
98
+ worker executables or image publisher.
90
99
 
91
100
  ## Documentation
92
101
 
@@ -113,17 +122,27 @@ Use `mr-data --help` for the full command list and options. Commands that suppor
113
122
  ## Verification
114
123
 
115
124
  ```bash
116
- make test-fast
125
+ make test
117
126
  ```
118
127
 
119
- `make test-fast` is non-authoritative and is useful while editing. `make verify` is required
128
+ `make test` runs the thin client suite while editing. `make verify` is required
120
129
  before review or merge.
121
130
 
122
131
  ## Development
123
132
 
124
133
  ```bash
125
- uv sync --locked --extra dev --extra local-search-neural
134
+ uv sync --locked
126
135
  ```
127
136
 
128
- The test suite drives the execution engine in-process, and requires Linux for the worker-boundary
129
- tests. The client itself is tested on Linux, macOS, and Windows.
137
+ There is no `dev` extra to ask for -- `uv run --extra dev` answers
138
+ ``error: Extra `dev` is not defined in the project's `optional-dependencies` table``. The test
139
+ tooling is the default dependency group, which `uv sync` installs.
140
+
141
+ `make lint` is the repository's one lint set (`uv run ruff check .` plus `uv lock --check`); it is
142
+ the first thing `make verify` runs and the same target the Linux leg of `thin-client-smoke.yml`
143
+ runs, so the two cannot disagree about what is linted.
144
+
145
+ The test suite checks client behavior, contract compatibility and thin package ownership. Backend
146
+ execution and worker-boundary tests run in Studio. The client supports Linux, macOS and Windows.
147
+
148
+ To update the public Studio contract pin, run `make repin STUDIO_GIT=/path/to/studio STUDIO_REF=<commit>`. It reads committed OpenAPI and JSON Schema bytes, records their hashes and source commit in `vendor/studio-contracts/client-v4-pin.json`, and updates the thin client. Run the cross-repository tests against that Studio revision before release. Worker/client generation and backend job-contract repins now belong to Studio.
@@ -0,0 +1,131 @@
1
+ [project]
2
+ name = "mostlyright-data"
3
+ version = "0.19.0"
4
+ description = "Mostly Right hosted CLI for reviewed datasets"
5
+ readme = "README.md"
6
+ requires-python = ">=3.13"
7
+ # The published Harness package is a pure-Python, stdlib-only hosted client. Dataset execution,
8
+ # native readers, and worker publication live in Mostly Right Studio.
9
+ dependencies = []
10
+
11
+ [project.urls]
12
+ Homepage = "https://mostlyright.md/"
13
+ Documentation = "https://mostlyright.md/docs/guides/cli/"
14
+
15
+ [project.scripts]
16
+ mr-data = "mostlyright.data_harness.thin.router:main"
17
+
18
+ [project.optional-dependencies]
19
+ build = [
20
+ "hatchling==1.28.0",
21
+ "uv-build==0.11.3",
22
+ ]
23
+
24
+ [dependency-groups]
25
+ dev = [
26
+ "cmarkgfm>=2025.10.22",
27
+ "jsonschema[format]>=4.23,<5",
28
+ "pytest>=8.3",
29
+ "pytest-xdist>=3.6",
30
+ # Test-only, and only for `tests/test_thin_v4_contract.py`'s cross-check of its hand-written
31
+ # OpenAPI scan against a real parser. It never enters the distribution, whose runtime
32
+ # dependency list is empty; the guard it unblocks was unreachable in every configuration
33
+ # while the extra that used to carry pyyaml no longer existed.
34
+ "pyyaml>=6.0",
35
+ "referencing>=0.35,<1",
36
+ "ruff>=0.9",
37
+ ]
38
+ pypi-release = ["twine==6.2.0"]
39
+
40
+ [build-system]
41
+ requires = ["hatchling==1.28.0"]
42
+ build-backend = "hatchling.build"
43
+
44
+ [tool.hatch.build.targets.wheel]
45
+ sources = ["src"]
46
+ only-include = [
47
+ "src/mostlyright/data_harness/__init__.py",
48
+ "src/mostlyright/data_harness/canonical.py",
49
+ "src/mostlyright/data_harness/formats.py",
50
+ "src/mostlyright/data_harness/hosted_crawler_protocol.py",
51
+ "src/mostlyright/data_harness/key_seam.py",
52
+ "src/mostlyright/data_harness/page_coverage.py",
53
+ "src/mostlyright/data_harness/part_check_evidence.py",
54
+ "src/mostlyright/data_harness/session_probes.py",
55
+ "src/mostlyright/data_harness/skill_assets.py",
56
+ "src/mostlyright/data_harness/table_manifest.py",
57
+ "src/mostlyright/data_harness/thin",
58
+ "src/mostlyright/data_harness/ux/__init__.py",
59
+ "src/mostlyright/data_harness/ux/attendance.py",
60
+ "src/mostlyright/data_harness/ux/clarification.py",
61
+ "src/mostlyright/data_harness/ux/cloud_auth.py",
62
+ "src/mostlyright/data_harness/ux/credential_native.py",
63
+ "src/mostlyright/data_harness/ux/credential_store.py",
64
+ "src/mostlyright/data_harness/ux/credentials.py",
65
+ "src/mostlyright/data_harness/ux/login.py",
66
+ "src/mostlyright/data_harness/ux/path_kind.py",
67
+ "src/mostlyright/data_harness/ux/plain_file.py",
68
+ "src/mostlyright/data_harness/ux/remediation.py",
69
+ "src/mostlyright/data_harness/ux/render.py",
70
+ "src/mostlyright/data_harness/ux/commands/__init__.py",
71
+ "src/mostlyright/data_harness/ux/commands/auth.py",
72
+ "src/mostlyright/data_harness/ux/commands/clarify.py",
73
+ "src/mostlyright/data_harness/ux/commands/login.py",
74
+ "src/mostlyright/data_harness/ux/commands/whoami.py",
75
+ ]
76
+
77
+ [tool.hatch.build.targets.wheel.force-include]
78
+ "skills/mr-data-build" = "mostlyright/data_harness/skill_tree/mr-data-build"
79
+
80
+ [tool.hatch.build.targets.sdist]
81
+ only-include = [
82
+ "scripts/hatch_build.py",
83
+ "skills/mr-data-build",
84
+ "src/mostlyright/data_harness/__init__.py",
85
+ "src/mostlyright/data_harness/canonical.py",
86
+ "src/mostlyright/data_harness/formats.py",
87
+ "src/mostlyright/data_harness/hosted_crawler_protocol.py",
88
+ "src/mostlyright/data_harness/key_seam.py",
89
+ "src/mostlyright/data_harness/page_coverage.py",
90
+ "src/mostlyright/data_harness/part_check_evidence.py",
91
+ "src/mostlyright/data_harness/session_probes.py",
92
+ "src/mostlyright/data_harness/skill_assets.py",
93
+ "src/mostlyright/data_harness/table_manifest.py",
94
+ "src/mostlyright/data_harness/thin",
95
+ "src/mostlyright/data_harness/ux/__init__.py",
96
+ "src/mostlyright/data_harness/ux/attendance.py",
97
+ "src/mostlyright/data_harness/ux/clarification.py",
98
+ "src/mostlyright/data_harness/ux/cloud_auth.py",
99
+ "src/mostlyright/data_harness/ux/credential_native.py",
100
+ "src/mostlyright/data_harness/ux/credential_store.py",
101
+ "src/mostlyright/data_harness/ux/credentials.py",
102
+ "src/mostlyright/data_harness/ux/login.py",
103
+ "src/mostlyright/data_harness/ux/path_kind.py",
104
+ "src/mostlyright/data_harness/ux/plain_file.py",
105
+ "src/mostlyright/data_harness/ux/remediation.py",
106
+ "src/mostlyright/data_harness/ux/render.py",
107
+ "src/mostlyright/data_harness/ux/commands",
108
+ ]
109
+
110
+ [tool.hatch.build.hooks.custom]
111
+ path = "scripts/hatch_build.py"
112
+
113
+ [tool.pytest.ini_options]
114
+ testpaths = ["tests"]
115
+ addopts = "-ra --strict-markers"
116
+ markers = [
117
+ "cross_repo: requires the exact sibling Studio contract/client tree",
118
+ "scale: exercises product-sized fixtures or a complete input domain",
119
+ "isolated_install: builds and exercises an isolated installed distribution",
120
+ "repository_scan: scans the complete live repository tree",
121
+ "contention_sensitive: crosses a wall-clock deadline -- its own or one the production code it drives enforces -- or measures RSS or a thread race, so it observes an idle machine",
122
+ ]
123
+ tmp_path_retention_policy = "failed"
124
+ tmp_path_retention_count = 96
125
+
126
+ [tool.ruff]
127
+ line-length = 100
128
+ target-version = "py311"
129
+
130
+ [tool.ruff.lint]
131
+ select = ["E", "F", "I", "UP", "B", "RUF"]
@@ -22,9 +22,9 @@ from hatchling.builders.hooks.plugin.interface import BuildHookInterface
22
22
  # The platform-specific tags this hook used to emit (`cp313-cp313-macosx_11_0_arm64`,
23
23
  # `cp313-cp313-linux_x86_64`) were a local-lane policy fence, never a statement about the
24
24
  # wheel's bytes. That fence kept Windows from having a wheel at all and held the thin-client
25
- # smoke to Linux. Where a platform restriction still exists it belongs to what needs it: the
26
- # native Reader binding selected by the `[local]` extra carries its own OS markers and its own
27
- # platform-tagged wheels, and the supported interpreter is `requires-python`'s to state.
25
+ # smoke to Linux. Where a platform restriction still exists it belongs to what needs it, and
26
+ # nothing this distribution ships needs one: the native Reader bindings and their platform-tagged
27
+ # wheels are Studio's (ADR 0032), and the supported interpreter is `requires-python`'s to state.
28
28
  WHEEL_TAG = "py3-none-any"
29
29
 
30
30
  #: Every platform's spelling of "this is a compiled artifact", not merely this build host's. The
@@ -122,9 +122,9 @@ gap rather than doing anything, and `export-hosted-candidate`, which is a backen
122
122
  | `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. |
123
123
  | `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. |
124
124
  | `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. |
125
- | `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. |
125
+ | `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 mode is one of six: `sample`, `full`, `refresh`, `backfill`, `compact` and `replay`. Four have a shorthand flag (`--sample`, `--full`, `--refresh`, `--backfill`) and two do not, so write `--mode MODE`, which is accepted for every one of them. 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` states the exact window with `--window START END`. `--mode replay --sources-from RUN_ID` asks Studio to run the registered revision against the RETAINED RAW INPUTS of one named successful run of the same table: nothing is fetched from this computer, nothing is acquired again, the result is compared against that run and never becomes the live version, and it neither asks for nor records an approval. Where Studio has replay switched off, or the named run is not successful, not the same table, or no longer retains its inputs, it answers a typed refusal — report the code rather than retrying in another mode. `--sources-from` on any other mode is refused `THIN_ARGUMENT_INVALID` before anything is sent. `--max-rows` and `--max-source-bytes` bound ONE SOURCE rather than the finished table. A large run is held for a spend confirmation, which `--confirm` settles and whose printed `confirm_command` re-states every argument the request carried; a sample-first held full requires Studio's interactive human approval instead. `--cancel RUN` stops one. |
126
126
  | `mr-data status` | Report which of the seven states one run is in, what it delivered and whether a ceiling cut it short, and — on a failure — what failed and where. Exits non-zero on a failed run. |
127
- | `mr-data runs` | Report this workspace's own runs: identifier, mode, state and creation time, plus the failure triple of any that failed. `--status` and `--mode` narrow it and are refused for a word outside the seven or the four; `--limit` says how many, and pages are followed to reach it. |
127
+ | `mr-data runs` | Report this workspace's own runs: identifier, mode, state and creation time, plus the failure triple of any that failed. `--status` and `--mode` narrow it and are refused `THIN_ARGUMENT_INVALID` for a word outside the seven states or the six modes; `--limit` says how many, and pages are followed to reach it. |
128
128
  | `mr-data watch` | Stream one run's live progress under the durable event type of each stage, resuming across stream cuts. Exits non-zero when the run failed. |
129
129
  | `mr-data query` | Run one bounded read-only SQL statement over a finished run's own table and print the rows. Bounded on rows, on answer bytes and on time, and refused by name when a bound is crossed. |
130
130
  | `mr-data peek` | Print the columns, their logical types and the first rows of one run's table. The type comes off the run's own column profile where the preview carries none, so `type` is null only for a run that sealed no profile. |
@@ -182,9 +182,10 @@ what the submission printed and what the dashboard address contains.
182
182
  ## Installation parity
183
183
 
184
184
  Published distributions install with `pip`, and `pip install mostlyright-data` is the whole of it.
185
- The distribution also publishes a `[local]` extra: that is the execution engine's dependency
186
- closure, which the backend's worker image installs, and it makes no `mr-data` command run that does
187
- not run without it. Do not install it and do not offer it to a user as a way to get a command back.
185
+ There is no extra, no second profile and no native wheel: the distribution resolves no third-party
186
+ package at all, and the execution engine, the readers and the worker image live in Mostly Right
187
+ Studio. Do not offer a user an install as a way to get a command back — there is none, and no
188
+ command's behavior depends on what else a machine has.
188
189
 
189
190
  From a Harness checkout, install or update the persistent CLI and the complete Codex and Claude
190
191
  Code skill trees together:
@@ -209,8 +210,8 @@ neither can interleave with the other. Exact final verification commits the new
209
210
  later private-backup cleanup warning does not invalidate it and names the retained recovery path.
210
211
 
211
212
  That installer is for somebody working ON the Harness repository: it installs from a checkout
212
- rather than from `pip`, and it also installs the exact pinned wheel for Studio's separately owned
213
- generated client. A machine that is only using the product installs from `pip` instead.
213
+ rather than from `pip`, and what it installs is exactly the distribution and nothing else. A
214
+ machine that is only using the product installs from `pip` instead.
214
215
 
215
216
  ## Cloud authentication preflight
216
217
 
@@ -801,8 +802,9 @@ the two temperature scales are offsets rather than multipliers.
801
802
  ### 5. Build — take an unwindowed sample first
802
803
 
803
804
  Take an unwindowed sample before a full run. Choose row and source-byte bounds that exercise the
804
- shape without pretending they selected a time range. The current worker does not render a run
805
- window into any source request, so any stated `--window` is refused before acquisition.
805
+ shape without pretending they selected a time range. A stated `--window` may be refused by the
806
+ build service before acquisition; report the typed code it answers with rather than retrying the
807
+ same run in another mode.
806
808
 
807
809
  ```sh
808
810
  mr-data run --recipe RECIPE_ID --digest RECIPE_DIGEST --sample --max-rows 2000 --json
@@ -882,14 +884,14 @@ sample. A run's narrative closes with the run, so a cell appended after that ans
882
884
  which is the other reason the search belongs there.
883
885
  [Narrating the run](#narrating-the-run) is the reference for what either cell may carry.
884
886
 
885
- **The protocol's three clamps do not behave alike, and the executable subset is narrower.** In the
886
- protocol, on `--sample`, `max_rows` and `window` truncate: the run succeeds at the clamp boundary
887
- and reports the coverage it actually delivered. `max_source_bytes` refuses in every mode, sample
888
- included, and on `full`, `refresh` and `backfill`, hitting any clamp is a refusal with
889
- `CLAMP_EXCEEDED`. The current worker admits `sample`, `full` and `refresh` and refuses `backfill` before applying
890
- those dispositions. A declared supported source window narrows that source's refresh request; it
891
- does not make every source or connector incremental. Therefore an executable sample may truncate
892
- on `max_rows`, and an executable full or refresh refuses a crossed row or byte ceiling.
887
+ **The protocol's three clamps do not behave alike.** On `--sample`, `max_rows` and `window`
888
+ truncate: the run succeeds at the clamp boundary and reports the coverage it actually delivered.
889
+ `max_source_bytes` refuses in every mode, sample included, and on `full`, `refresh` and `backfill`,
890
+ hitting any clamp is a refusal with `CLAMP_EXCEEDED`. Which modes and clamps the build service
891
+ admits before those dispositions run is its own to decide and can be narrower than the protocol;
892
+ a mode or clamp outside it comes back as a typed refusal, which you report rather than work
893
+ around. A declared supported source window narrows that source's refresh request; it does not
894
+ make every source or connector incremental.
893
895
 
894
896
  **A succeeded run carries `coverage`, and `truncated` is required on every entry.** That is how a
895
897
  complete acquired response is told from one cut at fifty thousand rows without opening the
@@ -908,7 +910,7 @@ revalidatable unless an explicit closure contract says they cannot change. A ref
908
910
  windowed source slice into retained source state and recomputes the complete transform; unrelated
909
911
  snapshot sources are conditionally revalidated or re-acquired as needed. Cursor, pagination and
910
912
  new-file discovery need their own supported source contract and must not be represented as a date
911
- window. A `backfill` remains refused before acquisition.
913
+ window. A `backfill` may be refused before acquisition; the refusal says so.
912
914
 
913
915
  ### 6. Interrogate — ask the run what it actually delivered
914
916
 
@@ -1666,9 +1668,10 @@ What it costs the protocol, and what to do instead:
1666
1668
  - Preserve event time, available time, acquisition time, source revision, and timezone. Do not use
1667
1669
  post-cutoff information in targets, labels, features, joins, or validation decisions.
1668
1670
  - When the question is **what changed over time**, or the table needs point-in-time features, and
1669
- the source answers only with the present, declare a `snapshot` window on that source: it stamps
1670
- every row with the UTC day it was acquired on and keeps one partition per day. Compute a
1671
- transition with `lag(column) over (partition by <identity> order by <snapshot column>)` and keep
1671
+ the source answers only with the present, declare a `snapshot` window on that source: Studio's
1672
+ worker stamps every row with the UTC day it acquired the source on and keeps one partition per
1673
+ day. Compute a transition with
1674
+ `lag(column) over (partition by <identity> order by <snapshot column>)` and keep
1672
1675
  the rows where the two are `is distinct from` each other. Never diff two sealed versions by hand;
1673
1676
  a version is not a date, and nothing outside the seal can be replayed.
1674
1677
 
@@ -0,0 +1,46 @@
1
+ """The hosted ``mr-data`` client package, and the closed public surface it actually provides.
2
+
3
+ ⚠ AN EXPORT IS A PROMISE THE INSTALLED WHEEL HAS TO KEEP. This module used to resolve fifty-eight
4
+ names through a ``__getattr__`` over a table of module coordinates, and the table outlived the
5
+ modules: the execution engine moved to Studio and every coordinate naming ``pipeline``, ``offline``,
6
+ ``recipe``, ``contracts``, ``local_contracts``, ``studio_boundary`` or ``review`` became an import
7
+ that raises inside the shipped wheel. A dynamic coordinate is also invisible to the ownership
8
+ scanner, so nothing held the table to the tree. Both problems have the same fix: the exports are
9
+ plain imports of modules this distribution ships, so a missing one is an ImportError at build and
10
+ test time rather than an AttributeError in somebody else's program.
11
+
12
+ What is left is the canonical-JSON leaf, which the wire contracts share, and the version. Every
13
+ command surface is reached through :mod:`mostlyright.data_harness.thin`.
14
+ """
15
+
16
+ from importlib import metadata as _metadata
17
+
18
+ from mostlyright.data_harness.canonical import (
19
+ CanonicalJSONError,
20
+ canonical_json_bytes,
21
+ canonical_sha256,
22
+ parse_canonical_json,
23
+ parse_json,
24
+ )
25
+
26
+
27
+ def package_version() -> str:
28
+ """Return the installed distribution version or an honest source-tree fallback."""
29
+
30
+ try:
31
+ return _metadata.version("mostlyright-data")
32
+ except _metadata.PackageNotFoundError:
33
+ return "uninstalled"
34
+
35
+
36
+ __version__ = package_version()
37
+
38
+ __all__ = [
39
+ "CanonicalJSONError",
40
+ "__version__",
41
+ "canonical_json_bytes",
42
+ "canonical_sha256",
43
+ "package_version",
44
+ "parse_canonical_json",
45
+ "parse_json",
46
+ ]