mostlyright-data 0.19.2__tar.gz → 0.19.4__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 (72) hide show
  1. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/PKG-INFO +6 -1
  2. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/README.md +5 -0
  3. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/pyproject.toml +1 -1
  4. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/skills/mr-data-build/SKILL.md +23 -20
  5. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/.gitignore +0 -0
  6. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/scripts/hatch_build.py +0 -0
  7. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/skills/mr-data-build/agents/openai.yaml +0 -0
  8. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
  9. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/__init__.py +0 -0
  10. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/canonical.py +0 -0
  11. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/formats.py +0 -0
  12. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
  13. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/key_seam.py +0 -0
  14. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/page_coverage.py +0 -0
  15. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/part_check_evidence.py +0 -0
  16. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/session_probes.py +0 -0
  17. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/skill_assets.py +0 -0
  18. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/table_manifest.py +0 -0
  19. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/__init__.py +0 -0
  20. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/acquire.py +0 -0
  21. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
  22. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/activity.py +0 -0
  23. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/approvals.py +0 -0
  24. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/categories.py +0 -0
  25. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/commands.py +0 -0
  26. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/dataset-categories-v1.json +0 -0
  27. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/download.py +0 -0
  28. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/narrative.py +0 -0
  29. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/parity.py +0 -0
  30. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/probe.py +0 -0
  31. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/progress_vocabulary.py +0 -0
  32. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/propose.py +0 -0
  33. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/recipe.py +0 -0
  34. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/research.py +0 -0
  35. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/router.py +0 -0
  36. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/runs.py +0 -0
  37. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/session.py +0 -0
  38. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/stream.py +0 -0
  39. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
  40. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/transport.py +0 -0
  41. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/user_agent.py +0 -0
  42. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4.py +0 -0
  43. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
  44. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_catalog.py +0 -0
  45. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
  46. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
  47. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
  48. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
  49. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
  50. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
  51. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
  52. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
  53. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
  54. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
  55. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/thin/vocabulary.py +0 -0
  56. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/__init__.py +0 -0
  57. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/attendance.py +0 -0
  58. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/clarification.py +0 -0
  59. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
  60. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
  61. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
  62. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
  63. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
  64. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
  65. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
  66. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
  67. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/credentials.py +0 -0
  68. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/login.py +0 -0
  69. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
  70. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
  71. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/remediation.py +0 -0
  72. {mostlyright_data-0.19.2 → mostlyright_data-0.19.4}/src/mostlyright/data_harness/ux/render.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mostlyright-data
3
- Version: 0.19.2
3
+ Version: 0.19.4
4
4
  Summary: Mostly Right hosted CLI for reviewed datasets
5
5
  Project-URL: Homepage, https://mostlyright.md/
6
6
  Project-URL: Documentation, https://mostlyright.md/docs/guides/cli/
@@ -116,6 +116,11 @@ worker executables or image publisher.
116
116
  - [CLI reference](https://mostlyright.md/docs/reference/cli/)
117
117
  - [Recipe reference](https://mostlyright.md/docs/reference/recipe/)
118
118
  - [Recipe examples](https://mostlyright.md/docs/recipes/)
119
+ - [Join market settlements](https://mostlyright.md/docs/recipes/market-settlement-join/)
120
+ - [Compare a forecast with observations](https://mostlyright.md/docs/recipes/forecast-vs-observation/)
121
+ - [Replace a snapshot on refresh](https://mostlyright.md/docs/recipes/snapshot-window/)
122
+ - [Union many weather stations](https://mostlyright.md/docs/recipes/many-station-weather/)
123
+ - [Aggregate a stream into bars](https://mostlyright.md/docs/recipes/stream-to-bars/)
119
124
  - [Use a public dataset](https://mostlyright.md/docs/guides/use-public-datasets/)
120
125
  - [Certified document extraction](docs/DOCUMENT-EXTRACTION.md)
121
126
 
@@ -104,6 +104,11 @@ worker executables or image publisher.
104
104
  - [CLI reference](https://mostlyright.md/docs/reference/cli/)
105
105
  - [Recipe reference](https://mostlyright.md/docs/reference/recipe/)
106
106
  - [Recipe examples](https://mostlyright.md/docs/recipes/)
107
+ - [Join market settlements](https://mostlyright.md/docs/recipes/market-settlement-join/)
108
+ - [Compare a forecast with observations](https://mostlyright.md/docs/recipes/forecast-vs-observation/)
109
+ - [Replace a snapshot on refresh](https://mostlyright.md/docs/recipes/snapshot-window/)
110
+ - [Union many weather stations](https://mostlyright.md/docs/recipes/many-station-weather/)
111
+ - [Aggregate a stream into bars](https://mostlyright.md/docs/recipes/stream-to-bars/)
107
112
  - [Use a public dataset](https://mostlyright.md/docs/guides/use-public-datasets/)
108
113
  - [Certified document extraction](docs/DOCUMENT-EXTRACTION.md)
109
114
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mostlyright-data"
3
- version = "0.19.2"
3
+ version = "0.19.4"
4
4
  description = "Mostly Right hosted CLI for reviewed datasets"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -114,11 +114,14 @@ an older version, the page is right.
114
114
  | Install the client and sign in | https://mostlyright.md/docs/start/install/ |
115
115
 
116
116
  Read the worked recipe closest to the source in hand before writing your own.
117
- https://mostlyright.md/docs/recipes/ lists all eight: `city-temperatures` (daily city
117
+ https://mostlyright.md/docs/recipes/ lists all thirteen: `city-temperatures` (daily city
118
118
  temperatures), `csv-snapshot` (one CSV file, one table), `json-api` (records pointer and
119
119
  pagination), `html-collection` (many HTML pages, one table), `document-extraction` (PDF
120
120
  projection), `weather-grib` (GRIB2 and the scientific Readers), `websocket-stream` (a `wss://`
121
- venue), `multi-source-join` (two sources joined, with checks).
121
+ venue), `multi-source-join` (two sources joined, with checks), `market-settlement-join` (two
122
+ prediction venues joined on one event), `forecast-vs-observation` (a forecast checked against an
123
+ observation), `snapshot-window` (a listing replaced on refresh), `many-station-weather` (twenty
124
+ station feeds unioned into one table), and `stream-to-bars` (recorded trades aggregated into bars).
122
125
 
123
126
  The build guides run one per stage of the loop below, each at https://mostlyright.md/docs/build/NAME/
124
127
  where NAME is `probe-sources`, `write-a-recipe`, `run-and-inspect`, `publish-and-refresh`,
@@ -637,8 +640,8 @@ seconds -- not a paragraph, and not a report. Use exactly this shape, in this or
637
640
  section out only when there is genuinely nothing to say (shown indented here; the document
638
641
  itself carries the headings at column one):
639
642
 
640
- Two or three plain sentences: what the data is about, why it is worth a look, and what a
641
- reader can see or do with it.
643
+ Two or three plain sentences: what the data is about, why it is worth a look, and what is
644
+ in it.
642
645
 
643
646
  ## Coverage
644
647
  - **Window:** the exact dates and the time zone.
@@ -664,12 +667,11 @@ That is six sections: the opening paragraph, and the five headings under it.
664
667
 
665
668
  Two or three short sentences, 120 to 280 characters, written for somebody who has never heard of
666
669
  the source, the venue or the format. Sentence one says what the data is about and what makes it
667
- worth a look, in at most 110 characters. The rest says, in the same plain words, what a reader can
668
- see or do with it.
670
+ worth a look, in at most 110 characters. The rest says, in the same plain words, what is in it.
669
671
 
670
- 1. No tickers, station codes, series codes, format names, publisher names, row definitions or row
671
- counts here. Every one of those facts is in the sections below, which is where a reader who
672
- wants it will look.
672
+ 1. No tickers, station codes, series codes, format names, publisher names, row definitions (the
673
+ sentence that begins `Each row is`) or row counts here. Every one of those facts is in the
674
+ sections below, which is where a reader who wants it will look.
673
675
  2. No Markdown: no bold, no links, no bullets, no code.
674
676
  3. A hook is an interesting fact stated plainly, never a pitch. Banned outright: comprehensive,
675
677
  rich, valuable, powerful, unlock, explore, dive into, perfect for, insights, "this dataset", a
@@ -679,6 +681,9 @@ see or do with it.
679
681
  5. The stranger test, before anything else is written: read sentence one alone under the title. If
680
682
  a curious non-specialist could not say what the data is about and would not want the next line,
681
683
  rewrite it.
684
+ 6. Plain and short. Every sentence under about twenty words, every sentence a fact: the venue, the
685
+ subject, the horizon, the cadence, the window. Nothing about what a reader might do with it: no
686
+ "so you can", "a way to", "ready to", "for seeing". Say what is there and stop.
682
687
 
683
688
  One airport weather table, the shape to avoid and the shape to write. To avoid:
684
689
 
@@ -688,17 +693,15 @@ One airport weather table, the shape to avoid and the shape to write. To avoid:
688
693
 
689
694
  To write:
690
695
 
691
- Beijing's weather about every half hour since 2020, with each day's official high and low on
692
- the same row. Temperature, wind, pressure and visibility as the airport recorded them, ready
693
- to test a forecast against what actually happened.
696
+ Beijing airport weather since 2020, a report about every half hour, with the day's high and
697
+ low on each row. Temperature, wind, pressure and visibility as the airport recorded them.
694
698
 
695
699
  The station code, the report types, the publisher and the count all moved down to Coverage and to
696
700
  Source and rights, where a reader who wants them looks. "About every half hour" stays only because
697
- Coverage puts a month at 1,302 to 1,591 rows, which is one row every 27 to 33 minutes. "On the same
698
- row" stays because it says what a reader can see; the row definition rule 1 bans is the sentence
699
- that begins `Each row is`. Two ways to fail: the pitch (`Unlock real-time insights into how
700
- prediction markets price the weather!`) and the bare subject with no reason to care (`Beijing
701
- weather data.`).
701
+ Coverage puts a month at 1,302 to 1,591 rows, which is one row every 27 to 33 minutes. Three ways
702
+ to fail: the pitch (`Unlock real-time insights into how prediction markets price
703
+ the weather!`), the promise (`ready to test a forecast against what actually happened`) and the
704
+ bare subject with no reason to care (`Beijing weather data.`).
702
705
 
703
706
  **Body rules** (the five sections under the headings)
704
707
  1. Every sentence must stay true and complete when quoted alone, away from the page. Never
@@ -721,9 +724,9 @@ revision, not a style choice. Give `table.description` the grain and the window.
721
724
  **Check before writing.** Fix and re-check until every line passes:
722
725
  - title: at most 60 characters, contains the place, contains no colon, pipe or exclamation mark,
723
726
  no brand, no "dataset" or "data", no version number, no run date
724
- - opening paragraph: two or three sentences, 120 to 280 characters, first full stop before
725
- character 110, no Markdown, no identifier, publisher name, row count or row definition, no
726
- banned word
727
+ - opening paragraph: two or three sentences, each under about twenty words, 120 to 280 characters,
728
+ first full stop before character 110, no Markdown, no identifier, publisher name, row count or
729
+ row definition, no banned word, no clause about what a reader might do
727
730
  - category: exactly one fixed ID saved and verified before recipe registration
728
731
  - topics: 3 to 8 descriptive tags, no duplicates, lowercase, at most 40 characters each
729
732
  - licence: an SPDX identifier the sources actually grant, or `--license` left off