Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CATALOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ The dataset registry, **auto-generated** from the sidecar manifests (`lectures/*
| [**mpd2020.xlsx**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/mpd2020.xlsx)<br><sub>Maddison Project Database 2020 — GDP per capita and population, 1 CE to 2018</sub> | constructed | [Maddison Project Database, version 2020](https://www.rug.nl/ggdc/historicaldevelopment/maddison/releases/maddison-project-database-2020) | CC BY 4.0 | ✅ permitted | ⇄ diverged | ⚠️ unrecovered | 1.7 MB | [lecture-python-intro · long_run_growth.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/long_run_growth.md)<br>[lecture-wasm · long_run_growth.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/long_run_growth.md)<br>[lecture-intro.zh-cn · long_run_growth.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/long_run_growth.md)<br>[test-actions-lecture-intro · long_run_growth.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/long_run_growth.md) |
| [**nom_balances.npy**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/nom_balances.npy)<br><sub>French Revolution — monthly nominal assignat balances, 1789-1796</sub> | constructed | unrecorded | | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 1.4 KB | [lecture-python-intro · french_rev.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/french_rev.md)<br>[lecture-wasm · french_rev.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/french_rev.md)<br>[lecture-intro.zh-cn · french_rev.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/french_rev.md)<br>[test-actions-lecture-intro · french_rev.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/french_rev.md)<br><sub>⚠️ Reads a local `datasets/` copy, not this file</sub> |
| [**realwage.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/realwage.csv)<br><sub>OECD real minimum wages — 32 countries, 2006–2016</sub> | constructed | [OECD — Real minimum wages (RMW)](https://stats.oecd.org/Index.aspx?DataSetCode=RMW) | CC BY 4.0 | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 118.7 KB | [lecture-python-programming · pandas_panel.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/pandas_panel.md)<br>[lecture-python.myst · pandas_panel.md](https://github.com/QuantEcon/lecture-python.myst/blob/main/lectures/pandas_panel.md)<br>[lecture-python.zh-cn · pandas_panel.md](https://github.com/QuantEcon/lecture-python.zh-cn/blob/main/lectures/pandas_panel.md) |
| [**test_pwt.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/test_pwt.csv)<br><sub>Penn World Table teaching extract — eight countries, year 2000</sub> | constructed | [Penn World Table (Heston, Summers and Aten; PWT 6.x/7.x era) — exact vintage unestablished](https://www.rug.nl/ggdc/productivity/pwt/pwt-releases/pwt-7.0) | | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 793 B | [lecture-python-programming · pandas.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/pandas.md)<br>[lecture-python-programming · polars.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/polars.md)<br>[lecture-python-programming.zh-cn · pandas.md](https://github.com/QuantEcon/lecture-python-programming.zh-cn/blob/main/lectures/pandas.md)<br><sub>⚠️ Synced translation; reads lecture-python-programming's raw URL, not this file</sub><br>[lecture-python-programming.zh-cn · polars.md](https://github.com/QuantEcon/lecture-python-programming.zh-cn/blob/main/lectures/polars.md)<br><sub>⚠️ Synced translation; same URL, same sync dependency as pandas.md above</sub><br>[lecture-python-programming.fr · pandas.md](https://github.com/QuantEcon/lecture-python-programming.fr/blob/main/lectures/pandas.md)<br><sub>⚠️ Synced translation; reads lecture-python-programming's raw URL, not this file</sub><br>[lecture-python-programming.fr · polars.md](https://github.com/QuantEcon/lecture-python-programming.fr/blob/main/lectures/polars.md)<br><sub>⚠️ Synced translation; same URL, same sync dependency</sub><br>[lecture-python-programming.fa · pandas.md](https://github.com/QuantEcon/lecture-python-programming.fa/blob/main/lectures/pandas.md)<br><sub>⚠️ Synced translation; reads lecture-python-programming's raw URL, not this file</sub><br>[lecture-python-programming.fa · polars.md](https://github.com/QuantEcon/lecture-python-programming.fa/blob/main/lectures/polars.md)<br><sub>⚠️ Synced translation; same URL, same sync dependency</sub> |
| [**test_pwt.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/test_pwt.csv)<br><sub>Penn World Table teaching extract — eight countries, year 2000</sub> | constructed | [Penn World Table (Heston, Summers and Aten; PWT 6.x/7.x era) — exact vintage unestablished](https://www.rug.nl/ggdc/productivity/pwt/pwt-releases/pwt-7.0) | | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 793 B | [lecture-python-programming · pandas.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/pandas.md)<br>[lecture-python-programming · polars.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/polars.md)<br>[lecture-python-programming.zh-cn · pandas.md](https://github.com/QuantEcon/lecture-python-programming.zh-cn/blob/main/lectures/pandas.md)<br>[lecture-python-programming.zh-cn · polars.md](https://github.com/QuantEcon/lecture-python-programming.zh-cn/blob/main/lectures/polars.md)<br>[lecture-python-programming.fr · pandas.md](https://github.com/QuantEcon/lecture-python-programming.fr/blob/main/lectures/pandas.md)<br>[lecture-python-programming.fr · polars.md](https://github.com/QuantEcon/lecture-python-programming.fr/blob/main/lectures/polars.md)<br>[lecture-python-programming.fa · pandas.md](https://github.com/QuantEcon/lecture-python-programming.fa/blob/main/lectures/pandas.md)<br>[lecture-python-programming.fa · polars.md](https://github.com/QuantEcon/lecture-python-programming.fa/blob/main/lectures/polars.md) |
| [**us_adult_heights.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/us_adult_heights.csv)<br><sub>United States — adult standing height by sex, NHANES 2015-2018</sub> | constructed | [National Health and Nutrition Examination Survey (NHANES), US Centers for Disease Control and Prevention, National Center for Health Statistics](https://www.cdc.gov/nchs/nhanes/index.htm) | US Government work — public domain | ✅ permitted | ✅ verified | ✅ committed | 123.1 KB | [lecture-python-intro · prob_dist.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/prob_dist.md)<br>[lecture-python-intro · observed_distributions.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/observed_distributions.md)<br>[lecture-python-intro · fitting_distributions.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/fitting_distributions.md)<br>[lecture-intro.zh-cn · fitting_distributions.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/fitting_distributions.md)<br>[lecture-intro.zh-cn · observed_distributions.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/observed_distributions.md)<br>[lecture-intro.zh-cn · prob_dist.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/prob_dist.md)<br><sub>⚠️ Reads a local `_static/lecture_specific/prob_dist/` copy, not this file, under a comment that still says to switch once the datasets repo exists</sub> |
| [**usa-gini-nwealth-tincome-lincome.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/usa-gini-nwealth-tincome-lincome.csv)<br><sub>US Gini coefficients — net wealth, total income and labour income, 1950-2016</sub> | constructed | [Derived from SCF_plus_mini.csv (this repo), an extract of the SCF+ panel](https://github.com/QuantEcon/data-lectures/blob/main/lectures/SCF_plus_mini.csv) | | ✅ permitted | ⚠️ unverifiable | committed-frozen | 1.2 KB | [lecture-python-intro · inequality.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/inequality.md)<br>[lecture-wasm · inequality.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/inequality.md)<br>[lecture-intro.zh-cn · inequality.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/inequality.md)<br>[test-actions-lecture-intro · inequality.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/inequality.md) |

Expand Down
47 changes: 16 additions & 31 deletions lectures/test_pwt.csv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,55 +139,40 @@ schema:
# ---------------------------------------------------------------------------
# Consumers — how a correction knows what to rebuild
# ---------------------------------------------------------------------------
# EIGHT consuming lecture files across four repos, all reading the SOURCE
# repo's raw URL (raw.githubusercontent.com/QuantEcon/lecture-python-programming/
# main/...) — so deleting the source copy breaks all of them AT RUNTIME with no
# stale-serving grace period, translations included. Established 2026-08-18 by
# basename grep with size controls against the live default branches of all
# four repos. Three of polars.md's four reads build the URL across THREE
# adjacent string literals; a whole-URL grep returns a confident zero — sweep
# by basename.
# EIGHT consuming lecture files across four repos, ALL repointed to this file
# as of 2026-08-18 — certified by a basename sweep with size controls against
# the live default branches of all four repos (1 read in each pandas.md, 3 in
# each polars.md, zero old-URL residue). The translation repos are OUTSIDE the
# audit's scan set, so they are recorded here or nowhere.
#
# The translation repos are OUTSIDE the audit's scan set, so they are recorded
# here or nowhere. They are not direct repoint targets: their .md files are
# overwritten wholesale by lecture-python-programming's sync-translations-*
# workflows, so the repoint propagates by sync after the source repoint
# merges — but the DELETION gate must wait until all three have synced,
# rebuilt and republished, or their live sites break at cell execution.
# The DELETION gate on the source copy is now only republish lag: each of the
# four sites' published notebooks bakes whatever URL its last publish saw, so
# the old copy must stay until all four have republished from repointed
# source. Two propagation traps hit on the way here and are worth knowing
# before trusting a future sync: the sync workflows open PRs (they do not
# commit), and a \translate-resync regenerates from the SOURCE PR's merge-time
# snapshot, which can silently revert later source edits — it did exactly that
# to two of these reads once (restored same day; the defect is
# QuantEcon/action-translation#276). A fifth translation repo
# (lecture-python-programming.ml) holds an orphan copy of this file but has no
# pandas/polars lectures, so it is not a consumer.
consumers:
- repo: QuantEcon/lecture-python-programming
file: lectures/pandas.md
- repo: QuantEcon/lecture-python-programming
file: lectures/polars.md
- repo: QuantEcon/lecture-python-programming.zh-cn
file: lectures/pandas.md
note: >
Synced translation; reads lecture-python-programming's raw URL, not this
file. Repointed indirectly when the source repoint syncs; do not delete
the source copy until this repo has synced and republished. Tracked with
the Track D record in QuantEcon/data-lectures migration.yml.
- repo: QuantEcon/lecture-python-programming.zh-cn
file: lectures/polars.md
note: >
Synced translation; same URL, same sync dependency as pandas.md above.
- repo: QuantEcon/lecture-python-programming.fr
file: lectures/pandas.md
note: >
Synced translation; reads lecture-python-programming's raw URL, not this
file. Same sync dependency as the zh-cn entries.
- repo: QuantEcon/lecture-python-programming.fr
file: lectures/polars.md
note: >
Synced translation; same URL, same sync dependency.
- repo: QuantEcon/lecture-python-programming.fa
file: lectures/pandas.md
note: >
Synced translation; reads lecture-python-programming's raw URL, not this
file. Same sync dependency as the zh-cn entries.
- repo: QuantEcon/lecture-python-programming.fa
file: lectures/polars.md
note: >
Synced translation; same URL, same sync dependency.

builder: null
builder_status: unrecovered
15 changes: 7 additions & 8 deletions migration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -810,14 +810,13 @@ datasets:
cutover: null

# Track D — the one lecture-python-programming dataset, riding with C2 (its
# rename is on the same phase-2 review). Read over the SOURCE repo's raw URL
# from pandas.md, polars.md AND the three synced translation repos
# (.zh-cn/.fr/.fa), so the deletion gate is wider than usual: repoint the
# source, wait for the sync-translations workflows to propagate it, and
# verify all four repos have rebuilt and republished before deleting —
# otherwise the translations break at cell execution with no grace period.
# Three of polars.md's four reads split the URL across three string
# literals; sweep by basename.
# rename is on the same phase-2 review). Was read over the SOURCE repo's raw
# URL from pandas.md, polars.md AND the three synced translation repos
# (.zh-cn/.fr/.fa); all four repos repointed 2026-08-18 (translations via
# sync PRs, certified by basename sweep). The deletion gate that remains:
# all four sites' PUBLISHED notebooks must be rebuilt from repointed source
# before the source copy is deleted — published notebooks bake the URL of
# their last publish, and the read is a live fetch at cell execution.
test_pwt.csv:
pilot: D
status: repointed
Expand Down
Loading