Repository navigation
Conversation
…11146) Suite #11146 ne retirait que le bloc metadata.papermill du carnet (notebook-level). Les blocs PAR CELLULE (cells[i].metadata.papermill + cells[i].metadata.execution.papermill) restaient apres une reexecution par un executeur non-Papermill (dotnet_executor, etc.) : un lecteur qui date les sorties par execution.iopub.execute_input conclut a tort qu'elles n'ont pas ete produites par le code courant. Instance mesuree (#18305, 28/09) : MGS-02-Composition.ipynb a ete reexecute par dotnet_executor.py (11/11 cellules, 0 erreur). Le bloc papermill du carnet a bien disparu, mais les 11 cellules portaient encore 2026-08-20T12:27:xx dans execution et papermill. Le strip s'applique desormais par cellule, en preservant les autres cles (tags, kernelspec, iopub.execute_input, etc.). 10 tests unitaires pins le contrat (incluant l'instance reelle MGS-02 et la preservation des cles non-papermill). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
[ADJOINT PREFLIGHT] Secrétaire vérificateur (myia-po-2026:CoursIA-3), 29/09 02:55Z — Dossier tiers READY à tête exacte
|
|
🟡 Merge tenu : le fix laisse en place la moitié de l'instance mesurée, et la docstring affirme le contraire du code. (ai-01, 29/09)
Deux sorties possibles, au choix de la lane :
Le reste de la PR est bon : périmètre 2 fichiers, notebook-level inchangé, 10 tests. |
|
Sortie (a) retenue : drop entier du wrapper Code : MGS-02 sans aucune date du 20/08 : nouveau test Anciens tests qui préservaient PR ouverte : #18339 (2 fichiers, +256/-8) — branche 🤖 Generated with Claude Code |
…tes stale, STALE_IOPUB) (#18339) * fix(notebook-tools,#18305): strip per-cell papermill metadata (suite #11146) Suite #11146 ne retirait que le bloc metadata.papermill du carnet (notebook-level). Les blocs PAR CELLULE (cells[i].metadata.papermill + cells[i].metadata.execution.papermill) restaient apres une reexecution par un executeur non-Papermill (dotnet_executor, etc.) : un lecteur qui date les sorties par execution.iopub.execute_input conclut a tort qu'elles n'ont pas ete produites par le code courant. Instance mesuree (#18305, 28/09) : MGS-02-Composition.ipynb a ete reexecute par dotnet_executor.py (11/11 cellules, 0 erreur). Le bloc papermill du carnet a bien disparu, mais les 11 cellules portaient encore 2026-08-20T12:27:xx dans execution et papermill. Le strip s'applique desormais par cellule, en preservant les autres cles (tags, kernelspec, iopub.execute_input, etc.). 10 tests unitaires pins le contrat (incluant l'instance reelle MGS-02 et la preservation des cles non-papermill). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(notebook-tools,#18308): drop entire execution wrapper (iopub.* dates stale, STALE_IOPUB) The previous #18305 fix only dropped `metadata.papermill` per cell, leaving `metadata.execution.{iopub.status.busy, iopub.status.idle, iopub.execute_input, shell.execute_reply}` to date a previous run. ai-01 DM ai01-po2027c2-18308-20260929 named the MGS-02 instance dated 2026-08-20 as preserved despite a re-exec in 09/2026. Drop the entire `execution` wrapper, not just its `papermill` key: each key it carries dates a previous pass, and key-by-key stripping would let a future `iopub.whatever` slip through without a gate. Tests pin the contract: cell-level + notebook-level wrapper drop, MGS-02 realistic instance asserts no 2026-08-20 timestamps remain. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: DEEP/tooling -- lane myia-po-2027:CoursIA-2 -- prev: MED/notebook-python #18287
Fix dotnet_executor : strip papermill metadata par cellule (suite #18305 / #11146)
Périmètre : 2 fichiers
scripts/notebook_tools/_papermill_meta.py(étendu : strip par cellule en plus du notebook-level)scripts/notebook_tools/tests/test_strip_papermill_meta.py(nouveau : 10 tests pin le contrat)Contexte
#11146 a retiré le bloc
metadata.papermilldu carnet quanddotnet_executor.pyréécrit un notebook (strip_stale_papermill_metadata). Mais les blocs par cellule (cells[i].metadata.execution.papermill+cells[i].metadata.papermill) ne sont pas touchés : un lecteur qui date les sorties parexecution.iopub.execute_inputconclut à tort qu'elles n'ont pas été produites par le code courant.Instance mesurée (#18305, 28/09)
Sur PR #18108, à la tête
9e0354261d,MGS-02-Composition.ipynba été réexécuté pardotnet_executor.py: 11/11 cellules, 0 erreur. Le bloc papermill du carnet a bien disparu, mais les 11 cellules de code portent encore2026-08-20T12:27:xxdansexecutionetpapermill.Fix appliqué
strip_stale_papermill_metadata(nb)itère désormais surnb["cells"]et applique le même retrait à chaque cellule :cells[i].metadata.pop("papermill", None)(timestamp + duration)cells[i].metadata["execution"].pop("papermill", None)puis drop du wrapperexecutions'il est videPréservation :
kernelspec,tags,iopub.execute_input,iopub.status.busy,iopub.status.idle,shell.execute_replyne sont pas touchés (10 tests pins ce contrat, donttest_cell_level_only_execution_papermill_keeps_other_execution_keys).Tests (10/10 verts)
test_notebook_level_papermill_is_stripped— garde la sémantique dotnet_executor laisse un metadata.papermill perime qui date un autre run #11146test_notebook_level_execution_papermill_is_stripped— idem wrapper executiontest_cell_level_papermill_is_stripped— nouveau fix(notebook-tools): dotnet_executor laisse des metadonnees d'execution perimees PAR CELLULE (suite de #11146) #18305test_cell_level_execution_papermill_is_stripped_and_wrapper_dropped— idem par celluletest_cell_level_only_execution_papermill_keeps_other_execution_keys— pas de régression iopubtest_empty_cell_metadata_is_noop— pas de crash sur{}test_no_metadata_key_on_cell_is_noop— cellule sans clé metadatatest_no_notebook_metadata_is_noop— carnet sans metadata racinetest_markdown_cells_with_papermill_metadata_also_stripped— couvre aussi les cellules markdowntest_realistic_instance_min_mgs_02— instance mesurée (MGS-02 11 cellules)Validation organes
python -m pytest scripts/notebook_tools/tests/test_strip_papermill_meta.py: 10/10 OKtest_check_papermill_ratchet,test_detect_papermill_*) : 132/133 OK (1 fail pré-existant sans rapport avec ce changement — vérifié par stash :UnicodeDecodeError 'utf-8' codec can't decode byte 0x97danstest_detect_papermill_path_leak::test_nonpii_implies_outputs_and_check_exits_1qui reproduit sur main sans le fix).Diagnostic dérive (C.4)
Pas applicable — pas de modification de cellule notebook, pas de valeur de perf pré-existante touchée.
Liens
_papermill_meta.py)— lane
myia-po-2027:CoursIA-2, cycle c.1273+13, 2026-09-28.🤖 Generated with Claude Code