mostlyright-data 0.18.2__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.2 → mostlyright_data-0.19.0}/README.md +29 -10
  4. mostlyright_data-0.19.0/pyproject.toml +131 -0
  5. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/scripts/hatch_build.py +3 -3
  6. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/skills/mr-data-build/SKILL.md +27 -18
  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.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/key_seam.py +11 -93
  10. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/part_check_evidence.py +9 -121
  11. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/session_probes.py +9 -69
  12. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/acquire.py +2 -3
  13. {mostlyright_data-0.18.2 → 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.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/propose.py +4 -39
  16. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/recipe.py +3 -4
  17. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/router.py +11 -16
  18. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/stream.py +4 -1
  19. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/transport.py +14 -0
  20. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/user_agent.py +5 -3
  21. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4.py +19 -7
  22. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_runs.py +97 -12
  23. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_tables.py +6 -0
  24. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/vocabulary.py +79 -4
  25. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/clarification.py +8 -7
  26. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/__init__.py +1 -55
  27. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/auth.py +0 -12
  28. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/remediation.py +15 -80
  29. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/render.py +0 -18
  30. mostlyright_data-0.18.2/.gitignore +0 -34
  31. mostlyright_data-0.18.2/PKG-INFO +0 -292
  32. mostlyright_data-0.18.2/pyproject.toml +0 -315
  33. mostlyright_data-0.18.2/skills/mr-data-build/scripts/write_visual_run.py +0 -255
  34. mostlyright_data-0.18.2/src/mostlyright/_vendor/__init__.py +0 -1
  35. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/LICENSE +0 -203
  36. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/PROVENANCE.json +0 -97
  37. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/__init__.py +0 -39
  38. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/__init__.pyi +0 -12
  39. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/_version.py +0 -24
  40. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/__init__.py +0 -6
  41. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/cal_rec_boxes/main.py +0 -335
  42. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/__init__.py +0 -7
  43. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/main.py +0 -106
  44. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_cls/utils.py +0 -55
  45. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/__init__.py +0 -7
  46. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/main.py +0 -104
  47. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_det/utils.py +0 -300
  48. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/__init__.py +0 -7
  49. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/main.py +0 -141
  50. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/typings.py +0 -58
  51. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/ch_ppocr_rec/utils.py +0 -186
  52. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/config.yaml +0 -65
  53. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/inference_engine/__init__.py +0 -3
  54. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/inference_engine/base.py +0 -59
  55. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/__init__.py +0 -6
  56. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/main.py +0 -89
  57. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/inference_engine/onnxruntime/provider_config.py +0 -27
  58. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/main.py +0 -430
  59. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_det_small.onnx +0 -0
  60. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/models/PP-OCRv6_rec_small.onnx +0 -0
  61. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/models/ch_ppocr_mobile_v2.0_cls_mobile.onnx +0 -0
  62. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/py.typed +0 -0
  63. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/__init__.py +0 -3
  64. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/load_image.py +0 -25
  65. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/log.py +0 -40
  66. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/model_resolver.py +0 -14
  67. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/output.py +0 -31
  68. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/parse_parameters.py +0 -94
  69. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/process_img.py +0 -199
  70. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/typings.py +0 -68
  71. mostlyright_data-0.18.2/src/mostlyright/_vendor/rapidocr/utils/utils.py +0 -43
  72. mostlyright_data-0.18.2/src/mostlyright/data_harness/__init__.py +0 -158
  73. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/__init__.py +0 -55
  74. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/derived_credentials.py +0 -506
  75. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/http.py +0 -4329
  76. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/parsing.py +0 -1678
  77. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/ranges.py +0 -495
  78. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/result_download.py +0 -360
  79. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -248
  80. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/sandbox.py +0 -7417
  81. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/sandbox_bootstrap.py +0 -20
  82. mostlyright_data-0.18.2/src/mostlyright/data_harness/acquisition/url_policy.py +0 -618
  83. mostlyright_data-0.18.2/src/mostlyright/data_harness/agent_runtime.py +0 -2743
  84. mostlyright_data-0.18.2/src/mostlyright/data_harness/assets/logo-ink.svg +0 -31
  85. mostlyright_data-0.18.2/src/mostlyright/data_harness/backends/__init__.py +0 -28
  86. mostlyright_data-0.18.2/src/mostlyright/data_harness/backends/pandas_backend.py +0 -350
  87. mostlyright_data-0.18.2/src/mostlyright/data_harness/backends/polars_backend.py +0 -366
  88. mostlyright_data-0.18.2/src/mostlyright/data_harness/backends/protocol.py +0 -124
  89. mostlyright_data-0.18.2/src/mostlyright/data_harness/backends/reference.py +0 -83
  90. mostlyright_data-0.18.2/src/mostlyright/data_harness/backends/registry.py +0 -55
  91. mostlyright_data-0.18.2/src/mostlyright/data_harness/backends/restrictions.py +0 -126
  92. mostlyright_data-0.18.2/src/mostlyright/data_harness/bounded_query.py +0 -729
  93. mostlyright_data-0.18.2/src/mostlyright/data_harness/bounded_scratch_sink.py +0 -223
  94. mostlyright_data-0.18.2/src/mostlyright/data_harness/catalog_job.py +0 -625
  95. mostlyright_data-0.18.2/src/mostlyright/data_harness/cli.py +0 -5324
  96. mostlyright_data-0.18.2/src/mostlyright/data_harness/compact_worker.py +0 -483
  97. mostlyright_data-0.18.2/src/mostlyright/data_harness/contracts.py +0 -65
  98. mostlyright_data-0.18.2/src/mostlyright/data_harness/coordinator.py +0 -1307
  99. mostlyright_data-0.18.2/src/mostlyright/data_harness/crosswalks.py +0 -268
  100. mostlyright_data-0.18.2/src/mostlyright/data_harness/declared_checks.py +0 -1595
  101. mostlyright_data-0.18.2/src/mostlyright/data_harness/delta.py +0 -353
  102. mostlyright_data-0.18.2/src/mostlyright/data_harness/delta_checks.py +0 -466
  103. mostlyright_data-0.18.2/src/mostlyright/data_harness/delta_classifier.py +0 -875
  104. mostlyright_data-0.18.2/src/mostlyright/data_harness/delta_persist.py +0 -750
  105. mostlyright_data-0.18.2/src/mostlyright/data_harness/delta_recompute.py +0 -348
  106. mostlyright_data-0.18.2/src/mostlyright/data_harness/delta_rows.py +0 -630
  107. mostlyright_data-0.18.2/src/mostlyright/data_harness/deploy.py +0 -924
  108. mostlyright_data-0.18.2/src/mostlyright/data_harness/deploy_target.py +0 -312
  109. mostlyright_data-0.18.2/src/mostlyright/data_harness/deployment_evidence.py +0 -1067
  110. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/__init__.py +0 -87
  111. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/_worker_capability.py +0 -262
  112. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/capture.py +0 -2201
  113. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/contracts.py +0 -1135
  114. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/lane.py +0 -528
  115. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/ocr.py +0 -879
  116. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/pdf.py +0 -2527
  117. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/registry.py +0 -652
  118. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/sandbox.py +0 -3140
  119. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/selections.py +0 -430
  120. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/tables.py +0 -994
  121. mostlyright_data-0.18.2/src/mostlyright/data_harness/documents/vendor_rapidocr.py +0 -138
  122. mostlyright_data-0.18.2/src/mostlyright/data_harness/events.py +0 -2152
  123. mostlyright_data-0.18.2/src/mostlyright/data_harness/fast_delimited.py +0 -239
  124. mostlyright_data-0.18.2/src/mostlyright/data_harness/fetch_egress_smoke.py +0 -107
  125. mostlyright_data-0.18.2/src/mostlyright/data_harness/governors.py +0 -1163
  126. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_bootstrap.py +0 -1405
  127. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_crawler.py +0 -1175
  128. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -351
  129. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -753
  130. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_crawler_job.py +0 -1436
  131. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -677
  132. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_deploy.py +0 -3038
  133. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -504
  134. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -375
  135. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -40
  136. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_ingestion_worker.py +0 -267
  137. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_rlimit_as_container_smoke.py +0 -123
  138. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_run_worker.py +0 -13294
  139. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -196
  140. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_session_worker.py +0 -4988
  141. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -46
  142. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -89
  143. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_stream_recorder_job.py +0 -2138
  144. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_stream_subscription_container_smoke.py +0 -52
  145. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_stream_subscription_worker.py +0 -842
  146. mostlyright_data-0.18.2/src/mostlyright/data_harness/hosted_worker.py +0 -9840
  147. mostlyright_data-0.18.2/src/mostlyright/data_harness/incremental_slice_executor.py +0 -874
  148. mostlyright_data-0.18.2/src/mostlyright/data_harness/incremental_worker.py +0 -524
  149. mostlyright_data-0.18.2/src/mostlyright/data_harness/ingestion/__init__.py +0 -56
  150. mostlyright_data-0.18.2/src/mostlyright/data_harness/ingestion/contracts.py +0 -461
  151. mostlyright_data-0.18.2/src/mostlyright/data_harness/ingestion/faults.py +0 -42
  152. mostlyright_data-0.18.2/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -1194
  153. mostlyright_data-0.18.2/src/mostlyright/data_harness/ingestion/spool.py +0 -130
  154. mostlyright_data-0.18.2/src/mostlyright/data_harness/ingestion/store.py +0 -885
  155. mostlyright_data-0.18.2/src/mostlyright/data_harness/inprocess_acquisition.py +0 -4947
  156. mostlyright_data-0.18.2/src/mostlyright/data_harness/legacy_table_recovery.py +0 -281
  157. mostlyright_data-0.18.2/src/mostlyright/data_harness/legacy_table_recovery_contract.py +0 -74
  158. mostlyright_data-0.18.2/src/mostlyright/data_harness/linux_process_boundary.py +0 -987
  159. mostlyright_data-0.18.2/src/mostlyright/data_harness/local_contracts.py +0 -3635
  160. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -212
  161. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/__init__.py +0 -12
  162. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/chrome.py +0 -359
  163. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/code_body.py +0 -266
  164. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/document.py +0 -407
  165. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/frame.py +0 -275
  166. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/interactive.py +0 -337
  167. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -477
  168. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/mr_components.py +0 -134
  169. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -595
  170. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -906
  171. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -260
  172. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -176
  173. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -400
  174. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/parse.py +0 -394
  175. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/status.py +0 -40
  176. mostlyright_data-0.18.2/src/mostlyright/data_harness/nbrender/tokens.py +0 -1295
  177. mostlyright_data-0.18.2/src/mostlyright/data_harness/notebook.py +0 -1710
  178. mostlyright_data-0.18.2/src/mostlyright/data_harness/offline.py +0 -2049
  179. mostlyright_data-0.18.2/src/mostlyright/data_harness/operation_registry.py +0 -1007
  180. mostlyright_data-0.18.2/src/mostlyright/data_harness/operator_setup.py +0 -239
  181. mostlyright_data-0.18.2/src/mostlyright/data_harness/pipeline.py +0 -7125
  182. mostlyright_data-0.18.2/src/mostlyright/data_harness/plan_graph.py +0 -2067
  183. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/__init__.py +0 -104
  184. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/contracts.py +0 -1017
  185. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/engine.py +0 -221
  186. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/errors.py +0 -14
  187. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/gates.py +0 -751
  188. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/joins.py +0 -574
  189. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/profile.py +0 -384
  190. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/table.py +0 -217
  191. mostlyright_data-0.18.2/src/mostlyright/data_harness/preparation/transforms.py +0 -568
  192. mostlyright_data-0.18.2/src/mostlyright/data_harness/progress_events.py +0 -654
  193. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/__init__.py +0 -46
  194. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/_openpyxl.py +0 -17
  195. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/budgets.py +0 -48
  196. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/configurable_delimited.py +0 -284
  197. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/containers.py +0 -963
  198. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/contracts.py +0 -542
  199. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/delimited.py +0 -257
  200. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/geojson_vector.py +0 -442
  201. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/geopackage.py +0 -346
  202. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/geoparquet.py +0 -213
  203. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -33
  204. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/grib2/admission.py +0 -722
  205. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/grib2/collection.py +0 -444
  206. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/grib2/collection_reader.py +0 -198
  207. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/grib2/decode.py +0 -1009
  208. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -1133
  209. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -501
  210. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/grib_eccodes.py +0 -553
  211. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/html_tabular.py +0 -380
  212. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/html_web_extract.py +0 -814
  213. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/json_tabular.py +0 -485
  214. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -158
  215. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/pcaxis_px.py +0 -485
  216. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/protobuf_tabular.py +0 -454
  217. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/__init__.py +0 -78
  218. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/_bytes.py +0 -54
  219. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/decode.py +0 -306
  220. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/family.py +0 -326
  221. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/jpeg2000.py +0 -177
  222. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/profiles.py +0 -235
  223. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/rendered.py +0 -122
  224. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/safe.py +0 -168
  225. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +0 -488
  226. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/raster/tiff.py +0 -515
  227. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/registry.py +0 -1045
  228. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/README.md +0 -110
  229. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  230. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -24
  231. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  232. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -24
  233. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  234. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -24
  235. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  236. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -24
  237. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  238. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -25
  239. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  240. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -25
  241. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  242. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -25
  243. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -3
  244. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -23
  245. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -5
  246. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -25
  247. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -30
  248. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -5
  249. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/expected.json +0 -41
  250. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/delimited_text/2.0.0/publisher_preamble/indices.csv +0 -5
  251. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +0 -36
  252. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +0 -17
  253. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +0 -29
  254. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
  255. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +0 -28
  256. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
  257. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/expected.json +0 -24
  258. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/html.tabular/1.0.0/sanitized_table/table.html +0 -4
  259. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/expected.json +0 -27
  260. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/html.web_extract/1.0.0/json_ld_scorecards/scorecards.html +0 -1
  261. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/article.html +0 -3
  262. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/html.web_extract/1.1.0/article_text_order/expected.json +0 -28
  263. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +0 -31
  264. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
  265. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -44
  266. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -1
  267. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -48
  268. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -4
  269. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
  270. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +0 -25
  271. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +0 -51
  272. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
  273. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +0 -17
  274. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
  275. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +0 -17
  276. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
  277. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +0 -17
  278. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
  279. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +0 -25
  280. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +0 -12
  281. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +0 -27
  282. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +0 -1
  283. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -25
  284. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
  285. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/expected.json +0 -45
  286. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/gtfs-realtime.desc +0 -0
  287. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/protobuf.tabular/1.0.0/gtfs_realtime_trip_updates/trip-updates.pb +0 -7
  288. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +0 -36
  289. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
  290. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +0 -32
  291. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
  292. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +0 -31
  293. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
  294. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +0 -36
  295. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/himawari-hsd-b13-complete.zip +0 -0
  296. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +0 -54
  297. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
  298. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +0 -50
  299. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
  300. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +0 -47
  301. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
  302. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +0 -29
  303. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +0 -1
  304. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +0 -47
  305. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
  306. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +0 -47
  307. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
  308. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +0 -50
  309. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
  310. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +0 -56
  311. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
  312. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +0 -47
  313. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
  314. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +0 -50
  315. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
  316. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  317. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -24
  318. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -27
  319. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  320. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -27
  321. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  322. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -20
  323. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -55
  324. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  325. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -54
  326. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  327. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -54
  328. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  329. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -54
  330. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  331. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +0 -50
  332. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
  333. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +0 -17
  334. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +0 -3
  335. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +0 -16
  336. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +0 -4
  337. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/expected.json +0 -42
  338. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/pacer_rss_feed/feed.xml +0 -8
  339. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/expected.json +0 -40
  340. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/sec_form_d_filing/filing.xml +0 -10
  341. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/agenda.xml +0 -5
  342. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples/xml.tabular/1.0.0/unified_agenda_extract/expected.json +0 -39
  343. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/samples.py +0 -582
  344. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific.py +0 -1085
  345. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +0 -47
  346. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/container.py +0 -228
  347. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +0 -189
  348. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +0 -407
  349. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +0 -618
  350. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +0 -201
  351. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/native.py +0 -606
  352. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +0 -255
  353. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +0 -496
  354. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +0 -396
  355. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +0 -491
  356. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_catalog.py +0 -49
  357. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +0 -95
  358. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +0 -101
  359. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +0 -360
  360. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +0 -718
  361. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_segmented/native.py +0 -200
  362. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +0 -365
  363. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +0 -877
  364. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +0 -1200
  365. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/sdmx_json.py +0 -585
  366. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/spreadsheet.py +0 -801
  367. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/statistical_microdata.py +0 -447
  368. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/tabular.py +0 -510
  369. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/vector.py +0 -129
  370. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/vector_wkb.py +0 -199
  371. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/xbrl_facts.py +0 -317
  372. mostlyright_data-0.18.2/src/mostlyright/data_harness/readers/xml_tabular.py +0 -373
  373. mostlyright_data-0.18.2/src/mostlyright/data_harness/recipe.py +0 -5638
  374. mostlyright_data-0.18.2/src/mostlyright/data_harness/review.py +0 -2533
  375. mostlyright_data-0.18.2/src/mostlyright/data_harness/rowset.py +0 -301
  376. mostlyright_data-0.18.2/src/mostlyright/data_harness/run_execution_v4.py +0 -4369
  377. mostlyright_data-0.18.2/src/mostlyright/data_harness/run_phase_timing.py +0 -73
  378. mostlyright_data-0.18.2/src/mostlyright/data_harness/signing.py +0 -101
  379. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_bootstrap.py +0 -238
  380. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_bundle_writer.py +0 -597
  381. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_discovery.py +0 -898
  382. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_history_candidate_child.py +0 -188
  383. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_history_transform_child.py +0 -151
  384. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_inventory.py +0 -162
  385. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_partition.py +0 -50
  386. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_raw_inventory.py +0 -240
  387. mostlyright_data-0.18.2/src/mostlyright/data_harness/source_state_index.py +0 -544
  388. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/__init__.py +0 -225
  389. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -231
  390. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/adapters.py +0 -1259
  391. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/authenticated_https.py +0 -374
  392. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -1332
  393. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/authenticated_https_v3.py +0 -2267
  394. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/cadence.py +0 -1428
  395. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/cadence_emission.py +0 -453
  396. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/cadence_history.py +0 -546
  397. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -17
  398. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/admission.py +0 -482
  399. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -1701
  400. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -780
  401. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -1251
  402. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -246
  403. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/channel.py +0 -525
  404. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -296
  405. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -825
  406. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -137
  407. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -532
  408. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -1179
  409. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/fill.py +0 -3873
  410. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -459
  411. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -1105
  412. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/gating.py +0 -363
  413. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -1607
  414. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -7
  415. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -384
  416. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -798
  417. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -964
  418. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -445
  419. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -384
  420. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -105
  421. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -1549
  422. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/neural.py +0 -1618
  423. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -2345
  424. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -1517
  425. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -2802
  426. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -1037
  427. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -171
  428. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -230
  429. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -995
  430. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -560
  431. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/search.py +0 -238
  432. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -1098
  433. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/catalog/update.py +0 -1040
  434. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/collections.py +0 -815
  435. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/contracts.py +0 -2278
  436. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/dataset.py +0 -272
  437. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/deletion.py +0 -761
  438. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/document_projection.py +0 -226
  439. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/fitness.py +0 -159
  440. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/governance.py +0 -253
  441. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/hosted.py +0 -173
  442. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/integration.py +0 -218
  443. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/page_collections.py +0 -2294
  444. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/range_reader.py +0 -418
  445. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/registry.py +0 -759
  446. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/rights_rule.py +0 -65
  447. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -1
  448. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/sports.py +0 -521
  449. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream.py +0 -810
  450. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -3733
  451. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connector.py +0 -2625
  452. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.array-frames.v4.json +0 -34
  453. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.cursor-resume.v3.json +0 -38
  454. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.json-keepalive.v4.json +0 -38
  455. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +0 -66
  456. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +0 -74
  457. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +0 -74
  458. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +0 -74
  459. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +0 -57
  460. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +0 -65
  461. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +0 -52
  462. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +0 -60
  463. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +0 -75
  464. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +0 -92
  465. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +0 -48
  466. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +0 -46
  467. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +0 -44
  468. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +0 -67
  469. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.loose-frames.v4.json +0 -39
  470. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/fixture.text-keepalive.v4.json +0 -39
  471. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -39
  472. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_credential.py +0 -561
  473. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_numbers.py +0 -338
  474. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_prelude.py +0 -464
  475. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_recorder.py +0 -2049
  476. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_registry.py +0 -597
  477. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_rotation.py +0 -804
  478. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_segment_recorder.py +0 -251
  479. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_series.py +0 -3108
  480. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_signing.py +0 -328
  481. mostlyright_data-0.18.2/src/mostlyright/data_harness/sources/stream_transport.py +0 -1435
  482. mostlyright_data-0.18.2/src/mostlyright/data_harness/sql_transform_engine.py +0 -2015
  483. mostlyright_data-0.18.2/src/mostlyright/data_harness/stream_order_vector.py +0 -136
  484. mostlyright_data-0.18.2/src/mostlyright/data_harness/stream_recovery_objects.py +0 -256
  485. mostlyright_data-0.18.2/src/mostlyright/data_harness/stream_segment_spill.py +0 -297
  486. mostlyright_data-0.18.2/src/mostlyright/data_harness/stream_subscription_feed.py +0 -1004
  487. mostlyright_data-0.18.2/src/mostlyright/data_harness/stream_subscription_sealer.py +0 -1636
  488. mostlyright_data-0.18.2/src/mostlyright/data_harness/stream_subscription_worker.py +0 -4020
  489. mostlyright_data-0.18.2/src/mostlyright/data_harness/stream_venue.py +0 -788
  490. mostlyright_data-0.18.2/src/mostlyright/data_harness/stream_venue_staging.py +0 -1073
  491. mostlyright_data-0.18.2/src/mostlyright/data_harness/studio_boundary.py +0 -2053
  492. mostlyright_data-0.18.2/src/mostlyright/data_harness/studio_subscription_control.py +0 -1364
  493. mostlyright_data-0.18.2/src/mostlyright/data_harness/table_parts.py +0 -973
  494. mostlyright_data-0.18.2/src/mostlyright/data_harness/table_profile.py +0 -387
  495. mostlyright_data-0.18.2/src/mostlyright/data_harness/thin/collection_plan.py +0 -211
  496. mostlyright_data-0.18.2/src/mostlyright/data_harness/thin/workers.py +0 -249
  497. mostlyright_data-0.18.2/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -40
  498. mostlyright_data-0.18.2/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -632
  499. mostlyright_data-0.18.2/src/mostlyright/data_harness/unit_flow.py +0 -927
  500. mostlyright_data-0.18.2/src/mostlyright/data_harness/units.py +0 -572
  501. mostlyright_data-0.18.2/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -431
  502. mostlyright_data-0.18.2/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -545
  503. mostlyright_data-0.18.2/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -1859
  504. mostlyright_data-0.18.2/src/mostlyright/data_harness/ux/commands/record.py +0 -1771
  505. mostlyright_data-0.18.2/src/mostlyright/data_harness/ux/headline.py +0 -691
  506. mostlyright_data-0.18.2/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -999
  507. mostlyright_data-0.18.2/src/mostlyright/data_harness/ux/local_review.py +0 -372
  508. mostlyright_data-0.18.2/src/mostlyright/data_harness/ux/readers.py +0 -1126
  509. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_acquisition.py +0 -1336
  510. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_check_dialect.py +0 -495
  511. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_closed_source.py +0 -268
  512. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_document_pin.py +0 -145
  513. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_reader_pin.py +0 -210
  514. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_recipe.py +0 -2887
  515. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_required_controls.py +0 -670
  516. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_snapshot_artifact.py +0 -367
  517. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_stream_recording.py +0 -595
  518. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_transform.py +0 -355
  519. mostlyright_data-0.18.2/src/mostlyright/data_harness/v4_window.py +0 -923
  520. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/__init__.py +0 -83
  521. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/authoring.py +0 -235
  522. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/contracts.py +0 -673
  523. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/materialize.py +0 -486
  524. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/observations.py +0 -874
  525. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/reducer.py +0 -280
  526. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/sdk.py +0 -892
  527. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/store.py +0 -584
  528. mostlyright_data-0.18.2/src/mostlyright/data_harness/visual_run/transport.py +0 -239
  529. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/skills/mr-data-build/agents/openai.yaml +0 -0
  530. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
  531. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/canonical.py +0 -0
  532. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/formats.py +0 -0
  533. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/page_coverage.py +0 -0
  534. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/skill_assets.py +0 -0
  535. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/table_manifest.py +0 -0
  536. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/__init__.py +0 -0
  537. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  538. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/activity.py +0 -0
  539. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  540. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/categories.py +0 -0
  541. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/dataset-categories-v1.json +0 -0
  542. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/download.py +0 -0
  543. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  544. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/parity.py +0 -0
  545. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/probe.py +0 -0
  546. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/research.py +0 -0
  547. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/runs.py +0 -0
  548. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/session.py +0 -0
  549. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
  550. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
  551. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_catalog.py +0 -0
  552. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
  553. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
  554. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
  555. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
  556. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
  557. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
  558. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
  559. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
  560. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  561. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/attendance.py +0 -0
  562. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  563. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
  564. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  565. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  566. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  567. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  568. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  569. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/login.py +0 -0
  570. {mostlyright_data-0.18.2 → mostlyright_data-0.19.0}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  571. {mostlyright_data-0.18.2 → 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
 
@@ -1665,6 +1667,13 @@ What it costs the protocol, and what to do instead:
1665
1667
  revision behavior, entity and geographic coverage, cost, and refresh fit. Reject prohibited use.
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.
1670
+ - When the question is **what changed over time**, or the table needs point-in-time features, and
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
1675
+ the rows where the two are `is distinct from` each other. Never diff two sealed versions by hand;
1676
+ a version is not a date, and nothing outside the seal can be replayed.
1668
1677
 
1669
1678
  ### Authoring a collection source
1670
1679
 
@@ -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
+ ]