mostlyright-data 0.9.14__tar.gz → 0.10.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 (463) hide show
  1. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/PKG-INFO +50 -6
  2. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/README.md +20 -5
  3. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/pyproject.toml +61 -3
  4. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/acquisition/url_policy.py +33 -0
  5. mostlyright_data-0.10.0/src/mostlyright/data_harness/bounded_query.py +659 -0
  6. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/cli.py +97 -41
  7. mostlyright_data-0.10.0/src/mostlyright/data_harness/declared_checks.py +1007 -0
  8. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_bootstrap.py +122 -68
  9. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_crawler.py +15 -12
  10. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_crawler_job.py +3 -1
  11. mostlyright_data-0.10.0/src/mostlyright/data_harness/hosted_run_worker.py +1604 -0
  12. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_session_worker.py +986 -39
  13. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_stream_recorder_job.py +508 -57
  14. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_worker.py +241 -1581
  15. mostlyright_data-0.10.0/src/mostlyright/data_harness/inprocess_acquisition.py +917 -0
  16. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/key_seam.py +1 -1
  17. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/linux_process_boundary.py +91 -0
  18. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/geojson_vector.py +442 -0
  19. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/geopackage.py +346 -0
  20. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/geoparquet.py +213 -0
  21. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/grib2/collection.py +444 -0
  22. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/grib2/collection_reader.py +198 -0
  23. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/grib_eccodes.py +553 -0
  24. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/pcaxis_px.py +485 -0
  25. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/__init__.py +78 -0
  26. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/_bytes.py +54 -0
  27. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/decode.py +306 -0
  28. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/family.py +326 -0
  29. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/jpeg2000.py +177 -0
  30. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/profiles.py +235 -0
  31. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/rendered.py +122 -0
  32. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/safe.py +168 -0
  33. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/sentinel_safe.py +488 -0
  34. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/raster/tiff.py +515 -0
  35. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/registry.py +430 -0
  36. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/expected.json +36 -0
  37. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/geojson.vector/1.0.0/czech_capital/places.geojson +17 -0
  38. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/expected.json +29 -0
  39. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/geopackage.vector/1.0.0/epsg_4326_feature/places.gpkg +0 -0
  40. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/expected.json +28 -0
  41. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/geoparquet.vector/1.0.0/primary_wkb_point/places.parquet +0 -0
  42. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/expected.json +31 -0
  43. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/image.rendered/1.0.0/tiny_png/tiny-rendered.png +0 -0
  44. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/eccodes-bufr4.bufr +0 -0
  45. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/meteorology.bufr/1.0.0/eccodes_bufr4_subset/expected.json +25 -0
  46. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/expected.json +51 -0
  47. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/meteorology.grib/1.0.0/eccodes_grib1_origin/regular-ll-surface.grib1 +0 -0
  48. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/expected.json +17 -0
  49. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/microdata.sas_xpt/1.0.0/two_raw_columns/survey.xpt +0 -0
  50. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/expected.json +17 -0
  51. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/microdata.spss_sav/1.0.0/two_raw_columns/survey.sav +0 -0
  52. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/expected.json +17 -0
  53. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/microdata.stata_dta/1.0.0/two_raw_columns/stata.dta +0 -0
  54. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/expected.json +25 -0
  55. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/official.pcaxis_px/1.0.0/population_by_region_and_year/population.px +12 -0
  56. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/expected.json +27 -0
  57. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/official.sdmx_json/1.0.0/compact_population_series/population.json +1 -0
  58. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/expected.json +36 -0
  59. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/raster.geospatial/1.0.0/tiny_geotiff/tiny-geospatial.tif +0 -0
  60. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/expected.json +32 -0
  61. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.goes_abi_l2/1.0.0/authored_cmi_window/goes-abi-l2-cmi-window.nc +0 -0
  62. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/expected.json +31 -0
  63. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd/1.0.0/authored_b13_single_bzip2/himawari-b13-0101-bzip2.dat +0 -0
  64. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.himawari_hsd_complete/1.0.0/authored_b13_three_segment_scan/expected.json +36 -0
  65. mostlyright_data-0.10.0/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
  66. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/expected.json +54 -0
  67. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.msg_seviri_l15/1.0.0/authored_calibrated_complete_visir/msg-seviri-l15.zip +0 -0
  68. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/expected.json +50 -0
  69. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.sentinel_safe/1.0.0/authored_b02_scl_window/sentinel-safe-b02-scl.zip +0 -0
  70. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/expected.json +47 -0
  71. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/satellite.xrit_image/1.0.0/authored_complete_raw_counts/xrit-complete-image.zip +0 -0
  72. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/expected.json +29 -0
  73. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.fits/1.0.0/tiny_primary_window/tiny-primary.fits +1 -0
  74. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/expected.json +47 -0
  75. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.hdf4/1.0.0/authored_temperature_window/temperature.hdf +0 -0
  76. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/expected.json +47 -0
  77. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.hdf5/1.0.0/authored_temperature_window/temperature.h5 +0 -0
  78. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/expected.json +50 -0
  79. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_grid_temperature_window/nasa-hdfeos2-grid.hdf +0 -0
  80. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/expected.json +56 -0
  81. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.hdf_eos2/1.0.0/authored_swath_temperature_window/nasa-hdfeos2-swath.hdf +0 -0
  82. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/expected.json +47 -0
  83. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.netcdf/1.0.0/authored_classic_temperature_window/temperature-classic.nc +0 -0
  84. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/expected.json +50 -0
  85. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/scientific.zarr/1.0.0/authored_v3_temperature_window/temperature-zarr-v3.zip +0 -0
  86. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/expected.json +50 -0
  87. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/weather.grib2/3.0.0/gfs_and_hrrr_categorical_rain/gfs-and-hrrr-categorical-rain.grib2 +0 -0
  88. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/expected.json +17 -0
  89. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/plain_filing_fact/filing.xml +3 -0
  90. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/expected.json +16 -0
  91. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/samples/xbrl.facts/1.0.0/xml_inline_fact/filing.xhtml +4 -0
  92. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific.py +1085 -0
  93. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/__init__.py +47 -0
  94. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/container.py +228 -0
  95. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/goes.py +189 -0
  96. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/hdf4.py +407 -0
  97. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/hdf4_bridge.py +618 -0
  98. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/hdf5.py +201 -0
  99. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/native.py +606 -0
  100. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/netcdf.py +255 -0
  101. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/profiles.py +496 -0
  102. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/raw.py +396 -0
  103. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_arrays/zarr.py +491 -0
  104. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_catalog.py +49 -0
  105. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_segmented/__init__.py +95 -0
  106. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_segmented/asset_sets.py +101 -0
  107. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_segmented/formats.py +360 -0
  108. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_segmented/hsd.py +718 -0
  109. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_segmented/native.py +200 -0
  110. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_segmented/profiles.py +365 -0
  111. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_segmented/reader.py +877 -0
  112. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/scientific_segmented/xrit.py +1200 -0
  113. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/sdmx_json.py +585 -0
  114. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/statistical_microdata.py +447 -0
  115. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/vector.py +129 -0
  116. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/vector_wkb.py +199 -0
  117. mostlyright_data-0.10.0/src/mostlyright/data_harness/readers/xbrl_facts.py +317 -0
  118. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/recipe.py +138 -34
  119. mostlyright_data-0.10.0/src/mostlyright/data_harness/run_execution_v4.py +1439 -0
  120. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/adapters.py +8 -0
  121. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_capture_session.py +2952 -0
  122. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connector.py +1 -1
  123. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-ed25519.v2.json +12 -7
  124. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac.v2.json +15 -11
  125. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac384.v2.json +74 -0
  126. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame-hmac512.v2.json +74 -0
  127. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-frame.v2.json +5 -4
  128. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header-rsa.v2.json +2 -1
  129. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-header.v2.json +1 -0
  130. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage-jwt.v2.json +60 -0
  131. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-permessage.v2.json +6 -5
  132. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-prelude.v2.json +92 -0
  133. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-query.v2.json +1 -0
  134. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subprotocol.v2.json +46 -0
  135. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-subscribe.v2.json +1 -0
  136. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_connectors/fixture.keyed-urlpath.v2.json +67 -0
  137. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_credential.py +561 -0
  138. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_prelude.py +464 -0
  139. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_rotation.py +58 -2
  140. mostlyright_data-0.10.0/src/mostlyright/data_harness/sources/stream_signing.py +328 -0
  141. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_transport.py +440 -16
  142. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/studio_boundary.py +36 -2
  143. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/__init__.py +22 -1
  144. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/probe.py +479 -0
  145. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/recipe.py +272 -0
  146. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/router.py +198 -379
  147. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/runs.py +8 -0
  148. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/stream.py +12 -4
  149. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/v4.py +344 -0
  150. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/v4_artifacts.py +873 -0
  151. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/v4_handoff.py +254 -0
  152. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/v4_query.py +540 -0
  153. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/v4_runs.py +700 -0
  154. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/v4_secrets.py +409 -0
  155. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/v4_stream.py +337 -0
  156. mostlyright_data-0.10.0/src/mostlyright/data_harness/thin/v4_tables.py +478 -0
  157. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/vocabulary.py +227 -60
  158. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/workers.py +7 -7
  159. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/record.py +687 -33
  160. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/headline.py +8 -0
  161. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/remediation.py +16 -2
  162. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/render.py +57 -1
  163. mostlyright_data-0.9.14/src/mostlyright/data_harness/sources/stream_capture_session.py +0 -1339
  164. mostlyright_data-0.9.14/src/mostlyright/data_harness/sources/stream_signing.py +0 -62
  165. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/.gitignore +0 -0
  166. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/scripts/hatch_build.py +0 -0
  167. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/__init__.py +0 -0
  168. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/acquisition/__init__.py +0 -0
  169. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/acquisition/http.py +0 -0
  170. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/acquisition/parsing.py +0 -0
  171. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/acquisition/ranges.py +0 -0
  172. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/acquisition/result_download.py +0 -0
  173. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/acquisition/retention_admission.py +0 -0
  174. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/acquisition/sandbox.py +0 -0
  175. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/agent_runtime.py +0 -0
  176. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/assets/logo-ink.svg +0 -0
  177. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/backends/__init__.py +0 -0
  178. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/backends/pandas_backend.py +0 -0
  179. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/backends/polars_backend.py +0 -0
  180. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/backends/protocol.py +0 -0
  181. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/backends/reference.py +0 -0
  182. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/backends/registry.py +0 -0
  183. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/backends/restrictions.py +0 -0
  184. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/canonical.py +0 -0
  185. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/catalog_job.py +0 -0
  186. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/contracts.py +0 -0
  187. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/coordinator.py +0 -0
  188. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/deploy.py +0 -0
  189. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/deploy_target.py +0 -0
  190. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/deployment_evidence.py +0 -0
  191. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/event_presentation.py +0 -0
  192. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/events.py +0 -0
  193. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/fast_delimited.py +0 -0
  194. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/fleet.py +0 -0
  195. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/formats.py +0 -0
  196. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/governors.py +0 -0
  197. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_crawler_container_smoke.py +0 -0
  198. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_crawler_fetch.py +0 -0
  199. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
  200. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_dataset.py +0 -0
  201. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_deploy.py +0 -0
  202. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_handoff.py +0 -0
  203. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_ingestion_contract.py +0 -0
  204. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_ingestion_job.py +0 -0
  205. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_ingestion_job_smoke.py +0 -0
  206. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_session_container_smoke.py +0 -0
  207. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_session_worker_job_smoke.py +0 -0
  208. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/hosted_stream_recorder_container_smoke.py +0 -0
  209. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ingestion/__init__.py +0 -0
  210. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ingestion/contracts.py +0 -0
  211. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ingestion/faults.py +0 -0
  212. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ingestion/gcs_store.py +0 -0
  213. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ingestion/spool.py +0 -0
  214. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ingestion/store.py +0 -0
  215. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/local_contracts.py +0 -0
  216. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/local_search/__init__.py +0 -0
  217. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/local_search/build_index.py +0 -0
  218. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/local_search/contracts.py +0 -0
  219. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/local_search/query_trace.py +0 -0
  220. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/local_search/retrieval.py +0 -0
  221. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/local_search/sealed.py +0 -0
  222. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/local_search/service.py +0 -0
  223. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/CONTRACT.md +0 -0
  224. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/__init__.py +0 -0
  225. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/chrome.py +0 -0
  226. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/code_body.py +0 -0
  227. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/document.py +0 -0
  228. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/frame.py +0 -0
  229. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/interactive.py +0 -0
  230. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/markdown_body.py +0 -0
  231. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/mr_components.py +0 -0
  232. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/outputs_data.py +0 -0
  233. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/outputs_rich.py +0 -0
  234. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/outputs_source.py +0 -0
  235. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/outputs_stage.py +0 -0
  236. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/outputs_text.py +0 -0
  237. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/parse.py +0 -0
  238. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/status.py +0 -0
  239. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/nbrender/tokens.py +0 -0
  240. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/notebook.py +0 -0
  241. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/offline.py +0 -0
  242. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/operation_registry.py +0 -0
  243. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/operator_setup.py +0 -0
  244. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/pipeline.py +0 -0
  245. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/plan_graph.py +0 -0
  246. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/__init__.py +0 -0
  247. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/contracts.py +0 -0
  248. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/engine.py +0 -0
  249. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/errors.py +0 -0
  250. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/gates.py +0 -0
  251. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/joins.py +0 -0
  252. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/profile.py +0 -0
  253. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/table.py +0 -0
  254. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/preparation/transforms.py +0 -0
  255. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/progress_events.py +0 -0
  256. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/__init__.py +0 -0
  257. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/containers.py +0 -0
  258. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/contracts.py +0 -0
  259. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/delimited.py +0 -0
  260. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/grib2/__init__.py +0 -0
  261. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/grib2/admission.py +0 -0
  262. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/grib2/decode.py +0 -0
  263. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/grib2/geometry.py +0 -0
  264. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/grib2/portable_math.py +0 -0
  265. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/json_tabular.py +0 -0
  266. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/parquet_tabular.py +0 -0
  267. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/README.md +0 -0
  268. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/cities.csv.gz +0 -0
  269. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.0.0/cities_one_stream/expected.json +0 -0
  270. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/cities.csv.gz +0 -0
  271. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.gzip/1.1.0/cities_one_stream/expected.json +0 -0
  272. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/cities.tar +0 -0
  273. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.0.0/cities_beside_a_directory_entry/expected.json +0 -0
  274. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/cities.tar +0 -0
  275. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.tar/1.1.0/cities_beside_a_directory_entry/expected.json +0 -0
  276. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/cities.zip +0 -0
  277. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.0.0/cities_beside_a_second_member/expected.json +0 -0
  278. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  279. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.1.0/dwd_semicolon_station_member/expected.json +0 -0
  280. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/dwd-station.zip +0 -0
  281. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/archive.zip/1.2.0/dwd_semicolon_station_member/expected.json +0 -0
  282. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/cities.csv +0 -0
  283. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/an_ordinary_comma_separated_table/expected.json +0 -0
  284. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/cities.tsv +0 -0
  285. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.0.0/quoted_fields_holding_the_delimiter/expected.json +0 -0
  286. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/expected.json +0 -0
  287. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/delimited_text/1.1.0/an_hourly_observation_table_served_as_plain_text/observations.csv +0 -0
  288. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/expected.json +0 -0
  289. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.0.0/nested_hourly_observations/stations.json +0 -0
  290. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/expected.json +0 -0
  291. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/json.tabular/1.1.0/an_observation_stream_served_as_plain_text/observations.ndjson +0 -0
  292. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/expected.json +0 -0
  293. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/parquet.tabular/1.0.0/two_columns/prices.parquet +0 -0
  294. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/cities.xlsx +0 -0
  295. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/an_ordinary_table_beside_a_second_sheet/expected.json +0 -0
  296. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  297. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.0.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  298. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/expected.json +0 -0
  299. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/spreadsheet.xlsx/1.1.0/shares_the_workbook_had_already_computed/shares.xlsx +0 -0
  300. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/README.md +0 -0
  301. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/expected.json +0 -0
  302. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/gfs_2m_temperature/gfs-2m-temperature.grib2 +0 -0
  303. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/expected.json +0 -0
  304. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  305. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/expected.json +0 -0
  306. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/1.0.0/hrrr_categorical_rain/hrrr-categorical-rain.grib2 +0 -0
  307. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/expected.json +0 -0
  308. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples/weather.grib2/2.0.0/hrrr_2m_temperature/hrrr-2m-temperature.grib2 +0 -0
  309. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/samples.py +0 -0
  310. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/spreadsheet.py +0 -0
  311. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/readers/tabular.py +0 -0
  312. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/repair/__init__.py +0 -0
  313. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/repair/adapters.py +0 -0
  314. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/repair/contracts.py +0 -0
  315. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/repair/coordinator.py +0 -0
  316. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/repair/errors.py +0 -0
  317. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/review.py +0 -0
  318. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/rowset.py +0 -0
  319. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/serving.py +0 -0
  320. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/serving_edge.py +0 -0
  321. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/serving_http.py +0 -0
  322. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/session_probes.py +0 -0
  323. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/signing.py +0 -0
  324. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/source_discovery.py +0 -0
  325. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/__init__.py +0 -0
  326. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/_adapter_steps.py +0 -0
  327. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/authenticated_https.py +0 -0
  328. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/authenticated_https_v2.py +0 -0
  329. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/cadence.py +0 -0
  330. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/cadence_emission.py +0 -0
  331. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/cadence_history.py +0 -0
  332. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/__init__.py +0 -0
  333. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/admission.py +0 -0
  334. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/authoring.py +0 -0
  335. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/authoring_policy.py +0 -0
  336. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/authoring_shards.py +0 -0
  337. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/bounded_io.py +0 -0
  338. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/channel.py +0 -0
  339. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/channel_client.py +0 -0
  340. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/contracts.py +0 -0
  341. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/coverage.py +0 -0
  342. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/delta.py +0 -0
  343. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/embedding.py +0 -0
  344. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/entry_v2.py +0 -0
  345. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/fill.py +0 -0
  346. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/fill_partitions.py +0 -0
  347. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/fill_staging.py +0 -0
  348. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/gating.py +0 -0
  349. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/generation_receipt.py +0 -0
  350. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/harvest/__init__.py +0 -0
  351. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/harvest/ckan.py +0 -0
  352. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/harvest/datagov_v4.py +0 -0
  353. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/harvest/protocol.py +0 -0
  354. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/harvest/sdmx.py +0 -0
  355. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/harvest/stac.py +0 -0
  356. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/health.py +0 -0
  357. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/hosted_catalog.py +0 -0
  358. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/identity_history.py +0 -0
  359. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/neural.py +0 -0
  360. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/packed_catalog.py +0 -0
  361. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/packed_retrieval.py +0 -0
  362. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/packed_writer.py +0 -0
  363. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/query_trace.py +0 -0
  364. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/recommend.py +0 -0
  365. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/retrieval.py +0 -0
  366. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/retrieval_manifest.py +0 -0
  367. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/rights_decisions.py +0 -0
  368. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/sealed.py +0 -0
  369. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/search.py +0 -0
  370. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/streaming_delta.py +0 -0
  371. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/catalog/update.py +0 -0
  372. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/collections.py +0 -0
  373. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/contracts.py +0 -0
  374. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/deletion.py +0 -0
  375. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/fitness.py +0 -0
  376. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/governance.py +0 -0
  377. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/hosted.py +0 -0
  378. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/integration.py +0 -0
  379. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/range_reader.py +0 -0
  380. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/registry.py +0 -0
  381. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/rights_rule.py +0 -0
  382. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/source_cadence_vectors.v1.json +0 -0
  383. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/sports.py +0 -0
  384. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream.py +0 -0
  385. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_connectors/polymarket.clob-market.v1.json +0 -0
  386. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_recorder.py +0 -0
  387. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_registry.py +0 -0
  388. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/sources/stream_series.py +0 -0
  389. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/stream_venue.py +0 -0
  390. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/stream_venue_staging.py +0 -0
  391. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/acquire.py +0 -0
  392. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  393. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  394. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/commands.py +0 -0
  395. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/download.py +0 -0
  396. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  397. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/parity.py +0 -0
  398. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/propose.py +0 -0
  399. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/research.py +0 -0
  400. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/session.py +0 -0
  401. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/thin/transport.py +0 -0
  402. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ucum/TABLE-PIN.json +0 -0
  403. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ucum/ucum-subset.v1.json +0 -0
  404. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/unit_flow.py +0 -0
  405. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/units.py +0 -0
  406. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  407. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/approve.py +0 -0
  408. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/author_yaml.py +0 -0
  409. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  410. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
  411. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/approve.py +0 -0
  412. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
  413. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/author.py +0 -0
  414. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/catalog_author.py +0 -0
  415. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/catalog_fill.py +0 -0
  416. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/catalog_harvest.py +0 -0
  417. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/catalog_publish.py +0 -0
  418. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/catalog_search.py +0 -0
  419. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/catalog_update.py +0 -0
  420. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/deploy.py +0 -0
  421. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/deploy_dataset.py +0 -0
  422. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/deploy_plan.py +0 -0
  423. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/deploy_status.py +0 -0
  424. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/diff.py +0 -0
  425. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/index.py +0 -0
  426. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/inventory.py +0 -0
  427. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/list_builds.py +0 -0
  428. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  429. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/peek.py +0 -0
  430. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/plan_check.py +0 -0
  431. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/preflight.py +0 -0
  432. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/review_setup.py +0 -0
  433. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/search.py +0 -0
  434. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/show.py +0 -0
  435. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  436. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  437. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  438. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  439. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/diffing.py +0 -0
  440. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/hosted_acquisition.py +0 -0
  441. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/hosted_run_status.py +0 -0
  442. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/inventory.py +0 -0
  443. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/local_review.py +0 -0
  444. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/login.py +0 -0
  445. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  446. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/peek.py +0 -0
  447. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
  448. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/plan_check.py +0 -0
  449. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/preflight.py +0 -0
  450. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/readers.py +0 -0
  451. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/ux/workload.py +0 -0
  452. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/viewer.py +0 -0
  453. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/__init__.py +0 -0
  454. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/authoring.py +0 -0
  455. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/contracts.py +0 -0
  456. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/materialize.py +0 -0
  457. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/observations.py +0 -0
  458. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/query.py +0 -0
  459. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/reducer.py +0 -0
  460. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/sdk.py +0 -0
  461. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/store.py +0 -0
  462. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/visual_run/transport.py +0 -0
  463. {mostlyright_data-0.9.14 → mostlyright_data-0.10.0}/src/mostlyright/data_harness/watch.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mostlyright-data
3
- Version: 0.9.14
3
+ Version: 0.10.0
4
4
  Summary: Mostly Right CLI for reproducible, reviewed Parquet datasets
5
5
  Project-URL: Homepage, https://mostlyright.md/
6
6
  Project-URL: Documentation, https://mostlyright.md/docs/guides/cli/
@@ -9,28 +9,41 @@ Provides-Extra: build
9
9
  Requires-Dist: hatchling==1.28.0; extra == 'build'
10
10
  Requires-Dist: uv-build==0.11.3; extra == 'build'
11
11
  Provides-Extra: dev
12
+ Requires-Dist: astropy==8.0.1; extra == 'dev'
12
13
  Requires-Dist: cmarkgfm>=2025.10.22; extra == 'dev'
13
14
  Requires-Dist: croniter==6.2.4; extra == 'dev'
14
15
  Requires-Dist: cryptography<51,>=50.0.0; extra == 'dev'
16
+ Requires-Dist: duckdb==1.5.5; extra == 'dev'
17
+ Requires-Dist: eccodes==2.48.0; extra == 'dev'
18
+ Requires-Dist: eccodeslib==2.48.0.26; (sys_platform != 'win32') and extra == 'dev'
15
19
  Requires-Dist: et-xmlfile==2.0.0; extra == 'dev'
20
+ Requires-Dist: h5py==3.16.0; extra == 'dev'
16
21
  Requires-Dist: idna<4,>=3.10; extra == 'dev'
17
22
  Requires-Dist: jsonschema[format]<5,>=4.23; extra == 'dev'
23
+ Requires-Dist: netcdf4==1.7.4; extra == 'dev'
18
24
  Requires-Dist: numpy==2.5.1; extra == 'dev'
19
25
  Requires-Dist: openpyxl==3.1.5; extra == 'dev'
20
26
  Requires-Dist: packaging<27,>=24; extra == 'dev'
21
27
  Requires-Dist: pandas==3.0.3; extra == 'dev'
28
+ Requires-Dist: pillow==12.3.0; extra == 'dev'
22
29
  Requires-Dist: polars-runtime-32==1.42.1; extra == 'dev'
23
30
  Requires-Dist: polars==1.42.1; extra == 'dev'
24
31
  Requires-Dist: pyarrow==23.0.1; extra == 'dev'
32
+ Requires-Dist: pyhdf==0.11.7; ((sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'darwin' and platform_machine == 'arm64')) and extra == 'dev'
33
+ Requires-Dist: pypublicdecompwt==2.8.1.6; extra == 'dev'
34
+ Requires-Dist: pyreadstat==1.3.6; extra == 'dev'
25
35
  Requires-Dist: pytest-xdist>=3.6; extra == 'dev'
26
36
  Requires-Dist: pytest>=8.3; extra == 'dev'
37
+ Requires-Dist: rasterio==1.5.1; extra == 'dev'
27
38
  Requires-Dist: referencing<1,>=0.35; extra == 'dev'
28
39
  Requires-Dist: ruff>=0.9; extra == 'dev'
40
+ Requires-Dist: zarr==3.3.0; extra == 'dev'
29
41
  Provides-Extra: hosted
30
42
  Requires-Dist: mostlyright-studio-client-v3==3.0.0; extra == 'hosted'
31
43
  Provides-Extra: local
32
44
  Requires-Dist: croniter==6.2.4; extra == 'local'
33
45
  Requires-Dist: cryptography<51,>=50.0.0; extra == 'local'
46
+ Requires-Dist: duckdb==1.5.5; extra == 'local'
34
47
  Requires-Dist: et-xmlfile==2.0.0; extra == 'local'
35
48
  Requires-Dist: idna<4,>=3.10; extra == 'local'
36
49
  Requires-Dist: numpy==2.5.1; extra == 'local'
@@ -40,6 +53,7 @@ Requires-Dist: pandas==3.0.3; extra == 'local'
40
53
  Requires-Dist: polars-runtime-32==1.42.1; extra == 'local'
41
54
  Requires-Dist: polars==1.42.1; extra == 'local'
42
55
  Requires-Dist: pyarrow==23.0.1; extra == 'local'
56
+ Requires-Dist: pyreadstat==1.3.6; extra == 'local'
43
57
  Provides-Extra: local-search-neural
44
58
  Requires-Dist: anyio==4.14.2; extra == 'local-search-neural'
45
59
  Requires-Dist: certifi==2026.7.22; extra == 'local-search-neural'
@@ -61,9 +75,12 @@ Requires-Dist: pyyaml==6.0.3; extra == 'local-search-neural'
61
75
  Requires-Dist: tokenizers==0.23.1; extra == 'local-search-neural'
62
76
  Requires-Dist: tqdm==4.70.0; extra == 'local-search-neural'
63
77
  Requires-Dist: typing-extensions==4.16.0; extra == 'local-search-neural'
78
+ Provides-Extra: recorder
79
+ Requires-Dist: cryptography<51,>=50.0.0; extra == 'recorder'
64
80
  Provides-Extra: release
65
81
  Requires-Dist: croniter==6.2.4; extra == 'release'
66
82
  Requires-Dist: cryptography<51,>=50.0.0; extra == 'release'
83
+ Requires-Dist: duckdb==1.5.5; extra == 'release'
67
84
  Requires-Dist: et-xmlfile==2.0.0; extra == 'release'
68
85
  Requires-Dist: idna<4,>=3.10; extra == 'release'
69
86
  Requires-Dist: jsonschema[format]<5,>=4.23; extra == 'release'
@@ -74,6 +91,18 @@ Requires-Dist: pandas==3.0.3; extra == 'release'
74
91
  Requires-Dist: polars-runtime-32==1.42.1; extra == 'release'
75
92
  Requires-Dist: polars==1.42.1; extra == 'release'
76
93
  Requires-Dist: pyarrow==23.0.1; extra == 'release'
94
+ Requires-Dist: pyreadstat==1.3.6; extra == 'release'
95
+ Provides-Extra: scientific
96
+ Requires-Dist: astropy==8.0.1; extra == 'scientific'
97
+ Requires-Dist: eccodes==2.48.0; extra == 'scientific'
98
+ Requires-Dist: eccodeslib==2.48.0.26; (sys_platform != 'win32') and extra == 'scientific'
99
+ Requires-Dist: h5py==3.16.0; extra == 'scientific'
100
+ Requires-Dist: netcdf4==1.7.4; extra == 'scientific'
101
+ Requires-Dist: pillow==12.3.0; extra == 'scientific'
102
+ Requires-Dist: pyhdf==0.11.7; ((sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'darwin' and platform_machine == 'arm64')) and extra == 'scientific'
103
+ Requires-Dist: pypublicdecompwt==2.8.1.6; extra == 'scientific'
104
+ Requires-Dist: rasterio==1.5.1; extra == 'scientific'
105
+ Requires-Dist: zarr==3.3.0; extra == 'scientific'
77
106
  Provides-Extra: viewer
78
107
  Requires-Dist: nbconvert==7.17.1; extra == 'viewer'
79
108
  Requires-Dist: nbformat==5.10.4; extra == 'viewer'
@@ -84,8 +113,9 @@ Description-Content-Type: text/markdown
84
113
  Browse datasets built by our community or create your own with agents that find the sources and
85
114
  configure the pipeline. Mostly Right keeps the dataset live.
86
115
 
87
- `mostlyright-data` is the command-line client. It opens hosted research sessions, starts and
88
- follows hosted dataset runs, and downloads verified datasets after they finish.
116
+ `mostlyright-data` is the command-line client. It probes sources, registers one recipe document,
117
+ starts and follows hosted dataset runs, reads what they delivered, and downloads the datasets after
118
+ they finish.
89
119
 
90
120
  ## Requirements
91
121
 
@@ -115,8 +145,20 @@ mr-data --version
115
145
  mr-data --help
116
146
  ```
117
147
 
118
- Use `mr-data research-open`, `mr-data research-status`, and `mr-data research-close` for hosted
119
- research sessions. `research-status` shows the current state.
148
+ ## Build a dataset
149
+
150
+ ```bash
151
+ mr-data probe SOURCE_ID "does this feed carry city grain before 2021"
152
+ mr-data recipe RECIPE.json
153
+ mr-data run RECIPE_ID --sample --window 2025-03-01..2025-04-01 --max-rows 50000
154
+ mr-data checks RUN
155
+ mr-data download RUN --output ./out
156
+ ```
157
+
158
+ `probe` asks one registered source one question; the session behind it is opened, reused and closed
159
+ for you. `recipe` registers one document and prints the identifiers the server derived from it.
160
+ `run` starts a run and `mr-data status RUN`, `mr-data runs`, and `mr-data watch RUN` report on it.
161
+ `mr-data promote TABLE_ID` makes a table live, and it is the one step that asks a person first.
120
162
 
121
163
  ## Local execution
122
164
 
@@ -147,8 +189,10 @@ Use `mr-data --help` for the full command list and options. Commands that suppor
147
189
 
148
190
  - `mr-data review RUN_DIR --local` runs the deterministic checks and writes no review decision. It exits 1 when a check fails. Write the flag after the command name; before it, `--local` is the lane selector.
149
191
  - `mr-data review RUN_DIR --report REPORT` seals a review decision from signed reviewer reports.
150
- - The weather reader accepts one extracted GRIB2 record. It refuses a multi-record GFS or HRRR file.
192
+ - Weather Reader versions 1 and 2 accept one extracted GRIB2 record and refuse a multi-record GFS
193
+ or HRRR file. Version 3 reads a bounded collection and selects exactly one sealed record.
151
194
  - Hosted credential-free acquisition supports one single-address public HTTPS object. Bounded collections require both local attestations.
195
+ - 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; the local recorder lane reads one from a `0600` file named by `--credential-file`. 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.
152
196
 
153
197
  ## Verification
154
198
 
@@ -3,8 +3,9 @@
3
3
  Browse datasets built by our community or create your own with agents that find the sources and
4
4
  configure the pipeline. Mostly Right keeps the dataset live.
5
5
 
6
- `mostlyright-data` is the command-line client. It opens hosted research sessions, starts and
7
- follows hosted dataset runs, and downloads verified datasets after they finish.
6
+ `mostlyright-data` is the command-line client. It probes sources, registers one recipe document,
7
+ starts and follows hosted dataset runs, reads what they delivered, and downloads the datasets after
8
+ they finish.
8
9
 
9
10
  ## Requirements
10
11
 
@@ -34,8 +35,20 @@ mr-data --version
34
35
  mr-data --help
35
36
  ```
36
37
 
37
- Use `mr-data research-open`, `mr-data research-status`, and `mr-data research-close` for hosted
38
- research sessions. `research-status` shows the current state.
38
+ ## Build a dataset
39
+
40
+ ```bash
41
+ mr-data probe SOURCE_ID "does this feed carry city grain before 2021"
42
+ mr-data recipe RECIPE.json
43
+ mr-data run RECIPE_ID --sample --window 2025-03-01..2025-04-01 --max-rows 50000
44
+ mr-data checks RUN
45
+ mr-data download RUN --output ./out
46
+ ```
47
+
48
+ `probe` asks one registered source one question; the session behind it is opened, reused and closed
49
+ for you. `recipe` registers one document and prints the identifiers the server derived from it.
50
+ `run` starts a run and `mr-data status RUN`, `mr-data runs`, and `mr-data watch RUN` report on it.
51
+ `mr-data promote TABLE_ID` makes a table live, and it is the one step that asks a person first.
39
52
 
40
53
  ## Local execution
41
54
 
@@ -66,8 +79,10 @@ Use `mr-data --help` for the full command list and options. Commands that suppor
66
79
 
67
80
  - `mr-data review RUN_DIR --local` runs the deterministic checks and writes no review decision. It exits 1 when a check fails. Write the flag after the command name; before it, `--local` is the lane selector.
68
81
  - `mr-data review RUN_DIR --report REPORT` seals a review decision from signed reviewer reports.
69
- - The weather reader accepts one extracted GRIB2 record. It refuses a multi-record GFS or HRRR file.
82
+ - Weather Reader versions 1 and 2 accept one extracted GRIB2 record and refuse a multi-record GFS
83
+ or HRRR file. Version 3 reads a bounded collection and selects exactly one sealed record.
70
84
  - Hosted credential-free acquisition supports one single-address public HTTPS object. Bounded collections require both local attestations.
85
+ - 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; the local recorder lane reads one from a `0600` file named by `--credential-file`. 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.
71
86
 
72
87
  ## Verification
73
88
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mostlyright-data"
3
- version = "0.9.14"
3
+ version = "0.10.0"
4
4
  description = "Mostly Right CLI for reproducible, reviewed Parquet datasets"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13,<3.14"
@@ -50,6 +50,9 @@ mostlyright-grib = [
50
50
  { path = "vendor/wheels/mostlyright_grib-0.1.0-py3-none-manylinux_2_36_x86_64.whl", marker = "sys_platform == 'linux'" },
51
51
  ]
52
52
  mostlyright-studio-client-v3 = { path = "vendor/wheels/mostlyright_studio_client_v3-3.0.0-py3-none-any.whl" }
53
+ pyhdf = [
54
+ { path = "vendor/wheels/pyhdf-0.11.7-cp313-cp313-macosx_15_0_arm64.whl", marker = "sys_platform == 'darwin' and platform_machine == 'arm64'" },
55
+ ]
53
56
 
54
57
  [project.scripts]
55
58
  # ⚠ NOT `cli:main`. `cli` imports `hosted_worker`, which imports pyarrow and cryptography at module
@@ -71,8 +74,12 @@ mr-data-catalog-job = "mostlyright.data_harness.thin.workers:catalog_job_main"
71
74
  mr-data-crawler = "mostlyright.data_harness.thin.workers:crawler_main"
72
75
  mr-data-crawler-job = "mostlyright.data_harness.thin.workers:crawler_job_main"
73
76
  mr-data-producer = "mostlyright.data_harness.thin.workers:producer_main"
77
+ # The v4 run worker's batch shape. It names what the executable does -- it runs a run -- rather
78
+ # than a v3 role, and it routes through the shim for the same reason every name above does:
79
+ # `hosted_run_worker` imports `hosted_worker`, so a thin install would fail inside the entry
80
+ # point's own import before the entry point could say anything.
81
+ mr-data-run-worker = "mostlyright.data_harness.thin.workers:run_worker_main"
74
82
  mr-data-generic-api = "mostlyright.data_harness.thin.workers:generic_api_probe_main"
75
- mr-data-verifier = "mostlyright.data_harness.thin.workers:verifier_main"
76
83
  # The legacy Cloud Run service entrypoint remains available for rollback. The Job entrypoint is a
77
84
  # separate executable so an image revision cannot accidentally start the retired HTTP service.
78
85
  # Both go through the same shim because `hosted_session_worker` imports `hosted_worker`.
@@ -103,6 +110,16 @@ build = [
103
110
  local = [
104
111
  "croniter==6.2.4",
105
112
  "cryptography>=50.0.0,<51",
113
+ # The warm session worker's bounded-query engine, and the ONLY reason it is here rather than
114
+ # in the base `dependencies`: duckdb ships a compiled extension, and `tests/test_thin_profile.py`
115
+ # installs the base closure into a fresh environment and refuses any `.so`/`.pyd`/`.dylib` it
116
+ # finds under site-packages. `bounded_query.py` is what uses it, and it is REQUIRED there
117
+ # rather than convenient: `docs/V4-WORKER-PROTOCOL.md` puts the security boundary for an
118
+ # agent-supplied statement in this repository -- a read-only connection with
119
+ # `enable_external_access=false` -- and says a worker that cannot enforce that must not claim
120
+ # queries. polars' `SQLContext` was considered and rejected: it adds no package and offers no
121
+ # equivalent of that setting.
122
+ "duckdb==1.5.5",
106
123
  # UTS46 with URL Standard validity checks. `acquisition/url_policy` requires the same
107
124
  # domain-to-ASCII behavior as the URL parser; Python's `idna` codec implements IDNA2003.
108
125
  "idna>=3.10,<4",
@@ -114,13 +131,54 @@ local = [
114
131
  "pandas==3.0.3",
115
132
  "polars==1.42.1",
116
133
  "polars-runtime-32==1.42.1",
134
+ # The bounded statistical-microdata Readers use the reviewed ReadStat binding for Stata,
135
+ # SPSS, and SAS Transport files. It stays in the local lane: the base hosted client must
136
+ # remain dependency-free, and the compiled binding is never imported before exact Reader
137
+ # resolution.
138
+ "pyreadstat==1.3.6",
139
+ ]
140
+ # What the hosted stream recorder needs beyond the base distribution, and nothing else. The two
141
+ # asymmetric signing algorithms in the keyed-wss connector grammar -- `rsa-pss-sha256` for Kalshi
142
+ # and `ed25519` for Binance `session.logon` -- are the whole of it; the three HMAC algorithms are
143
+ # stdlib.
144
+ #
145
+ # Deliberately a separate extra from `local` even though `local` already carries the same pin and
146
+ # the producer image installs both. The recorder is a hosted lane and `local` is a retired one; an
147
+ # image that stops installing `local` must not silently lose the ability to authenticate to a
148
+ # venue, and stating the requirement where it is used is what makes that impossible. The specifier
149
+ # is character-identical to `local`'s on purpose, asserted as equal strings by
150
+ # `tests/test_thin_profile.py`: two specifiers that resolve to one version today and drift
151
+ # tomorrow is exactly the failure the load-bearing-pin warning above exists for.
152
+ recorder = [
153
+ "cryptography>=50.0.0,<51",
154
+ ]
155
+ # Native scientific decoders are kept out of the ordinary local and thin-client closures. The
156
+ # hosted Builder and networkless Courier install this extra explicitly. Every Reader still gates
157
+ # the exact format/profile before it crosses one of these native boundaries.
158
+ scientific = [
159
+ "astropy==8.0.1",
160
+ "eccodes==2.48.0",
161
+ # The binding's wheel metadata does not make this native runtime visible to uv on every
162
+ # platform. State it directly so a worker never falls back to an ambient libecCodes.
163
+ # The native runtime wheel is separate on POSIX. The governed Windows eccodes wheel embeds its
164
+ # runtime and eccodeslib publishes no Windows artifact.
165
+ "eccodeslib==2.48.0.26; sys_platform != 'win32'",
166
+ "h5py==3.16.0",
167
+ "netCDF4==1.7.4",
168
+ # Linux resolves the exact upstream wheel. macOS arm64 uses the reviewed source build,
169
+ # because upstream's CP313 wheel is built with an unsupported macOS 26 deployment floor.
170
+ "pyhdf==0.11.7; (sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'darwin' and platform_machine == 'arm64')",
171
+ "Pillow==12.3.0",
172
+ "pypublicdecompwt==2.8.1.6",
173
+ "rasterio==1.5.1",
174
+ "zarr==3.3.0",
117
175
  ]
118
176
  dev = [
119
177
  # Development and every `verify-*` leg exercise the complete product, so the development extra
120
178
  # carries the local lane rather than making each Make target and each workflow remember to ask
121
179
  # for it. A leg that must prove the THIN closure installs the base distribution into its own
122
180
  # environment instead; see `tests/test_thin_profile.py`.
123
- "mostlyright-data[local]",
181
+ "mostlyright-data[local,scientific]",
124
182
  "cmarkgfm>=2025.10.22",
125
183
  "jsonschema[format]>=4.23,<5",
126
184
  "pytest>=8.3",
@@ -416,6 +416,39 @@ def canonical_public_hostname(parsed: SplitResult) -> str:
416
416
  return _normalize_hostname(hostname)
417
417
 
418
418
 
419
+ def names_internal_destination(hostname: str) -> bool:
420
+ """Whether ``hostname`` names somewhere only this deployment's own network can answer.
421
+
422
+ The four shapes an SSRF payload takes when the only thing under an author's control is a
423
+ hostname: the cloud metadata service by name, a private/loopback/link-local/reserved literal, a
424
+ single-label or ``.internal``/``.local`` name that no public resolver serves, and an obfuscated
425
+ numeric literal (``0x7f.1``, ``2130706433``) that ``ipaddress`` will not read while a resolver
426
+ will.
427
+
428
+ A PREDICATE OVER A NAME, and deliberately not a resolution: it is what a caller applies to an
429
+ address BEFORE a socket exists, so a refusal costs no packet. :func:`approved_public_addresses`
430
+ is the resolution rule, and it belongs to a transport that can pin the peer it dialled -- the
431
+ two are complementary and neither replaces the other. Callers holding a URL rather than a bare
432
+ name should pass it through :func:`canonical_public_hostname` first, because this asks about the
433
+ machine name a browser would resolve and not about whatever text sat in the authority.
434
+ """
435
+
436
+ if hostname in _METADATA_HOSTS or hostname.endswith((".internal", ".local")):
437
+ return True
438
+ if "." not in hostname and ":" not in hostname:
439
+ return True
440
+ if _looks_like_obfuscated_ip(hostname):
441
+ return True
442
+ literal = _parse_ip_literal(hostname)
443
+ if literal is None:
444
+ return False
445
+ try:
446
+ _require_globally_routable(literal)
447
+ except AcquisitionSecurityError:
448
+ return True
449
+ return False
450
+
451
+
419
452
  def _validate_url_structure(parsed: SplitResult) -> None:
420
453
  if parsed.scheme != "https":
421
454
  raise AcquisitionSecurityError("URL_SCHEME", "only HTTPS URLs are allowed")