name: data-notebook
category: meta
public: false
database: optional
hosting_hints:
- local
- jupyterhub
- colab
- kaggle
- databricks
- sagemaker
audit_stack:
- analyze
- code-clean
- cso
- doc
plugins:
context7: optional
ui-ux-pro-max: no
gstack: no
---
Data / Jupyter Notebook
Projet data science / ML axé sur notebooks Jupyter. Exploration, analyse, modèles. Pas d'application déployée au sens applicatif.
Detection signals
Strong signals (×3)
- EXT: 5+ fichiers
.ipynb
- DEP:
requirements.txt OR pyproject.toml OR environment.yml contient "jupyter" OR "jupyterlab" OR "notebook"
- FILE:
environment.yml (Conda)
Medium signals (×2)
- DIR:
notebooks/ OR nb/ avec .ipynb
- DIR:
data/ OR datasets/ (souvent gitignored)
- DEP: "pandas", "numpy", "matplotlib", "seaborn", "scikit-learn", "torch", "tensorflow", "jax"
- FILE:
Makefile avec cibles data (download-data/, preprocess/, train/)
- FILE:
dvc.yaml (DVC pipeline)
Weak signals (×1)
- DIR:
models/ (trained artifacts)
- FILE:
.gitattributes avec LFS rules
- DEP: "mlflow", "wandb", "tensorboard"
- DIR:
figures/ OR plots/ (outputs)
Counter-signals (exclusion)
- DEP: "streamlit" OR "gradio" OR "dash" + main entry point → data app UI (archétype à créer)
- DEP: "fastapi" / "flask" / "django" comme dep principale → API, pas notebook
- FILE:
setup.py OR pyproject.toml AVEC [project.scripts] → package, pas notebook
Implications
- Exécution : local / Google Colab / Kaggle / JupyterHub / Databricks / SageMaker
- Base de données : variable (souvent CSV/Parquet/DuckDB locaux, parfois DB externe)
- SEO/GEO : N/A
- Surface sécurité : SOUS-ESTIMÉE — notebooks souvent commités avec credentials, outputs, PII
- UI/UX : N/A (sauf si app Streamlit/Dash ajoutée)
Typical pain points
.ipynb committés avec outputs = fuite potentielle (données clients affichées)
- Credentials en dur dans cellules (API keys AWS, tokens Kaggle, mots de passe DB)
- PII dans outputs cellules (noms clients, emails, numéros carte)
- Datasets volumineux committés (pas de LFS / DVC / gitignore)
requirements.txt non pinned → résultats non reproductibles
- Pas de seed random → runs non déterministes
- Notebooks monolithiques (10000+ lignes, cells non documentées)
- Logique dupliquée entre notebooks (pas de
src/lib.py)
- Variables d'état entre cells (exécution non idempotente)
- Modèles trainés commités dans git (bloat repo)
- Pas de versioning data (DVC / lakeFS / Pachyderm absents)
- Expériences non trackées (MLflow / W&B absent)
- Pas de tests (pytest sur fonctions extraites)
- Conversion prod : notebook → script Python sans refactor (code non modulaire)
- GPU / environnement non documenté (CUDA version, cuDNN)
- Shared secrets dans environment.yml / requirements.txt
Interview questions (adaptive)
En plus du set minimum business :
- Plateforme d'exécution : local / Colab / Kaggle / JupyterHub / Databricks / autre ?
- Python + libs stack principale ?
- Package manager : pip / poetry / uv / conda / mamba / pdm ?
- Datasets : taille moyenne ? où sont-ils stockés ? versionnés ?
- DVC / lakeFS / Git LFS pour data ?
- Tracking expériences : MLflow / W&B / TensorBoard / aucun ?
- Tests automatiques sur fonctions extraites ?
- Convention commit notebooks : nbstripout (outputs strippés) ou outputs inclus ?
- GPU requis ? CUDA version ?
- But final : exploration ponctuelle / modèle en prod / rapport reproductible / papier / autre ?
- Si prod : comment le modèle sort du notebook (export pickle/ONNX/API) ?
- RGPD / données sensibles dans les datasets ?
Plugin recommendations
- context7 : OPTIONAL — ON pour libs modernes (Pytorch, JAX, Transformers qui évoluent)
- ui-ux-pro-max : OFF
- gstack : OFF
Example project layout
environment.yml OR requirements.txt OR pyproject.toml
notebooks/
01-exploration.ipynb
02-preprocessing.ipynb
03-modeling.ipynb
04-evaluation.ipynb
src/
features.py (fonctions extraites, testables)
models.py
utils.py
data/ (GITIGNORED ou DVC-tracked)
raw/
interim/
processed/
models/ (artifacts — GITIGNORED ou LFS)
figures/
tests/
test_features.py
dvc.yaml (optional)
.pre-commit-config.yaml (nbstripout idéal)
Makefile