mostlyright-data 0.19.0__tar.gz → 0.19.1__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.
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/PKG-INFO +1 -1
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/pyproject.toml +1 -1
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/skills/mr-data-build/SKILL.md +47 -16
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/.gitignore +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/README.md +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/scripts/hatch_build.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/skills/mr-data-build/agents/openai.yaml +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/skills/mr-data-build/scripts/write_research_notebook.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/__init__.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/canonical.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/formats.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/hosted_crawler_protocol.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/key_seam.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/page_coverage.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/part_check_evidence.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/session_probes.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/skill_assets.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/table_manifest.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/__init__.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/acquire.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/acquire_cancel.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/activity.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/approvals.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/categories.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/commands.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/dataset-categories-v1.json +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/download.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/narrative.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/parity.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/probe.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/progress_vocabulary.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/propose.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/recipe.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/research.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/router.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/runs.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/session.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/stream.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/stream_venue.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/transport.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/user_agent.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_artifacts.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_catalog.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_connections.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_dataset_covers.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_datasets.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_handoff.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_narrative.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_query.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_runs.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_secrets.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_stream.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_tables.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/vocabulary.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/__init__.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/attendance.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/clarification.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/cloud_auth.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/commands/__init__.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/commands/auth.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/commands/clarify.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/commands/login.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/commands/whoami.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/credential_native.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/credential_store.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/credentials.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/login.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/path_kind.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/plain_file.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/remediation.py +0 -0
- {mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/render.py +0 -0
|
@@ -596,7 +596,8 @@ seconds -- not a paragraph, and not a report. Use exactly this shape, in this or
|
|
|
596
596
|
section out only when there is genuinely nothing to say (shown indented here; the document
|
|
597
597
|
itself carries the headings at column one):
|
|
598
598
|
|
|
599
|
-
Two plain sentences: what
|
|
599
|
+
Two or three plain sentences: what the data is about, why it is worth a look, and what a
|
|
600
|
+
reader can see or do with it.
|
|
600
601
|
|
|
601
602
|
## Coverage
|
|
602
603
|
- **Window:** the exact dates and the time zone.
|
|
@@ -618,17 +619,45 @@ itself carries the headings at column one):
|
|
|
618
619
|
|
|
619
620
|
That is six sections: the opening paragraph, and the five headings under it.
|
|
620
621
|
|
|
621
|
-
**Opening paragraph
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
622
|
+
**Opening paragraph** (everything before the first `##` heading)
|
|
623
|
+
|
|
624
|
+
Two or three short sentences, 120 to 280 characters, written for somebody who has never heard of
|
|
625
|
+
the source, the venue or the format. Sentence one says what the data is about and what makes it
|
|
626
|
+
worth a look, in at most 110 characters. The rest says, in the same plain words, what a reader can
|
|
627
|
+
see or do with it.
|
|
628
|
+
|
|
629
|
+
1. No tickers, station codes, series codes, format names, publisher names, row definitions or row
|
|
630
|
+
counts here. Every one of those facts is in the sections below, which is where a reader who
|
|
631
|
+
wants it will look.
|
|
632
|
+
2. No Markdown: no bold, no links, no bullets, no code.
|
|
633
|
+
3. A hook is an interesting fact stated plainly, never a pitch. Banned outright: comprehensive,
|
|
634
|
+
rich, valuable, powerful, unlock, explore, dive into, perfect for, insights, "this dataset", a
|
|
635
|
+
rhetorical question, an exclamation mark.
|
|
636
|
+
4. Every number in it must be one the run established. "About every half hour" and "thousands of
|
|
637
|
+
markets" are claims, and a claim that is not on the run does not go here.
|
|
638
|
+
5. The stranger test, before anything else is written: read sentence one alone under the title. If
|
|
639
|
+
a curious non-specialist could not say what the data is about and would not want the next line,
|
|
640
|
+
rewrite it.
|
|
641
|
+
|
|
642
|
+
One airport weather table, the shape to avoid and the shape to write. To avoid:
|
|
643
|
+
|
|
644
|
+
Each row is one METAR or SPECI weather report from Beijing (ZBAA), since January 2020, via
|
|
645
|
+
Iowa Environmental Mesonet. 117,876 reports of temperature, wind, pressure, visibility with
|
|
646
|
+
the day's highest and lowest reading.
|
|
647
|
+
|
|
648
|
+
To write:
|
|
649
|
+
|
|
650
|
+
Beijing's weather about every half hour since 2020, with each day's official high and low on
|
|
651
|
+
the same row. Temperature, wind, pressure and visibility as the airport recorded them, ready
|
|
652
|
+
to test a forecast against what actually happened.
|
|
653
|
+
|
|
654
|
+
The station code, the report types, the publisher and the count all moved down to Coverage and to
|
|
655
|
+
Source and rights, where a reader who wants them looks. "About every half hour" stays only because
|
|
656
|
+
Coverage puts a month at 1,302 to 1,591 rows, which is one row every 27 to 33 minutes. "On the same
|
|
657
|
+
row" stays because it says what a reader can see; the row definition rule 1 bans is the sentence
|
|
658
|
+
that begins `Each row is`. Two ways to fail: the pitch (`Unlock real-time insights into how
|
|
659
|
+
prediction markets price the weather!`) and the bare subject with no reason to care (`Beijing
|
|
660
|
+
weather data.`).
|
|
632
661
|
|
|
633
662
|
**Body rules** (the five sections under the headings)
|
|
634
663
|
1. Every sentence must stay true and complete when quoted alone, away from the page. Never
|
|
@@ -644,14 +673,16 @@ That is six sections: the opening paragraph, and the five headings under it.
|
|
|
644
673
|
Rules that keep it readable: short sentences; no sentence over about twenty-five words; bullets
|
|
645
674
|
rather than comma lists; no tables, no code blocks, no links to internal tools, no headings beyond
|
|
646
675
|
the ones above. Spell out the names a reader would search for -- the place, the identifiers in
|
|
647
|
-
every common form, the programme and the publisher -- once each,
|
|
648
|
-
never as a keyword list. A one-line description is a defect to fix in the
|
|
649
|
-
choice. Give `table.description` the grain and the window.
|
|
676
|
+
every common form, the programme and the publisher -- once each, under Coverage and under
|
|
677
|
+
Source and rights, and never as a keyword list. A one-line description is a defect to fix in the
|
|
678
|
+
revision, not a style choice. Give `table.description` the grain and the window.
|
|
650
679
|
|
|
651
680
|
**Check before writing.** Fix and re-check until every line passes:
|
|
652
681
|
- title: at most 60 characters, contains the place, contains no colon, pipe or exclamation mark,
|
|
653
682
|
no brand, no "dataset" or "data", no version number, no run date
|
|
654
|
-
- opening paragraph:
|
|
683
|
+
- opening paragraph: two or three sentences, 120 to 280 characters, first full stop before
|
|
684
|
+
character 110, no Markdown, no identifier, publisher name, row count or row definition, no
|
|
685
|
+
banned word
|
|
655
686
|
- category: exactly one fixed ID saved and verified before recipe registration
|
|
656
687
|
- topics: 3 to 8 descriptive tags, no duplicates, lowercase, at most 40 characters each
|
|
657
688
|
- licence: an SPDX identifier the sources actually grant, or `--license` left off
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/__init__.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/canonical.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/key_seam.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/page_coverage.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/session_probes.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/skill_assets.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/table_manifest.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/__init__.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/acquire.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/activity.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/approvals.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/categories.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/commands.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/download.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/narrative.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/parity.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/probe.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/propose.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/recipe.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/research.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/router.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/runs.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/session.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/stream.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/transport.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/user_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_catalog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_datasets.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_handoff.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_query.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_runs.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_secrets.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_stream.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/v4_tables.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/thin/vocabulary.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/__init__.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/attendance.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/clarification.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/cloud_auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/commands/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/credentials.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/login.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/path_kind.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/plain_file.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/remediation.py
RENAMED
|
File without changes
|
{mostlyright_data-0.19.0 → mostlyright_data-0.19.1}/src/mostlyright/data_harness/ux/render.py
RENAMED
|
File without changes
|