P2 pilot: read pandas_panel data from data-lectures#973
Merged
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-programming (same change). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR is intended to migrate the pandas_panel lecture’s input datasets (realwage.csv, countries.csv, employ.csv) from this repo’s vendored copies to the canonical copies in QuantEcon/data-lectures, reducing duplicated data across lecture repos.
Changes:
- Deletes
realwage.csv,countries.csv, andemploy.csvfromlectures/_static/lecture_specific/pandas_panel/. - Leaves the
pandas_panellecture still pointing at the deleted in-repo raw URLs, which will causepd.read_csv(...)to 404 during execution until the lecture URLs are updated toQuantEcon/data-lectures.
Reviewed changes
Copilot reviewed 1 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| lectures/_static/lecture_specific/pandas_panel/realwage.csv | Deletes vendored OECD minimum wage panel dataset (lecture must be repointed to data-lectures). |
| lectures/_static/lecture_specific/pandas_panel/countries.csv | Deletes vendored country/continent mapping dataset (lecture must be repointed to data-lectures). |
| lectures/_static/lecture_specific/pandas_panel/employ.csv | Deletes vendored Eurostat employment dataset (lecture exercises must be repointed to data-lectures). |
Comments suppressed due to low confidence (1)
lectures/_static/lecture_specific/pandas_panel/countries.csv:1
- This file is being deleted, but
lectures/pandas_panel.mdstill references it via a GitHub raw URL (e.g..../lectures/_static/lecture_specific/pandas_panel/countries.csv). Without updating those URLs toQuantEcon/data-lectures, the lecture build and executed notebook cells will 404 when callingpd.read_csv(...).
📖 Netlify Preview Ready!Preview URL: https://pr-973--sunny-cactus-210e3e.netlify.app Commit: 📚 Changed LecturesBuild Info
|
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>
mmcky
added a commit
to QuantEcon/data-lectures
that referenced
this pull request
Jul 17, 2026
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
P2 pilot — repoint pandas_panel to data-lectures (python.myst)
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-programming. Part of QuantEcon/meta#338; ticks P2 on QuantEcon/data-lectures#15.