Skip to content

P2 pilot: read pandas_panel data from data-lectures#578

Merged
mmcky merged 2 commits into
mainfrom
datasets/p2-pandas-panel
Jul 17, 2026
Merged

P2 pilot: read pandas_panel data from data-lectures#578
mmcky merged 2 commits into
mainfrom
datasets/p2-pandas-panel

Conversation

@mmcky

@mmcky mmcky commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

P2 pilot — repoint pandas_panel to data-lectures (programming)

Reads realwage.csv, countries.csv and employ.csv from the canonical copies in QuantEcon/data-lectures (interim URL form) instead of this repo's own copies under lectures/_static/lecture_specific/pandas_panel/, and deletes those local copies.

Draft until QuantEcon/data-lectures#17 merges — the raw/main URL 404s until the data lands on data-lectures main. 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:

File sha256
realwage.csv cd60e36d…c49092→ matches
countries.csv b334ddac…95c3be matches
employ.csv 2ff176e9…3149d7 matches

Figures 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.

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>
@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown

@github-actions
github-actions Bot temporarily deployed to pull request July 17, 2026 01:20 Inactive
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
mmcky marked this pull request as ready for review July 17, 2026 02:00
Copilot AI review requested due to automatic review settings July 17, 2026 02:00
@mmcky
mmcky merged commit 4cacd9a into main Jul 17, 2026
6 checks passed
@mmcky
mmcky deleted the datasets/p2-pandas-panel branch July 17, 2026 02:02
@mmcky

mmcky commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

✅ Translation sync completed (zh-cn)

Target repo: QuantEcon/lecture-python-programming.zh-cn
Translation PR: QuantEcon/lecture-python-programming.zh-cn#72
Files synced (1):

  • lectures/pandas_panel.md

@mmcky

mmcky commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

✅ Translation sync completed (fr)

Target repo: QuantEcon/lecture-python-programming.fr
Translation PR: QuantEcon/lecture-python-programming.fr#12
Files synced (1):

  • lectures/pandas_panel.md

@mmcky

mmcky commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

✅ Translation sync completed (fa)

Target repo: QuantEcon/lecture-python-programming.fa
Translation PR: QuantEcon/lecture-python-programming.fa#136
Files synced (1):

  • lectures/pandas_panel.md

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, and employ.csv URLs in lectures/pandas_panel.md to QuantEcon/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.

Comment thread lectures/pandas_panel.md

```{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'
Comment thread lectures/pandas_panel.md

```{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'
Comment thread lectures/pandas_panel.md

```{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'
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants