P2 pilot: read pandas_panel data from data-lectures#578
Conversation
Repoint realwage.csv, countries.csv and employ.csv from this repo's own copies under lectures/_static/lecture_specific/pandas_panel/ to the canonical copies in QuantEcon/data-lectures, and delete the local copies. Byte-compare gate (one-time, reproducible from the data-lectures manifests' sha256): the removed files are byte-identical to the migrated copies, so the repoint cannot change lecture output. realwage.csv cd60e36dc4a9e7ac1d7859dc06d5666e32f619dc6272be7c60dd0136c77fd511 countries.csv b334ddac9bf8b1788c6b9abf626959e2ff98a7f40a9dcdaa22e226d84595c3be employ.csv 2ff176e99e4a4669b7b24c603fe1889a2061eff4149d4c356fd84175803149d7 Draft until the data lands: the interim URL 404s until QuantEcon/data-lectures#17 merges. Data PR first, lecture PR second — never a non-default ref. Part of QuantEcon/meta#338. Pairs with QuantEcon/lecture-python.myst (same change). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The prior commit deleted the local copies but did not stage the URL change in pandas_panel.md, so the lecture still pointed at the now-deleted own-repo path. Repoint url1/url2/url3 to the canonical data-lectures copies. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
✅ Translation sync completed (zh-cn)Target repo: QuantEcon/lecture-python-programming.zh-cn
|
✅ Translation sync completed (fr)Target repo: QuantEcon/lecture-python-programming.fr
|
✅ Translation sync completed (fa)Target repo: QuantEcon/lecture-python-programming.fa
|
There was a problem hiding this comment.
Pull request overview
This PR updates the pandas_panel lecture to source its CSV datasets from the canonical QuantEcon/data-lectures repository instead of local copies under lectures/_static/lecture_specific/pandas_panel/, reducing duplicated data in this lecture repo.
Changes:
- Repoint
realwage.csv,countries.csv, andemploy.csvURLs inlectures/pandas_panel.mdtoQuantEcon/data-lectures. - Remove the local CSV copies previously stored under
lectures/_static/lecture_specific/pandas_panel/.
Reviewed changes
Copilot reviewed 2 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| lectures/pandas_panel.md | Updates dataset URLs used by code cells to pull from QuantEcon/data-lectures. |
| lectures/_static/lecture_specific/pandas_panel/realwage.csv | Deletes local dataset copy now sourced remotely. |
| lectures/_static/lecture_specific/pandas_panel/countries.csv | Deletes local dataset copy now sourced remotely. |
| lectures/_static/lecture_specific/pandas_panel/employ.csv | Deletes local dataset copy now sourced remotely. |
|
|
||
| ```{code-cell} ipython3 | ||
| url1 = 'https://raw.githubusercontent.com/QuantEcon/lecture-python-programming/main/lectures/_static/lecture_specific/pandas_panel/realwage.csv' | ||
| url1 = 'https://github.com/QuantEcon/data-lectures/raw/main/lectures/realwage.csv' |
|
|
||
| ```{code-cell} ipython3 | ||
| url2 = 'https://raw.githubusercontent.com/QuantEcon/lecture-python-programming/main/lectures/_static/lecture_specific/pandas_panel/countries.csv' | ||
| url2 = 'https://github.com/QuantEcon/data-lectures/raw/main/lectures/countries.csv' |
|
|
||
| ```{code-cell} ipython3 | ||
| url3 = 'https://raw.githubusercontent.com/QuantEcon/lecture-python-programming/main/lectures/_static/lecture_specific/pandas_panel/employ.csv' | ||
| url3 = 'https://github.com/QuantEcon/data-lectures/raw/main/lectures/employ.csv' |
…tracker (#21) * Add the generated data-audit dashboard: scanner, tracker, 3-page site scripts/build_audit.py scans the 8 synced Python-family lecture repos on origin/main (clone + grep — never gh search code, which cannot find URLs), classifies every data reference into the hosting-pattern taxonomy, and renders a 3-page static dashboard (overview / migration tracker / full audit) via scripts/render_audit.py. Three sources of truth, reconciled on every build: - lectures/*.yml manifests — the migrated datasets - migration.yml (new) — the migration lifecycle + PR provenance, kept separate from the manifests so it can be archived when the migration programme completes without touching the permanent dataset records - scripts/audit_annotations.yml (new) — curated judgment (descriptions, provenance classes, live-API pedagogy) for not-yet-migrated references The strict scan fails on an unannotated data reference or a migration.yml status that disagrees with what the lectures actually read, so the dashboard cannot silently rot — the failure mode that killed the hand-built 2026-07-15 audit artifact within two days. Part of #20; taxonomy and design system carried over from that artifact. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Deploy the dashboard and the published tree to GitHub Pages .github/workflows/audit-dashboard.yml builds the dashboard from shallow clones of the 8 lecture repos and deploys the default Pages site: dashboard at /, the published lectures/ tree at /lectures/, audit.json alongside for reuse. Triggers: push to main, weekly cron, manual dispatch; on PRs touching the audit inputs it runs the strict build as a guardrail without deploying. Serving lectures/ on Pages pre-stages PLAN Phase 4: when the data.quantecon.org DNS question is resolved, only the custom domain changes. Checkout uses lfs: true so LFS-tracked files publish as bytes, never pointers. Part of #20. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Docs: record the dashboard, its update rules, and P2 completion README gains the audit-dashboard section; AGENTS.md gains the keep-it-truthful rules (migration.yml updated in the same PR as a landing/repoint; annotations for new references; never commit site/ or audit.json) and the expanded repo map; PLAN.md checks off the Pages deploy (default domain — custom domain stays open), adds the Phase 5 workflow entry, and marks pilot P2 complete (#17, QuantEcon/lecture-python-programming#578, QuantEcon/lecture-python.myst#973). Part of #20. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Address Copilot review: taxonomy gap, status validation, notebook guard - render_audit.py: add the external-web pattern to PATTERN_META so a non-GitHub data URL would surface in the hosting-pattern table and distribution chart instead of being silently omitted (no current ref triggers it; the failure mode was the point) - build_audit.py: validate migration.yml status values in the scan-stage consistency check (an unknown status fails --strict with a clear message); render_audit.py's stepper raises a named error as backstop - build_audit.py: flag any .ipynb under lectures/ outside _static/ as an unscanned_notebooks problem. Every lecture source today is MyST .md and the only notebooks are builder/figure helpers (deliberately not consumers); if a notebook-format lecture ever appears, the build now refuses to miss it silently Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
P2 pilot — repoint pandas_panel to data-lectures (programming)
Reads
realwage.csv,countries.csvandemploy.csvfrom the canonical copies inQuantEcon/data-lectures(interim URL form) instead of this repo's own copies underlectures/_static/lecture_specific/pandas_panel/, and deletes those local copies.Draft until QuantEcon/data-lectures#17 merges — the
raw/mainURL 404s until the data lands ondata-lecturesmain. Data PR first, lecture PR second, never a non-default ref (this is the exact trap the P1 pilot cleaned up).Byte-compare gate (one-time; reproducible later from the manifests'
sha256)The removed local copies are byte-identical to the migrated copies, so the repoint cannot change rendered output:
realwage.csvcd60e36d…c49092→ matchescountries.csvb334ddac…95c3bematchesemploy.csv2ff176e9…3149d7matchesFigures will be validated identical against the live site once the data merges and this un-drafts.
Pairs with the identical change in
QuantEcon/lecture-python.myst. Part of QuantEcon/meta#338; ticks P2 on QuantEcon/data-lectures#15.