mostlyright-data 0.9.0__py3-none-any.whl

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 (314) hide show
  1. mostlyright/data_harness/__init__.py +158 -0
  2. mostlyright/data_harness/acquisition/__init__.py +55 -0
  3. mostlyright/data_harness/acquisition/http.py +2773 -0
  4. mostlyright/data_harness/acquisition/parsing.py +809 -0
  5. mostlyright/data_harness/acquisition/ranges.py +495 -0
  6. mostlyright/data_harness/acquisition/result_download.py +360 -0
  7. mostlyright/data_harness/acquisition/retention_admission.py +248 -0
  8. mostlyright/data_harness/acquisition/sandbox.py +4888 -0
  9. mostlyright/data_harness/acquisition/url_policy.py +530 -0
  10. mostlyright/data_harness/agent_runtime.py +2743 -0
  11. mostlyright/data_harness/assets/logo-ink.svg +31 -0
  12. mostlyright/data_harness/backends/__init__.py +28 -0
  13. mostlyright/data_harness/backends/pandas_backend.py +350 -0
  14. mostlyright/data_harness/backends/polars_backend.py +366 -0
  15. mostlyright/data_harness/backends/protocol.py +124 -0
  16. mostlyright/data_harness/backends/reference.py +83 -0
  17. mostlyright/data_harness/backends/registry.py +55 -0
  18. mostlyright/data_harness/backends/restrictions.py +126 -0
  19. mostlyright/data_harness/canonical.py +333 -0
  20. mostlyright/data_harness/catalog_job.py +625 -0
  21. mostlyright/data_harness/cli.py +5398 -0
  22. mostlyright/data_harness/contracts.py +53 -0
  23. mostlyright/data_harness/coordinator.py +1307 -0
  24. mostlyright/data_harness/deploy.py +924 -0
  25. mostlyright/data_harness/deploy_target.py +312 -0
  26. mostlyright/data_harness/deployment_evidence.py +1067 -0
  27. mostlyright/data_harness/event_presentation.py +576 -0
  28. mostlyright/data_harness/events.py +2152 -0
  29. mostlyright/data_harness/fast_delimited.py +239 -0
  30. mostlyright/data_harness/fleet.py +237 -0
  31. mostlyright/data_harness/formats.py +236 -0
  32. mostlyright/data_harness/governors.py +1163 -0
  33. mostlyright/data_harness/hosted_bootstrap.py +972 -0
  34. mostlyright/data_harness/hosted_crawler.py +1115 -0
  35. mostlyright/data_harness/hosted_crawler_container_smoke.py +351 -0
  36. mostlyright/data_harness/hosted_crawler_fetch.py +423 -0
  37. mostlyright/data_harness/hosted_crawler_job.py +1277 -0
  38. mostlyright/data_harness/hosted_crawler_protocol.py +676 -0
  39. mostlyright/data_harness/hosted_dataset.py +1500 -0
  40. mostlyright/data_harness/hosted_deploy.py +3037 -0
  41. mostlyright/data_harness/hosted_handoff.py +62 -0
  42. mostlyright/data_harness/hosted_ingestion_contract.py +504 -0
  43. mostlyright/data_harness/hosted_ingestion_job.py +356 -0
  44. mostlyright/data_harness/hosted_ingestion_job_smoke.py +40 -0
  45. mostlyright/data_harness/hosted_session_container_smoke.py +194 -0
  46. mostlyright/data_harness/hosted_session_worker.py +3554 -0
  47. mostlyright/data_harness/hosted_session_worker_job_smoke.py +46 -0
  48. mostlyright/data_harness/hosted_worker.py +6784 -0
  49. mostlyright/data_harness/ingestion/__init__.py +56 -0
  50. mostlyright/data_harness/ingestion/contracts.py +461 -0
  51. mostlyright/data_harness/ingestion/faults.py +42 -0
  52. mostlyright/data_harness/ingestion/gcs_store.py +1162 -0
  53. mostlyright/data_harness/ingestion/spool.py +130 -0
  54. mostlyright/data_harness/ingestion/store.py +885 -0
  55. mostlyright/data_harness/key_seam.py +434 -0
  56. mostlyright/data_harness/linux_process_boundary.py +262 -0
  57. mostlyright/data_harness/local_contracts.py +2880 -0
  58. mostlyright/data_harness/local_search/__init__.py +5 -0
  59. mostlyright/data_harness/local_search/build_index.py +1087 -0
  60. mostlyright/data_harness/local_search/contracts.py +920 -0
  61. mostlyright/data_harness/local_search/query_trace.py +266 -0
  62. mostlyright/data_harness/local_search/retrieval.py +700 -0
  63. mostlyright/data_harness/local_search/sealed.py +474 -0
  64. mostlyright/data_harness/local_search/service.py +784 -0
  65. mostlyright/data_harness/nbrender/CONTRACT.md +212 -0
  66. mostlyright/data_harness/nbrender/__init__.py +12 -0
  67. mostlyright/data_harness/nbrender/chrome.py +359 -0
  68. mostlyright/data_harness/nbrender/code_body.py +266 -0
  69. mostlyright/data_harness/nbrender/document.py +407 -0
  70. mostlyright/data_harness/nbrender/frame.py +275 -0
  71. mostlyright/data_harness/nbrender/interactive.py +337 -0
  72. mostlyright/data_harness/nbrender/markdown_body.py +477 -0
  73. mostlyright/data_harness/nbrender/mr_components.py +134 -0
  74. mostlyright/data_harness/nbrender/outputs_data.py +595 -0
  75. mostlyright/data_harness/nbrender/outputs_rich.py +906 -0
  76. mostlyright/data_harness/nbrender/outputs_source.py +260 -0
  77. mostlyright/data_harness/nbrender/outputs_stage.py +176 -0
  78. mostlyright/data_harness/nbrender/outputs_text.py +400 -0
  79. mostlyright/data_harness/nbrender/parse.py +394 -0
  80. mostlyright/data_harness/nbrender/status.py +40 -0
  81. mostlyright/data_harness/nbrender/tokens.py +1295 -0
  82. mostlyright/data_harness/notebook.py +1710 -0
  83. mostlyright/data_harness/offline.py +2049 -0
  84. mostlyright/data_harness/operation_registry.py +1007 -0
  85. mostlyright/data_harness/operator_setup.py +239 -0
  86. mostlyright/data_harness/pipeline.py +6428 -0
  87. mostlyright/data_harness/plan_graph.py +2026 -0
  88. mostlyright/data_harness/preparation/__init__.py +104 -0
  89. mostlyright/data_harness/preparation/contracts.py +1017 -0
  90. mostlyright/data_harness/preparation/engine.py +221 -0
  91. mostlyright/data_harness/preparation/errors.py +14 -0
  92. mostlyright/data_harness/preparation/gates.py +751 -0
  93. mostlyright/data_harness/preparation/joins.py +574 -0
  94. mostlyright/data_harness/preparation/profile.py +384 -0
  95. mostlyright/data_harness/preparation/table.py +217 -0
  96. mostlyright/data_harness/preparation/transforms.py +568 -0
  97. mostlyright/data_harness/progress_events.py +534 -0
  98. mostlyright/data_harness/readers/__init__.py +46 -0
  99. mostlyright/data_harness/readers/containers.py +963 -0
  100. mostlyright/data_harness/readers/contracts.py +542 -0
  101. mostlyright/data_harness/readers/delimited.py +257 -0
  102. mostlyright/data_harness/readers/grib2/__init__.py +33 -0
  103. mostlyright/data_harness/readers/grib2/admission.py +722 -0
  104. mostlyright/data_harness/readers/grib2/decode.py +1009 -0
  105. mostlyright/data_harness/readers/grib2/geometry.py +1133 -0
  106. mostlyright/data_harness/readers/grib2/portable_math.py +501 -0
  107. mostlyright/data_harness/readers/json_tabular.py +485 -0
  108. mostlyright/data_harness/readers/registry.py +514 -0
  109. mostlyright/data_harness/readers/samples/README.md +110 -0
  110. mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  111. mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +24 -0
  112. mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  113. mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +24 -0
  114. mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  115. mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +24 -0
  116. mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  117. mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +24 -0
  118. mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  119. mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +25 -0
  120. mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  121. mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +25 -0
  122. mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  123. mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +25 -0
  124. mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +3 -0
  125. mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +23 -0
  126. mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +5 -0
  127. mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +25 -0
  128. mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +30 -0
  129. mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +5 -0
  130. mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +44 -0
  131. mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +1 -0
  132. mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +48 -0
  133. mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +4 -0
  134. mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  135. mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +24 -0
  136. mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +27 -0
  137. mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  138. mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +27 -0
  139. mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  140. mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +20 -0
  141. mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +55 -0
  142. mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  143. mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +54 -0
  144. mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  145. mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +54 -0
  146. mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  147. mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +54 -0
  148. mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  149. mostlyright/data_harness/readers/samples.py +582 -0
  150. mostlyright/data_harness/readers/spreadsheet.py +803 -0
  151. mostlyright/data_harness/readers/tabular.py +510 -0
  152. mostlyright/data_harness/recipe.py +5321 -0
  153. mostlyright/data_harness/repair/__init__.py +78 -0
  154. mostlyright/data_harness/repair/adapters.py +274 -0
  155. mostlyright/data_harness/repair/contracts.py +872 -0
  156. mostlyright/data_harness/repair/coordinator.py +1099 -0
  157. mostlyright/data_harness/repair/errors.py +16 -0
  158. mostlyright/data_harness/review.py +2533 -0
  159. mostlyright/data_harness/rowset.py +283 -0
  160. mostlyright/data_harness/serving.py +1975 -0
  161. mostlyright/data_harness/serving_edge.py +590 -0
  162. mostlyright/data_harness/serving_http.py +1031 -0
  163. mostlyright/data_harness/session_probes.py +759 -0
  164. mostlyright/data_harness/signing.py +101 -0
  165. mostlyright/data_harness/source_discovery.py +898 -0
  166. mostlyright/data_harness/sources/__init__.py +209 -0
  167. mostlyright/data_harness/sources/_adapter_steps.py +213 -0
  168. mostlyright/data_harness/sources/adapters.py +1214 -0
  169. mostlyright/data_harness/sources/cadence.py +1428 -0
  170. mostlyright/data_harness/sources/cadence_emission.py +453 -0
  171. mostlyright/data_harness/sources/cadence_history.py +546 -0
  172. mostlyright/data_harness/sources/catalog/__init__.py +17 -0
  173. mostlyright/data_harness/sources/catalog/admission.py +477 -0
  174. mostlyright/data_harness/sources/catalog/authoring.py +1701 -0
  175. mostlyright/data_harness/sources/catalog/authoring_policy.py +701 -0
  176. mostlyright/data_harness/sources/catalog/authoring_shards.py +1217 -0
  177. mostlyright/data_harness/sources/catalog/bounded_io.py +231 -0
  178. mostlyright/data_harness/sources/catalog/channel.py +523 -0
  179. mostlyright/data_harness/sources/catalog/channel_client.py +296 -0
  180. mostlyright/data_harness/sources/catalog/contracts.py +825 -0
  181. mostlyright/data_harness/sources/catalog/coverage.py +137 -0
  182. mostlyright/data_harness/sources/catalog/delta.py +1340 -0
  183. mostlyright/data_harness/sources/catalog/embedding.py +532 -0
  184. mostlyright/data_harness/sources/catalog/entry_v2.py +1182 -0
  185. mostlyright/data_harness/sources/catalog/fill.py +3889 -0
  186. mostlyright/data_harness/sources/catalog/fill_partitions.py +459 -0
  187. mostlyright/data_harness/sources/catalog/fill_staging.py +1105 -0
  188. mostlyright/data_harness/sources/catalog/gating.py +374 -0
  189. mostlyright/data_harness/sources/catalog/generation_receipt.py +1607 -0
  190. mostlyright/data_harness/sources/catalog/harvest/__init__.py +7 -0
  191. mostlyright/data_harness/sources/catalog/harvest/ckan.py +384 -0
  192. mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +798 -0
  193. mostlyright/data_harness/sources/catalog/harvest/protocol.py +964 -0
  194. mostlyright/data_harness/sources/catalog/harvest/sdmx.py +445 -0
  195. mostlyright/data_harness/sources/catalog/harvest/stac.py +384 -0
  196. mostlyright/data_harness/sources/catalog/health.py +447 -0
  197. mostlyright/data_harness/sources/catalog/hosted_catalog.py +105 -0
  198. mostlyright/data_harness/sources/catalog/identity_history.py +1549 -0
  199. mostlyright/data_harness/sources/catalog/neural.py +1618 -0
  200. mostlyright/data_harness/sources/catalog/packed_catalog.py +2345 -0
  201. mostlyright/data_harness/sources/catalog/packed_retrieval.py +1517 -0
  202. mostlyright/data_harness/sources/catalog/packed_writer.py +2802 -0
  203. mostlyright/data_harness/sources/catalog/query_trace.py +1037 -0
  204. mostlyright/data_harness/sources/catalog/recommend.py +171 -0
  205. mostlyright/data_harness/sources/catalog/retrieval.py +230 -0
  206. mostlyright/data_harness/sources/catalog/retrieval_manifest.py +995 -0
  207. mostlyright/data_harness/sources/catalog/rights_decisions.py +254 -0
  208. mostlyright/data_harness/sources/catalog/sealed.py +560 -0
  209. mostlyright/data_harness/sources/catalog/search.py +230 -0
  210. mostlyright/data_harness/sources/catalog/streaming_delta.py +1097 -0
  211. mostlyright/data_harness/sources/catalog/update.py +891 -0
  212. mostlyright/data_harness/sources/collections.py +815 -0
  213. mostlyright/data_harness/sources/contracts.py +2223 -0
  214. mostlyright/data_harness/sources/deletion.py +761 -0
  215. mostlyright/data_harness/sources/fitness.py +162 -0
  216. mostlyright/data_harness/sources/governance.py +163 -0
  217. mostlyright/data_harness/sources/hosted.py +173 -0
  218. mostlyright/data_harness/sources/integration.py +218 -0
  219. mostlyright/data_harness/sources/range_reader.py +418 -0
  220. mostlyright/data_harness/sources/registry.py +514 -0
  221. mostlyright/data_harness/sources/rights_rule.py +59 -0
  222. mostlyright/data_harness/sources/source_cadence_vectors.v1.json +1 -0
  223. mostlyright/data_harness/sources/sports.py +521 -0
  224. mostlyright/data_harness/sources/stream.py +524 -0
  225. mostlyright/data_harness/sources/stream_connector.py +418 -0
  226. mostlyright/data_harness/sources/stream_recorder.py +1404 -0
  227. mostlyright/data_harness/studio_boundary.py +2019 -0
  228. mostlyright/data_harness/thin/__init__.py +37 -0
  229. mostlyright/data_harness/thin/acquire.py +1137 -0
  230. mostlyright/data_harness/thin/acquire_cancel.py +579 -0
  231. mostlyright/data_harness/thin/approvals.py +617 -0
  232. mostlyright/data_harness/thin/commands.py +406 -0
  233. mostlyright/data_harness/thin/download.py +194 -0
  234. mostlyright/data_harness/thin/narrative.py +589 -0
  235. mostlyright/data_harness/thin/parity.py +1070 -0
  236. mostlyright/data_harness/thin/propose.py +2759 -0
  237. mostlyright/data_harness/thin/research.py +1663 -0
  238. mostlyright/data_harness/thin/router.py +924 -0
  239. mostlyright/data_harness/thin/runs.py +519 -0
  240. mostlyright/data_harness/thin/session.py +281 -0
  241. mostlyright/data_harness/thin/stream.py +501 -0
  242. mostlyright/data_harness/thin/transport.py +187 -0
  243. mostlyright/data_harness/thin/vocabulary.py +368 -0
  244. mostlyright/data_harness/thin/workers.py +164 -0
  245. mostlyright/data_harness/ucum/TABLE-PIN.json +40 -0
  246. mostlyright/data_harness/ucum/ucum-subset.v1.json +632 -0
  247. mostlyright/data_harness/unit_flow.py +927 -0
  248. mostlyright/data_harness/units.py +572 -0
  249. mostlyright/data_harness/ux/__init__.py +9 -0
  250. mostlyright/data_harness/ux/approve.py +485 -0
  251. mostlyright/data_harness/ux/author_yaml.py +597 -0
  252. mostlyright/data_harness/ux/cloud_auth.py +447 -0
  253. mostlyright/data_harness/ux/commands/__init__.py +260 -0
  254. mostlyright/data_harness/ux/commands/approve.py +136 -0
  255. mostlyright/data_harness/ux/commands/auth.py +744 -0
  256. mostlyright/data_harness/ux/commands/author.py +79 -0
  257. mostlyright/data_harness/ux/commands/catalog_author.py +403 -0
  258. mostlyright/data_harness/ux/commands/catalog_fill.py +523 -0
  259. mostlyright/data_harness/ux/commands/catalog_harvest.py +545 -0
  260. mostlyright/data_harness/ux/commands/catalog_publish.py +1838 -0
  261. mostlyright/data_harness/ux/commands/catalog_search.py +71 -0
  262. mostlyright/data_harness/ux/commands/catalog_update.py +437 -0
  263. mostlyright/data_harness/ux/commands/deploy.py +134 -0
  264. mostlyright/data_harness/ux/commands/deploy_dataset.py +98 -0
  265. mostlyright/data_harness/ux/commands/deploy_plan.py +105 -0
  266. mostlyright/data_harness/ux/commands/deploy_status.py +104 -0
  267. mostlyright/data_harness/ux/commands/diff.py +74 -0
  268. mostlyright/data_harness/ux/commands/index.py +84 -0
  269. mostlyright/data_harness/ux/commands/inventory.py +47 -0
  270. mostlyright/data_harness/ux/commands/list_builds.py +143 -0
  271. mostlyright/data_harness/ux/commands/login.py +63 -0
  272. mostlyright/data_harness/ux/commands/peek.py +236 -0
  273. mostlyright/data_harness/ux/commands/plan_check.py +90 -0
  274. mostlyright/data_harness/ux/commands/preflight.py +97 -0
  275. mostlyright/data_harness/ux/commands/record.py +107 -0
  276. mostlyright/data_harness/ux/commands/review_setup.py +47 -0
  277. mostlyright/data_harness/ux/commands/search.py +440 -0
  278. mostlyright/data_harness/ux/commands/show.py +61 -0
  279. mostlyright/data_harness/ux/commands/whoami.py +37 -0
  280. mostlyright/data_harness/ux/credential_native.py +551 -0
  281. mostlyright/data_harness/ux/credential_store.py +1055 -0
  282. mostlyright/data_harness/ux/credentials.py +631 -0
  283. mostlyright/data_harness/ux/diffing.py +444 -0
  284. mostlyright/data_harness/ux/headline.py +671 -0
  285. mostlyright/data_harness/ux/hosted_acquisition.py +974 -0
  286. mostlyright/data_harness/ux/hosted_run_status.py +619 -0
  287. mostlyright/data_harness/ux/inventory.py +427 -0
  288. mostlyright/data_harness/ux/local_review.py +375 -0
  289. mostlyright/data_harness/ux/login.py +691 -0
  290. mostlyright/data_harness/ux/path_kind.py +147 -0
  291. mostlyright/data_harness/ux/peek.py +1000 -0
  292. mostlyright/data_harness/ux/plain_file.py +178 -0
  293. mostlyright/data_harness/ux/plan_check.py +311 -0
  294. mostlyright/data_harness/ux/preflight.py +918 -0
  295. mostlyright/data_harness/ux/readers.py +1124 -0
  296. mostlyright/data_harness/ux/remediation.py +2195 -0
  297. mostlyright/data_harness/ux/render.py +657 -0
  298. mostlyright/data_harness/ux/workload.py +1077 -0
  299. mostlyright/data_harness/viewer.py +3713 -0
  300. mostlyright/data_harness/visual_run/__init__.py +83 -0
  301. mostlyright/data_harness/visual_run/authoring.py +235 -0
  302. mostlyright/data_harness/visual_run/contracts.py +673 -0
  303. mostlyright/data_harness/visual_run/materialize.py +486 -0
  304. mostlyright/data_harness/visual_run/observations.py +874 -0
  305. mostlyright/data_harness/visual_run/query.py +259 -0
  306. mostlyright/data_harness/visual_run/reducer.py +280 -0
  307. mostlyright/data_harness/visual_run/sdk.py +892 -0
  308. mostlyright/data_harness/visual_run/store.py +584 -0
  309. mostlyright/data_harness/visual_run/transport.py +239 -0
  310. mostlyright/data_harness/watch.py +2999 -0
  311. mostlyright_data-0.9.0.dist-info/METADATA +607 -0
  312. mostlyright_data-0.9.0.dist-info/RECORD +314 -0
  313. mostlyright_data-0.9.0.dist-info/WHEEL +4 -0
  314. mostlyright_data-0.9.0.dist-info/entry_points.txt +12 -0
@@ -0,0 +1,632 @@
1
+ {
2
+ "schema": "ucum-subset.v1",
3
+ "standard": "UCUM",
4
+ "standard_version": "2.2",
5
+ "standard_release": "2024-06-28",
6
+ "specification": "https://ucum.org/ucum",
7
+ "licence": {
8
+ "holder": "Regenstrief Institute, Inc. and The UCUM Organization",
9
+ "note": "Symbols and conversion values are facts transcribed from the published specification. No specification text and no upstream file is copied here."
10
+ },
11
+ "transcription": {
12
+ "retrieved": "2026-08-21",
13
+ "covers": "The subset docs/UNITS.md states: these atoms, these prefixes, integer powers, '.' multiplication, '/' division and '{}' annotations. Nothing else in UCUM is transcribed and nothing else is accepted.",
14
+ "why_it_is_not_under_vendor": "vendor/ holds trees this build compiles and the sdist deliberately excludes; this table is read at run time and ships inside the wheel. It keeps the vendor/ integrity discipline instead: a content digest and file count in TABLE-PIN.json beside it, recomputed by tests/test_units_table.py, which also re-derives every recorded factor from that atom's own recorded definition."
15
+ },
16
+ "dimensions": [
17
+ {
18
+ "symbol": "m",
19
+ "quantity": "length"
20
+ },
21
+ {
22
+ "symbol": "s",
23
+ "quantity": "time"
24
+ },
25
+ {
26
+ "symbol": "g",
27
+ "quantity": "mass"
28
+ },
29
+ {
30
+ "symbol": "rad",
31
+ "quantity": "plane angle"
32
+ },
33
+ {
34
+ "symbol": "K",
35
+ "quantity": "temperature"
36
+ },
37
+ {
38
+ "symbol": "C",
39
+ "quantity": "electric charge"
40
+ },
41
+ {
42
+ "symbol": "cd",
43
+ "quantity": "luminous intensity"
44
+ }
45
+ ],
46
+ "prefixes": {
47
+ "Y": {
48
+ "name": "yotta",
49
+ "factor": "1000000000000000000000000"
50
+ },
51
+ "Z": {
52
+ "name": "zetta",
53
+ "factor": "1000000000000000000000"
54
+ },
55
+ "E": {
56
+ "name": "exa",
57
+ "factor": "1000000000000000000"
58
+ },
59
+ "P": {
60
+ "name": "peta",
61
+ "factor": "1000000000000000"
62
+ },
63
+ "T": {
64
+ "name": "tera",
65
+ "factor": "1000000000000"
66
+ },
67
+ "G": {
68
+ "name": "giga",
69
+ "factor": "1000000000"
70
+ },
71
+ "M": {
72
+ "name": "mega",
73
+ "factor": "1000000"
74
+ },
75
+ "k": {
76
+ "name": "kilo",
77
+ "factor": "1000"
78
+ },
79
+ "h": {
80
+ "name": "hecto",
81
+ "factor": "100"
82
+ },
83
+ "da": {
84
+ "name": "deka",
85
+ "factor": "10"
86
+ },
87
+ "d": {
88
+ "name": "deci",
89
+ "factor": "1/10"
90
+ },
91
+ "c": {
92
+ "name": "centi",
93
+ "factor": "1/100"
94
+ },
95
+ "m": {
96
+ "name": "milli",
97
+ "factor": "1/1000"
98
+ },
99
+ "u": {
100
+ "name": "micro",
101
+ "factor": "1/1000000"
102
+ },
103
+ "n": {
104
+ "name": "nano",
105
+ "factor": "1/1000000000"
106
+ },
107
+ "p": {
108
+ "name": "pico",
109
+ "factor": "1/1000000000000"
110
+ },
111
+ "f": {
112
+ "name": "femto",
113
+ "factor": "1/1000000000000000"
114
+ },
115
+ "a": {
116
+ "name": "atto",
117
+ "factor": "1/1000000000000000000"
118
+ },
119
+ "z": {
120
+ "name": "zepto",
121
+ "factor": "1/1000000000000000000000"
122
+ },
123
+ "y": {
124
+ "name": "yocto",
125
+ "factor": "1/1000000000000000000000000"
126
+ }
127
+ },
128
+ "atoms": {
129
+ "m": {
130
+ "name": "meter",
131
+ "kind": "base",
132
+ "metric": true,
133
+ "dimension": "length",
134
+ "exponents": [1, 0, 0, 0, 0, 0, 0],
135
+ "factor": "1"
136
+ },
137
+ "s": {
138
+ "name": "second",
139
+ "kind": "base",
140
+ "metric": true,
141
+ "dimension": "time",
142
+ "exponents": [0, 1, 0, 0, 0, 0, 0],
143
+ "factor": "1"
144
+ },
145
+ "g": {
146
+ "name": "gram",
147
+ "kind": "base",
148
+ "metric": true,
149
+ "dimension": "mass",
150
+ "exponents": [0, 0, 1, 0, 0, 0, 0],
151
+ "factor": "1"
152
+ },
153
+ "rad": {
154
+ "name": "radian",
155
+ "kind": "base",
156
+ "metric": true,
157
+ "dimension": "plane angle",
158
+ "exponents": [0, 0, 0, 1, 0, 0, 0],
159
+ "factor": "1"
160
+ },
161
+ "K": {
162
+ "name": "kelvin",
163
+ "kind": "base",
164
+ "metric": true,
165
+ "dimension": "temperature",
166
+ "exponents": [0, 0, 0, 0, 1, 0, 0],
167
+ "factor": "1"
168
+ },
169
+ "C": {
170
+ "name": "coulomb",
171
+ "kind": "base",
172
+ "metric": true,
173
+ "dimension": "electric charge",
174
+ "exponents": [0, 0, 0, 0, 0, 1, 0],
175
+ "factor": "1"
176
+ },
177
+ "cd": {
178
+ "name": "candela",
179
+ "kind": "base",
180
+ "metric": true,
181
+ "dimension": "luminous intensity",
182
+ "exponents": [0, 0, 0, 0, 0, 0, 1],
183
+ "factor": "1"
184
+ },
185
+ "1": {
186
+ "name": "unity",
187
+ "kind": "unity",
188
+ "metric": false,
189
+ "exponents": [0, 0, 0, 0, 0, 0, 0],
190
+ "factor": "1"
191
+ },
192
+ "%": {
193
+ "name": "percent",
194
+ "kind": "derived",
195
+ "metric": false,
196
+ "exponents": [0, 0, 0, 0, 0, 0, 0],
197
+ "factor": "1/100",
198
+ "definition": {
199
+ "value": "1/100",
200
+ "unit": "1"
201
+ }
202
+ },
203
+ "[ppth]": {
204
+ "name": "parts per thousand",
205
+ "kind": "derived",
206
+ "metric": false,
207
+ "exponents": [0, 0, 0, 0, 0, 0, 0],
208
+ "factor": "1/1000",
209
+ "definition": {
210
+ "value": "1/1000",
211
+ "unit": "1"
212
+ }
213
+ },
214
+ "[ppm]": {
215
+ "name": "parts per million",
216
+ "kind": "derived",
217
+ "metric": false,
218
+ "exponents": [0, 0, 0, 0, 0, 0, 0],
219
+ "factor": "1/1000000",
220
+ "definition": {
221
+ "value": "1/1000000",
222
+ "unit": "1"
223
+ }
224
+ },
225
+ "[ppb]": {
226
+ "name": "parts per billion",
227
+ "kind": "derived",
228
+ "metric": false,
229
+ "exponents": [0, 0, 0, 0, 0, 0, 0],
230
+ "factor": "1/1000000000",
231
+ "definition": {
232
+ "value": "1/1000000000",
233
+ "unit": "1"
234
+ }
235
+ },
236
+ "[pptr]": {
237
+ "name": "parts per trillion",
238
+ "kind": "derived",
239
+ "metric": false,
240
+ "exponents": [0, 0, 0, 0, 0, 0, 0],
241
+ "factor": "1/1000000000000",
242
+ "definition": {
243
+ "value": "1/1000000000000",
244
+ "unit": "1"
245
+ }
246
+ },
247
+ "mol": {
248
+ "name": "mole",
249
+ "kind": "derived",
250
+ "metric": true,
251
+ "exponents": [0, 0, 0, 0, 0, 0, 0],
252
+ "factor": "602214076000000000000000",
253
+ "definition": {
254
+ "value": "602214076000000000000000",
255
+ "unit": "1"
256
+ }
257
+ },
258
+ "Hz": {
259
+ "name": "hertz",
260
+ "kind": "derived",
261
+ "metric": true,
262
+ "exponents": [0, -1, 0, 0, 0, 0, 0],
263
+ "factor": "1",
264
+ "definition": {
265
+ "value": "1",
266
+ "unit": "/s"
267
+ }
268
+ },
269
+ "N": {
270
+ "name": "newton",
271
+ "kind": "derived",
272
+ "metric": true,
273
+ "exponents": [1, -2, 1, 0, 0, 0, 0],
274
+ "factor": "1000",
275
+ "definition": {
276
+ "value": "1",
277
+ "unit": "kg.m/s2"
278
+ }
279
+ },
280
+ "Pa": {
281
+ "name": "pascal",
282
+ "kind": "derived",
283
+ "metric": true,
284
+ "exponents": [-1, -2, 1, 0, 0, 0, 0],
285
+ "factor": "1000",
286
+ "definition": {
287
+ "value": "1",
288
+ "unit": "N/m2"
289
+ }
290
+ },
291
+ "J": {
292
+ "name": "joule",
293
+ "kind": "derived",
294
+ "metric": true,
295
+ "exponents": [2, -2, 1, 0, 0, 0, 0],
296
+ "factor": "1000",
297
+ "definition": {
298
+ "value": "1",
299
+ "unit": "N.m"
300
+ }
301
+ },
302
+ "W": {
303
+ "name": "watt",
304
+ "kind": "derived",
305
+ "metric": true,
306
+ "exponents": [2, -3, 1, 0, 0, 0, 0],
307
+ "factor": "1000",
308
+ "definition": {
309
+ "value": "1",
310
+ "unit": "J/s"
311
+ }
312
+ },
313
+ "A": {
314
+ "name": "ampere",
315
+ "kind": "derived",
316
+ "metric": true,
317
+ "exponents": [0, -1, 0, 0, 0, 1, 0],
318
+ "factor": "1",
319
+ "definition": {
320
+ "value": "1",
321
+ "unit": "C/s"
322
+ }
323
+ },
324
+ "V": {
325
+ "name": "volt",
326
+ "kind": "derived",
327
+ "metric": true,
328
+ "exponents": [2, -2, 1, 0, 0, -1, 0],
329
+ "factor": "1000",
330
+ "definition": {
331
+ "value": "1",
332
+ "unit": "J/C"
333
+ }
334
+ },
335
+ "L": {
336
+ "name": "liter",
337
+ "kind": "derived",
338
+ "metric": true,
339
+ "exponents": [3, 0, 0, 0, 0, 0, 0],
340
+ "factor": "1/1000",
341
+ "definition": {
342
+ "value": "1",
343
+ "unit": "dm3"
344
+ }
345
+ },
346
+ "l": {
347
+ "name": "liter",
348
+ "kind": "derived",
349
+ "metric": true,
350
+ "exponents": [3, 0, 0, 0, 0, 0, 0],
351
+ "factor": "1/1000",
352
+ "definition": {
353
+ "value": "1",
354
+ "unit": "dm3"
355
+ }
356
+ },
357
+ "t": {
358
+ "name": "tonne",
359
+ "kind": "derived",
360
+ "metric": true,
361
+ "exponents": [0, 0, 1, 0, 0, 0, 0],
362
+ "factor": "1000000",
363
+ "definition": {
364
+ "value": "1000000",
365
+ "unit": "g"
366
+ }
367
+ },
368
+ "bar": {
369
+ "name": "bar",
370
+ "kind": "derived",
371
+ "metric": true,
372
+ "exponents": [-1, -2, 1, 0, 0, 0, 0],
373
+ "factor": "100000000",
374
+ "definition": {
375
+ "value": "100000",
376
+ "unit": "Pa"
377
+ }
378
+ },
379
+ "ar": {
380
+ "name": "are",
381
+ "kind": "derived",
382
+ "metric": true,
383
+ "exponents": [2, 0, 0, 0, 0, 0, 0],
384
+ "factor": "100",
385
+ "definition": {
386
+ "value": "100",
387
+ "unit": "m2"
388
+ }
389
+ },
390
+ "m[Hg]": {
391
+ "name": "meter of mercury column",
392
+ "kind": "derived",
393
+ "metric": true,
394
+ "exponents": [-1, -2, 1, 0, 0, 0, 0],
395
+ "factor": "133322000",
396
+ "definition": {
397
+ "value": "1333220/10",
398
+ "unit": "Pa"
399
+ }
400
+ },
401
+ "m[H2O]": {
402
+ "name": "meter of water column",
403
+ "kind": "derived",
404
+ "metric": true,
405
+ "exponents": [-1, -2, 1, 0, 0, 0, 0],
406
+ "factor": "9806650",
407
+ "definition": {
408
+ "value": "980665/100",
409
+ "unit": "Pa"
410
+ }
411
+ },
412
+ "min": {
413
+ "name": "minute",
414
+ "kind": "derived",
415
+ "metric": false,
416
+ "exponents": [0, 1, 0, 0, 0, 0, 0],
417
+ "factor": "60",
418
+ "definition": {
419
+ "value": "60",
420
+ "unit": "s"
421
+ }
422
+ },
423
+ "h": {
424
+ "name": "hour",
425
+ "kind": "derived",
426
+ "metric": false,
427
+ "exponents": [0, 1, 0, 0, 0, 0, 0],
428
+ "factor": "3600",
429
+ "definition": {
430
+ "value": "60",
431
+ "unit": "min"
432
+ }
433
+ },
434
+ "d": {
435
+ "name": "day",
436
+ "kind": "derived",
437
+ "metric": false,
438
+ "exponents": [0, 1, 0, 0, 0, 0, 0],
439
+ "factor": "86400",
440
+ "definition": {
441
+ "value": "24",
442
+ "unit": "h"
443
+ }
444
+ },
445
+ "wk": {
446
+ "name": "week",
447
+ "kind": "derived",
448
+ "metric": false,
449
+ "exponents": [0, 1, 0, 0, 0, 0, 0],
450
+ "factor": "604800",
451
+ "definition": {
452
+ "value": "7",
453
+ "unit": "d"
454
+ }
455
+ },
456
+ "a_j": {
457
+ "name": "mean Julian year",
458
+ "kind": "derived",
459
+ "metric": false,
460
+ "exponents": [0, 1, 0, 0, 0, 0, 0],
461
+ "factor": "31557600",
462
+ "definition": {
463
+ "value": "1461/4",
464
+ "unit": "d"
465
+ }
466
+ },
467
+ "a": {
468
+ "name": "year",
469
+ "kind": "derived",
470
+ "metric": false,
471
+ "exponents": [0, 1, 0, 0, 0, 0, 0],
472
+ "factor": "31557600",
473
+ "definition": {
474
+ "value": "1",
475
+ "unit": "a_j"
476
+ }
477
+ },
478
+ "[in_i]": {
479
+ "name": "inch",
480
+ "kind": "derived",
481
+ "metric": false,
482
+ "exponents": [1, 0, 0, 0, 0, 0, 0],
483
+ "factor": "127/5000",
484
+ "definition": {
485
+ "value": "127/5000",
486
+ "unit": "m"
487
+ }
488
+ },
489
+ "[ft_i]": {
490
+ "name": "foot",
491
+ "kind": "derived",
492
+ "metric": false,
493
+ "exponents": [1, 0, 0, 0, 0, 0, 0],
494
+ "factor": "381/1250",
495
+ "definition": {
496
+ "value": "12",
497
+ "unit": "[in_i]"
498
+ }
499
+ },
500
+ "[yd_i]": {
501
+ "name": "yard",
502
+ "kind": "derived",
503
+ "metric": false,
504
+ "exponents": [1, 0, 0, 0, 0, 0, 0],
505
+ "factor": "1143/1250",
506
+ "definition": {
507
+ "value": "3",
508
+ "unit": "[ft_i]"
509
+ }
510
+ },
511
+ "[mi_i]": {
512
+ "name": "mile",
513
+ "kind": "derived",
514
+ "metric": false,
515
+ "exponents": [1, 0, 0, 0, 0, 0, 0],
516
+ "factor": "201168/125",
517
+ "definition": {
518
+ "value": "5280",
519
+ "unit": "[ft_i]"
520
+ }
521
+ },
522
+ "[nmi_i]": {
523
+ "name": "nautical mile",
524
+ "kind": "derived",
525
+ "metric": false,
526
+ "exponents": [1, 0, 0, 0, 0, 0, 0],
527
+ "factor": "1852",
528
+ "definition": {
529
+ "value": "1852",
530
+ "unit": "m"
531
+ }
532
+ },
533
+ "[lb_av]": {
534
+ "name": "pound",
535
+ "kind": "derived",
536
+ "metric": false,
537
+ "exponents": [0, 0, 1, 0, 0, 0, 0],
538
+ "factor": "45359237/100000",
539
+ "definition": {
540
+ "value": "45359237/100000",
541
+ "unit": "g"
542
+ }
543
+ },
544
+ "[oz_av]": {
545
+ "name": "ounce",
546
+ "kind": "derived",
547
+ "metric": false,
548
+ "exponents": [0, 0, 1, 0, 0, 0, 0],
549
+ "factor": "45359237/1600000",
550
+ "definition": {
551
+ "value": "1/16",
552
+ "unit": "[lb_av]"
553
+ }
554
+ },
555
+ "[gal_us]": {
556
+ "name": "US gallon",
557
+ "kind": "derived",
558
+ "metric": false,
559
+ "exponents": [3, 0, 0, 0, 0, 0, 0],
560
+ "factor": "473176473/125000000000",
561
+ "definition": {
562
+ "value": "231",
563
+ "unit": "[in_i]3"
564
+ }
565
+ },
566
+ "[qt_us]": {
567
+ "name": "US quart",
568
+ "kind": "derived",
569
+ "metric": false,
570
+ "exponents": [3, 0, 0, 0, 0, 0, 0],
571
+ "factor": "473176473/500000000000",
572
+ "definition": {
573
+ "value": "1/4",
574
+ "unit": "[gal_us]"
575
+ }
576
+ },
577
+ "[pt_us]": {
578
+ "name": "US pint",
579
+ "kind": "derived",
580
+ "metric": false,
581
+ "exponents": [3, 0, 0, 0, 0, 0, 0],
582
+ "factor": "473176473/1000000000000",
583
+ "definition": {
584
+ "value": "1/8",
585
+ "unit": "[gal_us]"
586
+ }
587
+ },
588
+ "[foz_us]": {
589
+ "name": "US fluid ounce",
590
+ "kind": "derived",
591
+ "metric": false,
592
+ "exponents": [3, 0, 0, 0, 0, 0, 0],
593
+ "factor": "473176473/16000000000000",
594
+ "definition": {
595
+ "value": "1/128",
596
+ "unit": "[gal_us]"
597
+ }
598
+ },
599
+ "Cel": {
600
+ "name": "degree Celsius",
601
+ "kind": "special",
602
+ "metric": false,
603
+ "exponents": [0, 0, 0, 0, 1, 0, 0],
604
+ "factor": "1",
605
+ "offset": "5463/20"
606
+ },
607
+ "[degF]": {
608
+ "name": "degree Fahrenheit",
609
+ "kind": "special",
610
+ "metric": false,
611
+ "exponents": [0, 0, 0, 0, 1, 0, 0],
612
+ "factor": "5/9",
613
+ "offset": "45967/180"
614
+ }
615
+ },
616
+ "legacy_aliases": {
617
+ "count": "{count}",
618
+ "ratio": "1",
619
+ "percent": "%",
620
+ "celsius": "Cel",
621
+ "fahrenheit": "[degF]",
622
+ "kelvin": "K",
623
+ "meter": "m",
624
+ "kilometer": "km",
625
+ "mile": "[mi_i]",
626
+ "microgram_per_cubic_meter": "ug/m3",
627
+ "second": "s",
628
+ "minute": "min",
629
+ "hour": "h",
630
+ "hectopascal": "hPa"
631
+ }
632
+ }