Notebook Migration Example
This example shows a lightweight migration path from a small notebook workflow to an AGILAB project, using:
skforecastfor local forecastinga small daily weather sample shaped like a Meteo-France export
a reusable AGILAB
ANALYSISpage over exported artifacts
Repository material
The source material lives in:
examples/notebook_migrations/skforecast_meteo_fr/notebooks/01_prepare_meteo_series.ipynbexamples/notebook_migrations/skforecast_meteo_fr/notebooks/02_backtest_temperature_forecast.ipynbexamples/notebook_migrations/skforecast_meteo_fr/notebooks/03_compare_predictions.ipynb
The migrated AGILAB shape is illustrated by:
examples/notebook_migrations/skforecast_meteo_fr/migrated_project/lab_steps.tomlexamples/notebook_migrations/skforecast_meteo_fr/migrated_project/pipeline_view.dotexamples/notebook_migrations/skforecast_meteo_fr/analysis_artifacts/forecast_metrics.jsonexamples/notebook_migrations/skforecast_meteo_fr/analysis_artifacts/forecast_predictions.csv
The repo now also ships the same idea as a real built-in project:
src/agilab/apps/builtin/meteo_forecast_projectsrc/agilab/apps/builtin/meteo_forecast_project/lab_steps.tomlsrc/agilab/apps/builtin/meteo_forecast_project/pipeline_view.dot
Why migrate
The notebook version is fine for exploration, but it keeps important workflow state implicit:
the execution order is only visible through notebook history
parameters are spread across cells
outputs depend on the active kernel state
non-notebook users do not get a reusable analysis view
The AGILAB version makes the same workflow explicit:
the semantic stages live in
lab_steps.tomlthe conceptual pipeline is readable in
pipeline_view.dotmetrics and predictions are exported as stable files
ANALYSIScan render the result without reopening the notebooksthe same flow can then become a runnable built-in app instead of staying a notebook skeleton
Migrated pipeline shape
The pilot uses four semantic stages:
load_cleanbuild_featuresbacktest_forecasterforecast_next_days
This is the key migration move: the notebook sequence is preserved, but the stages become explicit and rerunnable.
Real built-in project
The migration no longer stops at a conceptual skeleton. The repo now includes
meteo_forecast_project as a built-in AGILAB app.
What it adds beyond the pilot folder:
an app manager and a worker under
src/agilab/apps/builtin/meteo_forecast_project/srca real
PROJECTform for station, target, lag, and horizon settingsseeded local sample data for the first run
stable artifacts exported to
~/export/meteo_forecast/forecast_analysisa default
ANALYSISpage selection throughview_forecast_analysis
ANALYSIS page
The repo now ships a reusable page bundle for this artifact contract:
src/agilab/apps-pages/view_forecast_analysis
It reads:
forecast_metrics.jsonforecast_predictions.csv
By default it looks under ~/export/<app_target>/forecast_analysis. You can
also point it at any directory containing those files.
This makes the benefit of migration visible immediately:
exported metrics become comparable across runs
observed vs predicted curves become reusable outside the notebook
the same page now serves both the migration pilot and the built-in forecast app
Suggested migration path
Keep the original notebooks as source material.
Export stable CSV/JSON artifacts first.
Translate the notebook sequence into
lab_steps.toml.Add one small
ANALYSISpage that reads those artifacts.Only then move notebook logic into manager or worker code if needed.
This sequence keeps the migration lightweight while already showing what AGILAB adds over a notebook-only workflow.